---
Fuzzer filename: '/src/pigeonhole/src/testsuite/fuzzsuite.c'
All functions:
  Function list name: All functions
  Elements:
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - 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:    576
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_test_context_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:296,2'
          Dst:             str_free
    - functionName:    testsuite_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - testsuite_binary_deinit
        - testsuite_log_deinit
        - testsuite_script_deinit
        - testsuite_smtp_deinit
        - testsuite_test_context_deinit
        - testsuite_tmp_dir_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:423,2'
          Dst:             p_free_internal
        - Src:             'testsuite-common.c:425,2'
          Dst:             testsuite_smtp_deinit
        - Src:             'testsuite-common.c:426,2'
          Dst:             testsuite_binary_deinit
        - Src:             'testsuite-common.c:427,2'
          Dst:             testsuite_script_deinit
        - Src:             'testsuite-common.c:429,2'
          Dst:             testsuite_tmp_dir_deinit
        - Src:             'testsuite-common.c:430,2'
          Dst:             testsuite_log_deinit
        - Src:             'testsuite-common.c:431,2'
          Dst:             testsuite_test_context_deinit
    - 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:    testsuite_tmp_dir_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_warning
        - p_free_internal
        - unlink_directory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:360,6'
          Dst:             unlink_directory
        - Src:             'testsuite-common.c:362,3'
          Dst:             i_warning
        - Src:             'testsuite-common.c:365,2'
          Dst:             p_free_internal
    - functionName:    testsuite_run
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_interpreter_create
        - sieve_interpreter_free
        - sieve_interpreter_run
        - testsuite_result_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:406,21'
          Dst:             sieve_interpreter_create
        - Src:             'testsuite-common.c:412,11'
          Dst:             testsuite_result_get
        - Src:             'testsuite-common.c:413,8'
          Dst:             sieve_interpreter_run
        - Src:             'testsuite-common.c:416,2'
          Dst:             sieve_interpreter_free
    - functionName:    testsuite_tmp_dir_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - i_strdup
        - safe_mkstemp_dir_pid
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:343,18'
          Dst:             t_str_new
        - Src:             'testsuite-common.c:344,2'
          Dst:             str_append
        - Src:             'testsuite-common.c:345,2'
          Dst:             str_append_c
        - Src:             'testsuite-common.c:346,2'
          Dst:             str_append
        - Src:             'testsuite-common.c:347,2'
          Dst:             str_append_c
        - Src:             'testsuite-common.c:349,6'
          Dst:             safe_mkstemp_dir_pid
        - Src:             'testsuite-common.c:350,46'
          Dst:             str_c
        - Src:             'testsuite-common.c:350,3'
          Dst:             i_fatal
        - Src:             'testsuite-common.c:351,31'
          Dst:             str_c
        - Src:             'testsuite-common.c:351,22'
          Dst:             i_strdup
    - functionName:    testsuite_test_context_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:160,14'
          Dst:             str_new
    - functionName:    testsuite_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
        - sieve_extension_register
        - testsuite_binary_init
        - testsuite_log_init
        - testsuite_script_init
        - testsuite_smtp_init
        - testsuite_test_context_init
        - testsuite_tmp_dir_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:384,2'
          Dst:             testsuite_test_context_init
        - Src:             'testsuite-common.c:385,2'
          Dst:             testsuite_log_init
        - Src:             'testsuite-common.c:386,2'
          Dst:             testsuite_tmp_dir_init
        - Src:             'testsuite-common.c:388,2'
          Dst:             testsuite_script_init
        - Src:             'testsuite-common.c:389,2'
          Dst:             testsuite_binary_init
        - Src:             'testsuite-common.c:390,2'
          Dst:             testsuite_smtp_init
        - Src:             'testsuite-common.c:392,8'
          Dst:             sieve_extension_register
        - Src:             'testsuite-common.c:394,2'
          Dst:             i_panic
        - Src:             'testsuite-common.c:396,24'
          Dst:             i_strdup
    - functionName:    testsuite_tmp_dir_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_testcase_result
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          100
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:304,5'
          Dst:             printf
        - Src:             'testsuite-common.c:312,4'
          Dst:             printf
        - Src:             'testsuite-common.c:321,4'
          Dst:             printf
        - Src:             'testsuite-common.c:328,3'
          Dst:             printf
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    72
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_test_succeed
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          148
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - printf
        - sieve_interpreter_program_jump_to
        - sieve_runtime_trace_error
        - str_c
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:258,7'
          Dst:             str_len
        - Src:             'testsuite-common.c:259,26'
          Dst:             str_len
        - Src:             'testsuite-common.c:260,5'
          Dst:             printf
        - Src:             'testsuite-common.c:263,24'
          Dst:             str_c
        - Src:             'testsuite-common.c:262,5'
          Dst:             printf
        - Src:             'testsuite-common.c:266,26'
          Dst:             str_len
        - Src:             'testsuite-common.c:268,24'
          Dst:             str_c
        - Src:             'testsuite-common.c:267,5'
          Dst:             printf
        - Src:             'testsuite-common.c:271,24'
          Dst:             str_c
        - Src:             'testsuite-common.c:272,12'
          Dst:             str_c
        - Src:             'testsuite-common.c:270,5'
          Dst:             printf
        - Src:             'testsuite-common.c:277,2'
          Dst:             str_truncate
        - Src:             'testsuite-common.c:281,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'testsuite-common.c:285,9'
          Dst:             sieve_interpreter_program_jump_to
    - 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_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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    testsuite_testcase_fail
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:244,4'
          Dst:             printf
        - Src:             'testsuite-common.c:246,4'
          Dst:             printf
    - functionName:    testsuite_test_failf
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_vprintf
        - testsuite_test_fail_cstr
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:195,39'
          Dst:             t_strdup_vprintf
        - Src:             'testsuite-common.c:195,8'
          Dst:             testsuite_test_fail_cstr
    - functionName:    testsuite_test_fail_cstr
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          133
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - printf
        - sieve_interpreter_interrupt
        - sieve_interpreter_program_jump_to
        - str_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:207,7'
          Dst:             str_len
        - Src:             'testsuite-common.c:209,5'
          Dst:             printf
        - Src:             'testsuite-common.c:211,5'
          Dst:             printf
        - Src:             'testsuite-common.c:217,24'
          Dst:             str_c
        - Src:             'testsuite-common.c:216,5'
          Dst:             printf
        - Src:             'testsuite-common.c:220,24'
          Dst:             str_c
        - Src:             'testsuite-common.c:219,5'
          Dst:             printf
        - Src:             'testsuite-common.c:230,3'
          Dst:             sieve_interpreter_interrupt
        - Src:             'testsuite-common.c:234,2'
          Dst:             str_truncate
        - Src:             'testsuite-common.c:237,9'
          Dst:             sieve_interpreter_program_jump_to
    - functionName:    testsuite_test_fail
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_c
        - testsuite_test_fail_cstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:185,40'
          Dst:             str_c
        - Src:             'testsuite-common.c:185,9'
          Dst:             testsuite_test_fail_cstr
    - 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:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    testsuite_test_start
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_runtime_trace_error
        - str_append_str
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:170,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'testsuite-common.c:173,2'
          Dst:             str_truncate
        - Src:             'testsuite-common.c:174,2'
          Dst:             str_append_str
    - functionName:    testsuite_interpreter_context_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_get_context
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:149,3'
          Dst:             sieve_interpreter_extension_get_context
    - functionName:    testsuite_interpreter_context_initialize
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_interpreter_extension_register
        - sieve_interpreter_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:135,16'
          Dst:             sieve_interpreter_pool
        - Src:             'testsuite-common.c:137,3'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-common.c:137,3'
          Dst:             p_malloc
        - Src:             'testsuite-common.c:139,2'
          Dst:             sieve_interpreter_extension_register
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_interpreter_free
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:124,2'
          Dst:             sieve_binary_unref
    - functionName:    testsuite_generator_context_initialize
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_generator_extension_set_context
        - sieve_generator_get_block
        - sieve_generator_pool
        - sieve_jumplist_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:99,16'
          Dst:             sieve_generator_pool
        - Src:             'testsuite-common.c:100,38'
          Dst:             sieve_generator_get_block
        - Src:             'testsuite-common.c:102,3'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-common.c:102,3'
          Dst:             p_malloc
        - Src:             'testsuite-common.c:105,20'
          Dst:             sieve_jumplist_create
        - Src:             'testsuite-common.c:107,2'
          Dst:             sieve_generator_extension_set_context
    - functionName:    testsuite_validator_context_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:89,3'
          Dst:             sieve_validator_extension_get_context
    - functionName:    testsuite_validator_context_initialize
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_validator_extension_set_context
        - sieve_validator_object_registry_create
        - sieve_validator_pool
        - testsuite_register_core_objects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-common.c:71,16'
          Dst:             sieve_validator_pool
        - Src:             'testsuite-common.c:73,3'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-common.c:73,3'
          Dst:             p_malloc
        - Src:             'testsuite-common.c:77,3'
          Dst:             sieve_validator_object_registry_create
        - Src:             'testsuite-common.c:78,2'
          Dst:             testsuite_register_core_objects
        - Src:             'testsuite-common.c:80,2'
          Dst:             sieve_validator_extension_set_context
    - functionName:    testsuite_setting_unset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - settings_root_find
        - settings_root_override_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-settings.c:36,13'
          Dst:             settings_root_find
        - Src:             'testsuite-settings.c:37,2'
          Dst:             settings_root_override_remove
    - functionName:    testsuite_setting_set
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - settings_root_find
        - settings_root_override
        - settings_root_override_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-settings.c:20,13'
          Dst:             settings_root_find
        - Src:             'testsuite-settings.c:21,2'
          Dst:             settings_root_override_remove
        - Src:             'testsuite-settings.c:23,2'
          Dst:             settings_root_override
    - functionName:    testsuite_object_emit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:119,2'
          Dst:             sieve_opr_object_emit
        - Src:             'testsuite-objects.c:122,9'
          Dst:             sieve_binary_emit_byte
    - functionName:    tsto_envelope_set_member
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - str_c
        - testsuite_envelope_set_auth_user
        - testsuite_envelope_set_orig_recipient
        - testsuite_envelope_set_recipient
        - testsuite_envelope_set_sender
      functionUses:    0
      BranchProfiles:
        - Branch String:   'testsuite-objects.c:357,2'
          Branch Sides:    []
      Callsites:
        - Src:             'testsuite-objects.c:359,39'
          Dst:             str_c
        - Src:             'testsuite-objects.c:359,3'
          Dst:             testsuite_envelope_set_sender
        - Src:             'testsuite-objects.c:362,42'
          Dst:             str_c
        - Src:             'testsuite-objects.c:362,3'
          Dst:             testsuite_envelope_set_recipient
        - Src:             'testsuite-objects.c:365,47'
          Dst:             str_c
        - Src:             'testsuite-objects.c:365,3'
          Dst:             testsuite_envelope_set_orig_recipient
        - Src:             'testsuite-objects.c:368,42'
          Dst:             str_c
        - Src:             'testsuite-objects.c:368,3'
          Dst:             testsuite_envelope_set_auth_user
    - functionName:    tsto_envelope_get_member_name
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'testsuite-objects.c:340,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    tsto_envelope_get_member_id
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:327,6'
          Dst:             strcasecmp
        - Src:             'testsuite-objects.c:329,6'
          Dst:             strcasecmp
        - Src:             'testsuite-objects.c:331,6'
          Dst:             strcasecmp
        - Src:             'testsuite-objects.c:333,6'
          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:    302
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tsto_message_set_member
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - testsuite_message_set_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:321,2'
          Dst:             testsuite_message_set_string
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_object_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _get_object_registry
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:67,3'
          Dst:             _get_object_registry
        - Src:             'testsuite-objects.c:71,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'testsuite-objects.c:74,9'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-objects.c:74,9'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-objects.c:74,9'
          Dst:             p_malloc
    - functionName:    _get_object_registry
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_validator_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:47,3'
          Dst:             testsuite_validator_context_get
    - functionName:    testsuite_object_argument_activate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_argument_create
        - sieve_ast_pool
        - sieve_validator_error
        - str_c
        - strchr
        - t_strdup_until
        - testsuite_object_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:220,24'
          Dst:             str_c
        - Src:             'testsuite-objects.c:228,11'
          Dst:             strchr
        - Src:             'testsuite-objects.c:230,13'
          Dst:             t_strdup_until
        - Src:             'testsuite-objects.c:236,9'
          Dst:             testsuite_object_create
        - Src:             'testsuite-objects.c:238,3'
          Dst:             sieve_validator_error
        - Src:             'testsuite-objects.c:250,4'
          Dst:             sieve_validator_error
        - Src:             'testsuite-objects.c:259,8'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-objects.c:259,8'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-objects.c:259,8'
          Dst:             p_malloc
        - Src:             'testsuite-objects.c:263,18'
          Dst:             sieve_argument_create
    - 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:    148
      BranchProfiles:  []
      Callsites:       []
    - functionName:    arg_testsuite_object_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_object_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:277,2'
          Dst:             testsuite_object_emit
    - functionName:    testsuite_object_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_dumpf
        - sieve_code_mark
        - testsuite_object_member_name
        - testsuite_object_read_member
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:185,2'
          Dst:             sieve_code_mark
        - Src:             'testsuite-objects.c:187,7'
          Dst:             testsuite_object_read_member
        - Src:             'testsuite-objects.c:193,4'
          Dst:             testsuite_object_member_name
        - Src:             'testsuite-objects.c:191,2'
          Dst:             sieve_code_dumpf
    - functionName:    testsuite_object_read_member
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_code
        - testsuite_object_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:148,7'
          Dst:             testsuite_object_read
        - Src:             'testsuite-objects.c:153,8'
          Dst:             sieve_binary_read_code
    - functionName:    testsuite_object_member_name
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:173,10'
          Dst:             t_strdup_printf
        - Src:             'testsuite-objects.c:176,9'
          Dst:             t_strdup_printf
    - functionName:    testsuite_object_read
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_operand_read
        - sieve_opr_object_read_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:130,7'
          Dst:             sieve_operand_read
        - Src:             'testsuite-objects.c:133,7'
          Dst:             sieve_opr_object_read_data
        - Src:             'testsuite-objects.c:139,2'
          Dst:             i_panic
    - functionName:    testsuite_register_core_objects
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_object_registry_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:92,3'
          Dst:             sieve_validator_object_registry_add
    - functionName:    testsuite_object_register
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-objects.c:57,3'
          Dst:             _get_object_registry
        - Src:             'testsuite-objects.c:59,2'
          Dst:             sieve_validator_object_registry_add
    - functionName:    testsuite_substitution_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_file_substitution_get_value
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_printfa
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:250,12'
          Dst:             t_str_new
        - Src:             'testsuite-substitutions.c:252,2'
          Dst:             str_printfa
    - functionName:    opr_substitution_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_code_dumpf
        - str_c
        - testsuite_substitution_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:179,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'testsuite-substitutions.c:182,9'
          Dst:             testsuite_substitution_get
        - Src:             'testsuite-substitutions.c:186,7'
          Dst:             sieve_binary_read_string
        - Src:             'testsuite-substitutions.c:192,6'
          Dst:             str_c
        - Src:             'testsuite-substitutions.c:190,3'
          Dst:             sieve_code_dumpf
        - Src:             'testsuite-substitutions.c:195,32'
          Dst:             str_c
        - Src:             'testsuite-substitutions.c:194,3'
          Dst:             sieve_code_dumpf
    - functionName:    opr_substitution_read_value
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - str_c
        - testsuite_substitution_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:209,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'testsuite-substitutions.c:212,9'
          Dst:             testsuite_substitution_get
        - Src:             'testsuite-substitutions.c:220,8'
          Dst:             sieve_binary_read_string
        - Src:             'testsuite-substitutions.c:225,7'
          Dst:             sieve_binary_read_string
        - Src:             'testsuite-substitutions.c:227,23'
          Dst:             str_c
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    testsuite_opr_substitution_emit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_cstring
        - sieve_binary_emit_unsigned
        - sieve_operand_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:165,8'
          Dst:             sieve_operand_emit
        - Src:             'testsuite-substitutions.c:167,8'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'testsuite-substitutions.c:168,8'
          Dst:             sieve_binary_emit_cstring
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_substitution_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:57,7'
          Dst:             strcasecmp
        - Src:             'testsuite-substitutions.c:63,11'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-substitutions.c:63,11'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-substitutions.c:63,11'
          Dst:             p_malloc
    - functionName:    testsuite_substitution_argument_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_argument_create
        - sieve_ast_argument_create
        - sieve_ast_pool
        - testsuite_substitution_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:105,9'
          Dst:             testsuite_substitution_create
        - Src:             'testsuite-substitutions.c:109,8'
          Dst:             sieve_ast_argument_create
        - Src:             'testsuite-substitutions.c:112,9'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-substitutions.c:113,10'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-substitutions.c:113,10'
          Dst:             p_malloc
        - Src:             'testsuite-substitutions.c:115,17'
          Dst:             p_strdup
        - Src:             'testsuite-substitutions.c:117,18'
          Dst:             sieve_argument_create
    - functionName:    arg_testsuite_substitution_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-substitutions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_opr_substitution_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-substitutions.c:131,2'
          Dst:             testsuite_opr_substitution_emit
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/plugins/variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/plugins/variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    testsuite_variables_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_ext_variables_get_extension
        - sieve_variables_namespace_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-variables.c:183,8'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'testsuite-variables.c:185,2'
          Dst:             i_panic
        - Src:             'testsuite-variables.c:187,2'
          Dst:             sieve_variables_namespace_register
    - functionName:    testsuite_varnamespace_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          129
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_idx_i
        - p_strdup
        - sieve_ast_pool
        - sieve_validator_error
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-variables.c:72,6'
          Dst:             array_count_i
        - Src:             'testsuite-variables.c:73,3'
          Dst:             sieve_validator_error
        - Src:             'testsuite-variables.c:79,17'
          Dst:             array_idx_i
        - Src:             'testsuite-variables.c:81,3'
          Dst:             sieve_validator_error
        - Src:             'testsuite-variables.c:87,13'
          Dst:             str_c
        - Src:             'testsuite-variables.c:89,3'
          Dst:             sieve_validator_error
        - Src:             'testsuite-variables.c:95,23'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-variables.c:95,14'
          Dst:             p_strdup
    - functionName:    testsuite_varnamespace_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_cstring
        - sieve_variables_opr_namespace_variable_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-variables.c:111,2'
          Dst:             sieve_variables_opr_namespace_variable_emit
        - Src:             'testsuite-variables.c:114,2'
          Dst:             sieve_binary_emit_cstring
    - functionName:    testsuite_varnamespace_dump_variable
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_string
        - sieve_code_dumpf
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-variables.c:126,7'
          Dst:             sieve_binary_read_string
        - Src:             'testsuite-variables.c:131,25'
          Dst:             str_c
        - Src:             'testsuite-variables.c:130,3'
          Dst:             sieve_code_dumpf
        - Src:             'testsuite-variables.c:133,43'
          Dst:             str_c
        - Src:             'testsuite-variables.c:133,3'
          Dst:             sieve_code_dumpf
    - functionName:    testsuite_varnamespace_read_variable
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_string
        - sieve_runtime_trace_operand_error
        - str_c
        - strcmp
        - strlen
        - t_str_new_const
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-variables.c:146,7'
          Dst:             sieve_binary_read_string
        - Src:             'testsuite-variables.c:147,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'testsuite-variables.c:153,14'
          Dst:             str_c
        - Src:             'testsuite-variables.c:153,7'
          Dst:             strcmp
        - Src:             'testsuite-variables.c:155,8'
          Dst:             strlen
        - Src:             'testsuite-variables.c:154,13'
          Dst:             t_str_new_const
        - Src:             'testsuite-variables.c:157,13'
          Dst:             t_str_new_const
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - 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:    619
      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_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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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_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:    arg_testsuite_string_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          459
      EdgeCount:       88
      CyclomaticComplexity: 20
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - sieve_arg_catenated_string_add_element
        - sieve_arg_catenated_string_create
        - sieve_ast_argument_string_create_raw
        - sieve_ast_pool
        - sieve_validator_argument_activate_super
        - sieve_validator_error
        - str_append_c
        - str_append_data
        - str_c
        - str_data
        - str_len
        - str_new
        - str_truncate
        - t_pop
        - t_push
        - t_str_new
        - testsuite_substitution_argument_create
      functionUses:    0
      BranchProfiles:
        - Branch String:   'testsuite-arguments.c:60,4'
          Branch Sides:    []
      Callsites:
        - Src:             'testsuite-arguments.c:44,16'
          Dst:             sieve_ast_pool
        - Src:             'testsuite-arguments.c:48,38'
          Dst:             str_data
        - Src:             'testsuite-arguments.c:49,32'
          Dst:             str_len
        - Src:             'testsuite-arguments.c:51,24'
          Dst:             t_str_new
        - Src:             'testsuite-arguments.c:52,25'
          Dst:             t_str_new
        - Src:             'testsuite-arguments.c:54,2'
          Dst:             t_push
        - Src:             'testsuite-arguments.c:66,6'
          Dst:             str_truncate
        - Src:             'testsuite-arguments.c:67,6'
          Dst:             str_truncate
        - Src:             'testsuite-arguments.c:85,11'
          Dst:             __ctype_b_loc
        - Src:             'testsuite-arguments.c:89,6'
          Dst:             str_append_c
        - Src:             'testsuite-arguments.c:98,7'
          Dst:             str_append_c
        - Src:             'testsuite-arguments.c:112,16'
          Dst:             sieve_arg_catenated_string_create
        - Src:             'testsuite-arguments.c:118,26'
          Dst:             str_new
        - Src:             'testsuite-arguments.c:119,7'
          Dst:             str_append_data
        - Src:             'testsuite-arguments.c:121,16'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'testsuite-arguments.c:123,7'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'testsuite-arguments.c:127,12'
          Dst:             sieve_validator_argument_activate_super
        - Src:             'testsuite-arguments.c:136,7'
          Dst:             str_c
        - Src:             'testsuite-arguments.c:136,25'
          Dst:             str_c
        - Src:             'testsuite-arguments.c:134,15'
          Dst:             testsuite_substitution_argument_create
        - Src:             'testsuite-arguments.c:138,7'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'testsuite-arguments.c:140,7'
          Dst:             str_c
        - Src:             'testsuite-arguments.c:140,7'
          Dst:             sieve_validator_error
        - Src:             'testsuite-arguments.c:155,4'
          Dst:             t_pop
        - Src:             'testsuite-arguments.c:155,4'
          Dst:             i_panic
        - Src:             'testsuite-arguments.c:166,10'
          Dst:             sieve_validator_argument_activate_super
        - Src:             'testsuite-arguments.c:175,22'
          Dst:             str_new
        - Src:             'testsuite-arguments.c:176,3'
          Dst:             str_append_data
        - Src:             'testsuite-arguments.c:178,12'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'testsuite-arguments.c:180,3'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'testsuite-arguments.c:184,8'
          Dst:             sieve_validator_argument_activate_super
    - 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:    127
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_message_get_address
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mail_get_first_header
        - message_address_parse
        - pool_datastack_create
        - smtp_address_create_from_msg_temp
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:61,6'
          Dst:             mail_get_first_header
        - Src:             'testsuite-message.c:63,31'
          Dst:             pool_datastack_create
        - Src:             'testsuite-message.c:65,10'
          Dst:             strlen
        - Src:             'testsuite-message.c:63,9'
          Dst:             message_address_parse
        - Src:             'testsuite-message.c:68,6'
          Dst:             smtp_address_create_from_msg_temp
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_message_new
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:137,8'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-message.c:137,8'
          Dst:             p_malloc
    - functionName:    testsuite_envelope_set_auth_user
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
        - sieve_message_context_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:340,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:342,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:344,23'
          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:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_envelope_set_orig_recipient
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - pool_datastack_create
        - smtp_address_parse_path
        - testsuite_envelope_set_orig_recipient_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:326,30'
          Dst:             pool_datastack_create
        - Src:             'testsuite-message.c:326,6'
          Dst:             smtp_address_parse_path
        - Src:             'testsuite-message.c:330,3'
          Dst:             e_error
        - Src:             'testsuite-message.c:334,2'
          Dst:             testsuite_envelope_set_orig_recipient_address
    - functionName:    testsuite_envelope_set_orig_recipient_address
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - sieve_message_context_reset
        - smtp_address_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:312,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:314,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:316,31'
          Dst:             smtp_address_clone
    - functionName:    testsuite_envelope_set_recipient
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - pool_datastack_create
        - smtp_address_parse_path
        - testsuite_envelope_set_recipient_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:297,30'
          Dst:             pool_datastack_create
        - Src:             'testsuite-message.c:297,6'
          Dst:             smtp_address_parse_path
        - Src:             'testsuite-message.c:301,3'
          Dst:             e_error
        - Src:             'testsuite-message.c:305,2'
          Dst:             testsuite_envelope_set_recipient_address
    - functionName:    testsuite_envelope_set_recipient_address
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - sieve_message_context_reset
        - smtp_address_clone
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:280,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:282,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:283,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:285,26'
          Dst:             smtp_address_clone
        - Src:             'testsuite-message.c:286,31'
          Dst:             smtp_address_clone
    - functionName:    testsuite_envelope_set_sender
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - pool_datastack_create
        - smtp_address_parse_path
        - testsuite_envelope_set_sender_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:265,30'
          Dst:             pool_datastack_create
        - Src:             'testsuite-message.c:265,6'
          Dst:             smtp_address_parse_path
        - Src:             'testsuite-message.c:269,3'
          Dst:             e_error
        - Src:             'testsuite-message.c:273,2'
          Dst:             testsuite_envelope_set_sender_address
    - functionName:    testsuite_envelope_set_sender_address
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - sieve_message_context_reset
        - smtp_address_clone
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:251,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:253,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:255,28'
          Dst:             smtp_address_clone
    - 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:    testsuite_message_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - pool_unref
        - testsuite_message_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:238,2'
          Dst:             testsuite_message_free
        - Src:             'testsuite-message.c:240,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:241,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:242,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:243,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:244,2'
          Dst:             pool_unref
        - Src:             'testsuite-message.c:245,2'
          Dst:             p_free_internal
    - functionName:    testsuite_message_free
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          78
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mail_raw_close
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:179,3'
          Dst:             mail_raw_close
        - Src:             'testsuite-message.c:180,3'
          Dst:             p_free_internal
    - functionName:    testsuite_message_set_data
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          153
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_strdup
        - mail_get_message_id
        - p_free_internal
        - sieve_tool_get_username
        - smtp_address_clone
        - testsuite_message_get_address
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:87,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:88,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:89,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:90,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:91,2'
          Dst:             p_free_internal
        - Src:             'testsuite-message.c:98,14'
          Dst:             testsuite_message_get_address
        - Src:             'testsuite-message.c:100,15'
          Dst:             testsuite_message_get_address
        - Src:             'testsuite-message.c:105,11'
          Dst:             testsuite_message_get_address
        - Src:             'testsuite-message.c:107,12'
          Dst:             testsuite_message_get_address
        - Src:             'testsuite-message.c:109,12'
          Dst:             testsuite_message_get_address
        - Src:             'testsuite-message.c:113,28'
          Dst:             smtp_address_clone
        - Src:             'testsuite-message.c:114,26'
          Dst:             smtp_address_clone
        - Src:             'testsuite-message.c:115,31'
          Dst:             smtp_address_clone
        - Src:             'testsuite-message.c:117,8'
          Dst:             mail_get_message_id
        - Src:             'testsuite-message.c:118,21'
          Dst:             i_strdup
        - Src:             'testsuite-message.c:122,32'
          Dst:             sieve_tool_get_username
    - functionName:    testsuite_message_set_mail
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_message_context_reset
        - testsuite_message_set_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:231,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:233,2'
          Dst:             testsuite_message_set_data
    - functionName:    testsuite_message_new_file
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_raw_open_file
        - sieve_tool_get_mail_raw_user
        - testsuite_message_new
        - testsuite_message_set_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:159,3'
          Dst:             sieve_tool_get_mail_raw_user
        - Src:             'testsuite-message.c:162,8'
          Dst:             testsuite_message_new
        - Src:             'testsuite-message.c:163,18'
          Dst:             mail_raw_open_file
        - Src:             'testsuite-message.c:165,2'
          Dst:             testsuite_message_set_data
    - functionName:    testsuite_message_set_file
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_message_context_reset
        - testsuite_message_new_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:223,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:225,2'
          Dst:             testsuite_message_new_file
    - functionName:    testsuite_message_set_string
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_message_context_reset
        - testsuite_message_new_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:215,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:217,2'
          Dst:             testsuite_message_new_string
    - functionName:    testsuite_message_new_string
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_raw_open_data
        - sieve_tool_get_mail_raw_user
        - testsuite_message_new
        - testsuite_message_set_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:147,3'
          Dst:             sieve_tool_get_mail_raw_user
        - Src:             'testsuite-message.c:150,8'
          Dst:             testsuite_message_new
        - Src:             'testsuite-message.c:151,18'
          Dst:             mail_raw_open_data
        - Src:             'testsuite-message.c:153,2'
          Dst:             testsuite_message_set_data
    - functionName:    testsuite_message_set_default
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_message_context_reset
        - testsuite_message_new_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:207,2'
          Dst:             sieve_message_context_reset
        - Src:             'testsuite-message.c:209,2'
          Dst:             testsuite_message_new_string
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    testsuite_message_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_create
        - str_append
        - str_new
        - testsuite_message_new_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:197,23'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-message.c:199,26'
          Dst:             str_new
        - Src:             'testsuite-message.c:200,2'
          Dst:             str_append
        - Src:             'testsuite-message.c:202,2'
          Dst:             testsuite_message_new_string
    - functionName:    testsuite_message_flush
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_message_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-message.c:192,2'
          Dst:             testsuite_message_free
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    _testsuite_main_log
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - _testsuite_log
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:106,10'
          Dst:             _testsuite_log
        - Src:             'testsuite-log.c:111,3'
          Dst:             fprintf
        - Src:             'testsuite-log.c:113,3'
          Dst:             fprintf
    - functionName:    _testsuite_log
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       26
      CyclomaticComplexity: 13
      functionsReached:
        - _testsuite_stdout_log
        - array_append_i
        - i_unreached
        - p_strdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'testsuite-log.c:61,2'
          Branch Sides:    []
        - Branch String:   'testsuite-log.c:83,2'
          Branch Sides:    []
      Callsites:
        - Src:             'testsuite-log.c:75,3'
          Dst:             i_unreached
        - Src:             'testsuite-log.c:78,2'
          Dst:             _testsuite_stdout_log
        - Src:             'testsuite-log.c:80,17'
          Dst:             p_strdup
        - Src:             'testsuite-log.c:81,16'
          Dst:             p_strdup
        - Src:             'testsuite-log.c:85,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:88,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:91,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:96,3'
          Dst:             i_unreached
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _testsuite_stdout_log
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:43,4'
          Dst:             fprintf
        - Src:             'testsuite-log.c:46,4'
          Dst:             fprintf
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:             'dovecot/src/lib/mempool.h:119,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:    testsuite_log_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_log_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - strlen
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:303,19'
          Dst:             array_count_i
        - Src:             'testsuite-log.c:308,8'
          Dst:             array_idx_i
        - Src:             'testsuite-log.c:310,41'
          Dst:             strlen
        - Src:             'testsuite-log.c:310,11'
          Dst:             t_str_new_const
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_log_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:270,12'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-log.c:270,12'
          Dst:             t_malloc0
    - functionName:    testsuite_log_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - default_error_handler
        - i_set_debug_handler
        - i_set_error_handler
        - i_set_info_handler
        - pool_unref
        - sieve_error_handler_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:235,2'
          Dst:             sieve_error_handler_unref
        - Src:             'testsuite-log.c:236,2'
          Dst:             sieve_error_handler_unref
        - Src:             'testsuite-log.c:238,2'
          Dst:             i_set_error_handler
        - Src:             'testsuite-log.c:238,2'
          Dst:             default_error_handler
        - Src:             'testsuite-log.c:239,2'
          Dst:             i_set_info_handler
        - Src:             'testsuite-log.c:239,2'
          Dst:             default_error_handler
        - Src:             'testsuite-log.c:240,2'
          Dst:             i_set_debug_handler
        - Src:             'testsuite-log.c:240,2'
          Dst:             default_error_handler
        - Src:             'testsuite-log.c:242,2'
          Dst:             pool_unref
    - 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:    testsuite_error_handler
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - _testsuite_stdout_log
        - array_append_i
        - default_error_handler
        - i_panic
        - p_strdup_vprintf
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'testsuite-log.c:157,2'
          Branch Sides:    []
      Callsites:
        - Src:             'testsuite-log.c:159,3'
          Dst:             t_push
        - Src:             'testsuite-log.c:161,12'
          Dst:             t_strdup_vprintf
        - Src:             'testsuite-log.c:160,4'
          Dst:             _testsuite_stdout_log
        - Src:             'testsuite-log.c:162,5'
          Dst:             t_pop
        - Src:             'testsuite-log.c:162,5'
          Dst:             i_panic
        - Src:             'testsuite-log.c:165,17'
          Dst:             p_strdup_vprintf
        - Src:             'testsuite-log.c:166,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:168,3'
          Dst:             _testsuite_stdout_log
        - Src:             'testsuite-log.c:171,17'
          Dst:             p_strdup_vprintf
        - Src:             'testsuite-log.c:172,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:174,3'
          Dst:             _testsuite_stdout_log
        - Src:             'testsuite-log.c:177,17'
          Dst:             p_strdup_vprintf
        - Src:             'testsuite-log.c:178,3'
          Dst:             array_append_i
        - Src:             'testsuite-log.c:180,3'
          Dst:             _testsuite_stdout_log
        - Src:             'testsuite-log.c:183,3'
          Dst:             default_error_handler
    - functionName:    _testsuite_log_main_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:136,9'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-log.c:138,13'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-log.c:138,13'
          Dst:             p_malloc
        - Src:             'testsuite-log.c:139,2'
          Dst:             sieve_error_handler_init
    - functionName:    _testsuite_log_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:121,9'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-log.c:123,13'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-log.c:123,13'
          Dst:             p_malloc
        - Src:             'testsuite-log.c:124,2'
          Dst:             sieve_error_handler_init
    - functionName:    testsuite_log_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _testsuite_log_ehandler_create
        - _testsuite_log_main_ehandler_create
        - i_set_debug_handler
        - i_set_error_handler
        - i_set_info_handler
        - sieve_error_handler_accept_debuglog
        - sieve_error_handler_accept_infolog
        - testsuite_error_handler
        - testsuite_log_clear_messages
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:218,27'
          Dst:             _testsuite_log_ehandler_create
        - Src:             'testsuite-log.c:219,2'
          Dst:             sieve_error_handler_accept_infolog
        - Src:             'testsuite-log.c:220,2'
          Dst:             sieve_error_handler_accept_debuglog
        - Src:             'testsuite-log.c:222,32'
          Dst:             _testsuite_log_main_ehandler_create
        - Src:             'testsuite-log.c:223,2'
          Dst:             sieve_error_handler_accept_infolog
        - Src:             'testsuite-log.c:224,2'
          Dst:             sieve_error_handler_accept_debuglog
        - Src:             'testsuite-log.c:226,2'
          Dst:             i_set_error_handler
        - Src:             'testsuite-log.c:226,2'
          Dst:             testsuite_error_handler
        - Src:             'testsuite-log.c:227,2'
          Dst:             i_set_info_handler
        - Src:             'testsuite-log.c:227,2'
          Dst:             testsuite_error_handler
        - Src:             'testsuite-log.c:228,2'
          Dst:             i_set_debug_handler
        - Src:             'testsuite-log.c:228,2'
          Dst:             testsuite_error_handler
        - Src:             'testsuite-log.c:230,2'
          Dst:             testsuite_log_clear_messages
    - functionName:    testsuite_log_clear_messages
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_create_i
        - pool_alloconly_create
        - pool_unref
        - sieve_error_handler_reset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-log.c:195,7'
          Dst:             array_count_i
        - Src:             'testsuite-log.c:197,3'
          Dst:             pool_unref
        - Src:             'testsuite-log.c:201,3'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-log.c:203,2'
          Dst:             array_create_i
        - Src:             'testsuite-log.c:204,2'
          Dst:             array_create_i
        - Src:             'testsuite-log.c:205,2'
          Dst:             array_create_i
        - Src:             'testsuite-log.c:207,2'
          Dst:             sieve_error_handler_reset
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    testsuite_script_multiscript
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          178
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - _testsuite_script_compile
        - array_get_i
        - sieve_close
        - sieve_multiscript_finish
        - sieve_multiscript_run
        - sieve_multiscript_start_execute
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_script_env_init
        - testsuite_log_clear_messages
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:267,2'
          Dst:             testsuite_log_clear_messages
        - Src:             'testsuite-script.c:270,6'
          Dst:             sieve_script_env_init
        - Src:             'testsuite-script.c:271,3'
          Dst:             sieve_runtime_error
        - Src:             'testsuite-script.c:290,12'
          Dst:             sieve_multiscript_start_execute
        - Src:             'testsuite-script.c:295,12'
          Dst:             array_get_i
        - Src:             'testsuite-script.c:301,10'
          Dst:             _testsuite_script_compile
        - Src:             'testsuite-script.c:309,3'
          Dst:             sieve_runtime_trace
        - Src:             'testsuite-script.c:312,10'
          Dst:             sieve_multiscript_run
        - Src:             'testsuite-script.c:316,3'
          Dst:             sieve_close
        - Src:             'testsuite-script.c:319,10'
          Dst:             sieve_multiscript_finish
    - functionName:    _testsuite_script_compile
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - settings_instance_find
        - settings_override
        - sieve_compile
        - sieve_file_script_get_dir_path
        - sieve_runtime_trace
        - t_strconcat
        - t_strdup_printf
        - testsuite_script_get_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:71,2'
          Dst:             sieve_runtime_trace
        - Src:             'testsuite-script.c:74,16'
          Dst:             sieve_file_script_get_dir_path
        - Src:             'testsuite-script.c:78,16'
          Dst:             t_strconcat
        - Src:             'testsuite-script.c:80,29'
          Dst:             t_strdup_printf
        - Src:             'testsuite-script.c:82,28'
          Dst:             testsuite_script_get_name
        - Src:             'testsuite-script.c:85,3'
          Dst:             settings_instance_find
        - Src:             'testsuite-script.c:86,2'
          Dst:             settings_override
        - Src:             'testsuite-script.c:89,6'
          Dst:             t_strdup_printf
        - Src:             'testsuite-script.c:88,2'
          Dst:             settings_override
        - Src:             'testsuite-script.c:94,6'
          Dst:             t_strdup_printf
        - Src:             'testsuite-script.c:93,2'
          Dst:             settings_override
        - Src:             'testsuite-script.c:98,6'
          Dst:             t_strdup_printf
        - Src:             'testsuite-script.c:97,2'
          Dst:             settings_override
        - Src:             'testsuite-script.c:102,6'
          Dst:             t_strdup_printf
        - Src:             'testsuite-script.c:101,2'
          Dst:             settings_override
        - Src:             'testsuite-script.c:106,6'
          Dst:             sieve_compile
    - functionName:    testsuite_script_get_name
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - path_get_filename
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:50,9'
          Dst:             path_get_filename
        - Src:             'testsuite-script.c:53,8'
          Dst:             strrchr
        - Src:             'testsuite-script.c:55,7'
          Dst:             strcmp
        - Src:             'testsuite-script.c:56,7'
          Dst:             strcmp
        - Src:             'testsuite-script.c:59,9'
          Dst:             t_strdup_until
    - functionName:    path_get_filename
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:38,13'
          Dst:             strrchr
    - 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:    81
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_script_set_binary
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_binary_ref
        - sieve_binary_unref
        - testsuite_interpreter_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:238,3'
          Dst:             testsuite_interpreter_context_get
        - Src:             'testsuite-script.c:240,2'
          Dst:             i_panic
        - Src:             'testsuite-script.c:242,2'
          Dst:             sieve_binary_unref
        - Src:             'testsuite-script.c:245,2'
          Dst:             sieve_binary_ref
    - functionName:    testsuite_script_get_binary
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - testsuite_interpreter_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:228,3'
          Dst:             testsuite_interpreter_context_get
        - Src:             'testsuite-script.c:230,2'
          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:    testsuite_script_run
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          190
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - pool_alloconly_create
        - pool_unref
        - sieve_binary_extension_get_index
        - sieve_execute_deinit
        - sieve_execute_finish
        - sieve_execute_init
        - sieve_interpreter_create
        - sieve_interpreter_free
        - sieve_interpreter_run
        - sieve_runtime_error
        - sieve_script_env_init
        - testsuite_interpreter_context_get
        - testsuite_log_clear_messages
        - testsuite_result_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:152,3'
          Dst:             testsuite_interpreter_context_get
        - Src:             'testsuite-script.c:163,2'
          Dst:             i_panic
        - Src:             'testsuite-script.c:166,3'
          Dst:             sieve_runtime_error
        - Src:             'testsuite-script.c:171,2'
          Dst:             testsuite_log_clear_messages
        - Src:             'testsuite-script.c:176,6'
          Dst:             sieve_script_env_init
        - Src:             'testsuite-script.c:177,3'
          Dst:             sieve_runtime_error
        - Src:             'testsuite-script.c:192,11'
          Dst:             testsuite_result_get
        - Src:             'testsuite-script.c:194,9'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-script.c:195,2'
          Dst:             sieve_execute_init
        - Src:             'testsuite-script.c:197,2'
          Dst:             pool_unref
        - Src:             'testsuite-script.c:200,11'
          Dst:             sieve_interpreter_create
        - Src:             'testsuite-script.c:204,3'
          Dst:             sieve_execute_deinit
        - Src:             'testsuite-script.c:208,8'
          Dst:             sieve_interpreter_run
        - Src:             'testsuite-script.c:209,2'
          Dst:             sieve_interpreter_free
        - Src:             'testsuite-script.c:211,2'
          Dst:             sieve_execute_finish
        - Src:             'testsuite-script.c:212,2'
          Dst:             sieve_execute_deinit
        - Src:             'testsuite-script.c:220,3'
          Dst:             sieve_binary_extension_get_index
    - functionName:    testsuite_script_is_subtest
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_extension_get_index
        - testsuite_interpreter_context_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:137,3'
          Dst:             testsuite_interpreter_context_get
        - Src:             'testsuite-script.c:139,2'
          Dst:             i_panic
        - Src:             'testsuite-script.c:143,10'
          Dst:             sieve_binary_extension_get_index
    - functionName:    testsuite_script_compile
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - _testsuite_script_compile
        - i_panic
        - sieve_binary_unref
        - testsuite_interpreter_context_get
        - testsuite_log_clear_messages
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-script.c:118,3'
          Dst:             testsuite_interpreter_context_get
        - Src:             'testsuite-script.c:121,2'
          Dst:             i_panic
        - Src:             'testsuite-script.c:122,2'
          Dst:             testsuite_log_clear_messages
        - Src:             'testsuite-script.c:124,9'
          Dst:             _testsuite_script_compile
        - Src:             'testsuite-script.c:128,2'
          Dst:             sieve_binary_unref
    - functionName:    testsuite_script_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_script_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_result_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_result_iterate_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:202,25'
          Dst:             testsuite_result_iterate_init
    - functionName:    testsuite_result_iterate_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_result_iterate_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:79,9'
          Dst:             sieve_result_iterate_init
    - functionName:    testsuite_result_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - sieve_result_iterate_next
        - strlen
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:178,12'
          Dst:             sieve_result_iterate_next
        - Src:             'testsuite-result.c:193,37'
          Dst:             strlen
        - Src:             'testsuite-result.c:193,11'
          Dst:             t_str_new_const
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    testsuite_result_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
        - testsuite_result_iterate_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:149,12'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-result.c:149,12'
          Dst:             t_malloc0
        - Src:             'testsuite-result.c:155,25'
          Dst:             testsuite_result_iterate_init
    - functionName:    testsuite_result_print
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_nsend_str
        - o_stream_set_no_error_handling
        - sieve_result_print
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:112,8'
          Dst:             o_stream_create_fd
        - Src:             'testsuite-result.c:113,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'testsuite-result.c:115,2'
          Dst:             o_stream_nsend_str
        - Src:             'testsuite-result.c:116,2'
          Dst:             sieve_result_print
        - Src:             'testsuite-result.c:117,2'
          Dst:             o_stream_nsend_str
        - Src:             'testsuite-result.c:119,2'
          Dst:             o_stream_destroy
    - functionName:    testsuite_result_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_result_execute
        - sieve_result_execution_create
        - sieve_runtime_error
        - testsuite_log_clear_messages
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:87,3'
          Dst:             sieve_runtime_error
        - Src:             'testsuite-result.c:93,2'
          Dst:             testsuite_log_clear_messages
        - Src:             'testsuite-result.c:96,22'
          Dst:             sieve_result_execution_create
        - Src:             'testsuite-result.c:101,8'
          Dst:             sieve_result_execute
    - functionName:    testsuite_result_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_result_reset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_alloconly_create
        - pool_unref
        - sieve_interpreter_set_result
        - sieve_result_create
        - sieve_result_execution_destroy
        - sieve_result_unref
        - testsuite_mailstore_flush
        - testsuite_message_flush
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:54,3'
          Dst:             sieve_result_execution_destroy
        - Src:             'testsuite-result.c:55,3'
          Dst:             sieve_result_unref
        - Src:             'testsuite-result.c:56,3'
          Dst:             pool_unref
        - Src:             'testsuite-result.c:59,2'
          Dst:             testsuite_message_flush
        - Src:             'testsuite-result.c:60,2'
          Dst:             testsuite_mailstore_flush
        - Src:             'testsuite-result.c:63,27'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-result.c:64,22'
          Dst:             sieve_result_create
        - Src:             'testsuite-result.c:66,2'
          Dst:             sieve_interpreter_set_result
    - 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:    testsuite_result_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
        - sieve_execute_deinit
        - sieve_result_execution_destroy
        - sieve_result_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:43,2'
          Dst:             sieve_result_execution_destroy
        - Src:             'testsuite-result.c:44,2'
          Dst:             sieve_result_unref
        - Src:             'testsuite-result.c:45,2'
          Dst:             sieve_execute_deinit
        - Src:             'testsuite-result.c:46,2'
          Dst:             pool_unref
    - functionName:    testsuite_result_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_create
        - sieve_execute_init
        - sieve_result_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-result.c:31,27'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-result.c:33,2'
          Dst:             sieve_execute_init
        - Src:             'testsuite-result.c:37,22'
          Dst:             sieve_result_create
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    testsuite_smtp_get
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
        - testsuite_envelope_set_recipient_address
        - testsuite_envelope_set_sender_address
        - testsuite_message_set_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:167,15'
          Dst:             array_count_i
        - Src:             'testsuite-smtp.c:170,13'
          Dst:             array_idx_i
        - Src:             'testsuite-smtp.c:172,2'
          Dst:             testsuite_message_set_file
        - Src:             'testsuite-smtp.c:173,2'
          Dst:             testsuite_envelope_set_sender_address
        - Src:             'testsuite-smtp.c:174,2'
          Dst:             testsuite_envelope_set_recipient_address
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_smtp_finish
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - o_stream_finish
        - o_stream_get_error
        - o_stream_unref
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:146,6'
          Dst:             o_stream_finish
        - Src:             'testsuite-smtp.c:148,4'
          Dst:             o_stream_get_error
        - Src:             'testsuite-smtp.c:147,3'
          Dst:             i_error
        - Src:             'testsuite-smtp.c:151,2'
          Dst:             o_stream_unref
        - Src:             'testsuite-smtp.c:152,2'
          Dst:             p_free_internal
        - Src:             'testsuite-smtp.c:153,2'
          Dst:             p_free_internal
        - Src:             'testsuite-smtp.c:154,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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_smtp_abort
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_unlink
        - o_stream_ignore_last_errors
        - o_stream_unref
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:132,2'
          Dst:             o_stream_ignore_last_errors
        - Src:             'testsuite-smtp.c:133,2'
          Dst:             o_stream_unref
        - Src:             'testsuite-smtp.c:134,2'
          Dst:             i_unlink
        - Src:             'testsuite-smtp.c:135,2'
          Dst:             p_free_internal
        - Src:             'testsuite-smtp.c:136,2'
          Dst:             p_free_internal
        - Src:             'testsuite-smtp.c:137,2'
          Dst:             p_free_internal
    - functionName:    testsuite_smtp_send
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    testsuite_smtp_add_rcpt
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
        - smtp_address_clone
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:110,8'
          Dst:             array_append_space_i
        - Src:             'testsuite-smtp.c:112,14'
          Dst:             p_strdup
        - Src:             'testsuite-smtp.c:113,23'
          Dst:             smtp_address_clone
        - Src:             'testsuite-smtp.c:115,21'
          Dst:             smtp_address_clone
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_smtp_start
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          62
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - i_fatal
        - i_strdup_printf
        - malloc_multiply_check
        - o_stream_create_fd_autoclose
        - open
        - p_malloc
        - smtp_address_clone
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:84,28'
          Dst:             array_count_i
        - Src:             'testsuite-smtp.c:87,9'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-smtp.c:87,9'
          Dst:             p_malloc
        - Src:             'testsuite-smtp.c:89,19'
          Dst:             i_strdup_printf
        - Src:             'testsuite-smtp.c:91,20'
          Dst:             smtp_address_clone
        - Src:             'testsuite-smtp.c:93,7'
          Dst:             open
        - Src:             'testsuite-smtp.c:95,3'
          Dst:             i_fatal
        - Src:             'testsuite-smtp.c:99,17'
          Dst:             o_stream_create_fd_autoclose
    - 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:    67
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_smtp_reset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_smtp_deinit
        - testsuite_smtp_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:66,2'
          Dst:             testsuite_smtp_deinit
        - Src:             'testsuite-smtp.c:67,2'
          Dst:             testsuite_smtp_init
    - functionName:    testsuite_smtp_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_warning
        - pool_unref
        - unlink_directory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:56,6'
          Dst:             unlink_directory
        - Src:             'testsuite-smtp.c:58,3'
          Dst:             i_warning
        - Src:             'testsuite-smtp.c:61,2'
          Dst:             pool_unref
    - functionName:    testsuite_smtp_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - i_fatal
        - mkdir
        - p_strconcat
        - pool_alloconly_create
        - testsuite_tmp_dir_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-smtp.c:39,3'
          Dst:             pool_alloconly_create
        - Src:             'testsuite-smtp.c:42,9'
          Dst:             testsuite_tmp_dir_get
        - Src:             'testsuite-smtp.c:41,23'
          Dst:             p_strconcat
        - Src:             'testsuite-smtp.c:44,6'
          Dst:             mkdir
        - Src:             'testsuite-smtp.c:45,3'
          Dst:             i_fatal
        - Src:             'testsuite-smtp.c:49,2'
          Dst:             array_create_i
    - functionName:    mkdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - 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:    testsuite_mailstore_set_imap_metadata
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          129
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - imap_metadata_set
        - imap_metadata_transaction_begin
        - imap_metadata_transaction_begin_server
        - imap_metadata_transaction_commit
        - imap_metadata_transaction_get_last_error
        - imap_metadata_transaction_rollback
        - imap_metadata_verify_entry_name
        - mail_namespace_find
        - mailbox_alloc
        - mailbox_free
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:318,7'
          Dst:             imap_metadata_verify_entry_name
        - Src:             'testsuite-mailstore.c:319,3'
          Dst:             str_sanitize
        - Src:             'testsuite-mailstore.c:319,3'
          Dst:             e_error
        - Src:             'testsuite-mailstore.c:328,8'
          Dst:             mail_namespace_find
        - Src:             'testsuite-mailstore.c:330,9'
          Dst:             mailbox_alloc
        - Src:             'testsuite-mailstore.c:331,13'
          Dst:             imap_metadata_transaction_begin
        - Src:             'testsuite-mailstore.c:334,13'
          Dst:             imap_metadata_transaction_begin_server
        - Src:             'testsuite-mailstore.c:340,13'
          Dst:             imap_metadata_set
        - Src:             'testsuite-mailstore.c:341,11'
          Dst:             imap_metadata_transaction_get_last_error
        - Src:             'testsuite-mailstore.c:343,3'
          Dst:             imap_metadata_transaction_rollback
        - Src:             'testsuite-mailstore.c:345,9'
          Dst:             imap_metadata_transaction_commit
        - Src:             'testsuite-mailstore.c:349,3'
          Dst:             mailbox_free
        - Src:             'testsuite-mailstore.c:352,3'
          Dst:             str_sanitize
        - Src:             'testsuite-mailstore.c:352,3'
          Dst:             e_error
    - functionName:    testsuite_mailstore_open
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          191
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - i_strdup
        - mail_alloc
        - mailbox_alloc
        - mailbox_free
        - mailbox_open
        - mailbox_sync
        - mailbox_transaction_begin
        - malloc_multiply_check
        - p_malloc
        - sieve_mailbox_check_name
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:188,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'testsuite-mailstore.c:189,3'
          Dst:             e_error
        - Src:             'testsuite-mailstore.c:198,7'
          Dst:             strcmp
        - Src:             'testsuite-mailstore.c:217,8'
          Dst:             mailbox_alloc
        - Src:             'testsuite-mailstore.c:218,6'
          Dst:             mailbox_open
        - Src:             'testsuite-mailstore.c:219,3'
          Dst:             e_error
        - Src:             'testsuite-mailstore.c:221,3'
          Dst:             mailbox_free
        - Src:             'testsuite-mailstore.c:227,6'
          Dst:             mailbox_sync
        - Src:             'testsuite-mailstore.c:228,3'
          Dst:             e_error
        - Src:             'testsuite-mailstore.c:230,3'
          Dst:             mailbox_free
        - Src:             'testsuite-mailstore.c:236,6'
          Dst:             mailbox_transaction_begin
        - Src:             'testsuite-mailstore.c:238,10'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-mailstore.c:238,10'
          Dst:             p_malloc
        - Src:             'testsuite-mailstore.c:242,18'
          Dst:             i_strdup
        - Src:             'testsuite-mailstore.c:245,16'
          Dst:             mail_alloc
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    testsuite_mailstore_mail_index
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_set_seq
        - mailbox_get_open_status
        - testsuite_mailstore_open
        - testsuite_message_set_default
        - testsuite_message_set_mail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:287,10'
          Dst:             testsuite_mailstore_open
        - Src:             'testsuite-mailstore.c:289,3'
          Dst:             testsuite_message_set_default
        - Src:             'testsuite-mailstore.c:293,2'
          Dst:             mailbox_get_open_status
        - Src:             'testsuite-mailstore.c:297,2'
          Dst:             mail_set_seq
        - Src:             'testsuite-mailstore.c:298,2'
          Dst:             testsuite_message_set_mail
    - functionName:    testsuite_mailstore_flush
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_mailstore_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:278,2'
          Dst:             testsuite_mailstore_free
    - functionName:    testsuite_mailstore_free
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - mail_free
        - mailbox_free
        - mailbox_transaction_rollback
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:262,3'
          Dst:             mail_free
        - Src:             'testsuite-mailstore.c:263,3'
          Dst:             mailbox_transaction_rollback
        - Src:             'testsuite-mailstore.c:264,3'
          Dst:             mailbox_free
        - Src:             'testsuite-mailstore.c:265,3'
          Dst:             p_free_internal
        - Src:             'testsuite-mailstore.c:266,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    testsuite_mailstore_mailbox_create
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_alloc
        - mailbox_create
        - mailbox_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:164,8'
          Dst:             mailbox_alloc
        - Src:             'testsuite-mailstore.c:166,6'
          Dst:             mailbox_create
        - Src:             'testsuite-mailstore.c:167,3'
          Dst:             mailbox_free
        - Src:             'testsuite-mailstore.c:171,2'
          Dst:             mailbox_free
    - functionName:    testsuite_mailstore_get_user
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_tool_get_mail_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:149,10'
          Dst:             sieve_tool_get_mail_user
    - functionName:    testsuite_mailstore_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_warning
        - mail_user_unref
        - p_free_internal
        - testsuite_mailstore_free
        - unlink_directory
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:129,2'
          Dst:             testsuite_mailstore_free
        - Src:             'testsuite-mailstore.c:131,6'
          Dst:             unlink_directory
        - Src:             'testsuite-mailstore.c:133,3'
          Dst:             i_warning
        - Src:             'testsuite-mailstore.c:137,2'
          Dst:             p_free_internal
        - Src:             'testsuite-mailstore.c:138,2'
          Dst:             p_free_internal
        - Src:             'testsuite-mailstore.c:139,2'
          Dst:             mail_user_unref
    - functionName:    testsuite_mailstore_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-mailstore.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          176
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - i_strconcat
        - mail_namespaces_init_empty
        - mail_namespaces_init_finish
        - mail_storage_create
        - mail_storage_service_lookup_next
        - mail_storage_service_user_get_settings_instance
        - malloc_multiply_check
        - mkdir
        - p_malloc
        - sieve_tool_get_mail_storage_service
        - sieve_tool_get_mail_user
        - t_get_working_dir
        - t_strconcat
        - testsuite_tmp_dir_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-mailstore.c:69,11'
          Dst:             testsuite_tmp_dir_get
        - Src:             'testsuite-mailstore.c:71,3'
          Dst:             i_strconcat
        - Src:             'testsuite-mailstore.c:73,3'
          Dst:             i_strconcat
        - Src:             'testsuite-mailstore.c:75,6'
          Dst:             mkdir
        - Src:             'testsuite-mailstore.c:76,3'
          Dst:             i_fatal
        - Src:             'testsuite-mailstore.c:80,22'
          Dst:             sieve_tool_get_mail_user
        - Src:             'testsuite-mailstore.c:82,6'
          Dst:             t_get_working_dir
        - Src:             'testsuite-mailstore.c:83,3'
          Dst:             i_fatal
        - Src:             'testsuite-mailstore.c:85,3'
          Dst:             t_strconcat
        - Src:             'testsuite-mailstore.c:87,3'
          Dst:             t_strconcat
        - Src:             'testsuite-mailstore.c:96,3'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'testsuite-mailstore.c:104,4'
          Dst:             sieve_tool_get_mail_storage_service
        - Src:             'testsuite-mailstore.c:103,6'
          Dst:             mail_storage_service_lookup_next
        - Src:             'testsuite-mailstore.c:106,3'
          Dst:             i_fatal
        - Src:             'testsuite-mailstore.c:109,11'
          Dst:             malloc_multiply_check
        - Src:             'testsuite-mailstore.c:109,11'
          Dst:             p_malloc
        - Src:             'testsuite-mailstore.c:113,7'
          Dst:             mail_namespaces_init_empty
        - Src:             'testsuite-mailstore.c:117,6'
          Dst:             mail_storage_create
        - Src:             'testsuite-mailstore.c:118,3'
          Dst:             i_fatal
        - Src:             'testsuite-mailstore.c:119,6'
          Dst:             mail_namespaces_init_finish
        - Src:             'testsuite-mailstore.c:120,3'
          Dst:             i_fatal
    - functionName:    testsuite_binary_load
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binfile_from_name
        - sieve_load
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-binary.c:80,13'
          Dst:             sieve_binfile_from_name
        - Src:             'testsuite-binary.c:79,25'
          Dst:             t_strdup_printf
        - Src:             'testsuite-binary.c:79,6'
          Dst:             sieve_load
    - functionName:    testsuite_binary_save
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binfile_from_name
        - sieve_save_as
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-binary.c:70,12'
          Dst:             sieve_binfile_from_name
        - Src:             'testsuite-binary.c:69,10'
          Dst:             t_strdup_printf
        - Src:             'testsuite-binary.c:68,10'
          Dst:             sieve_save_as
    - functionName:    testsuite_binary_reset
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_binary_deinit
        - testsuite_binary_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-binary.c:58,2'
          Dst:             testsuite_binary_init
        - Src:             'testsuite-binary.c:59,2'
          Dst:             testsuite_binary_deinit
    - functionName:    testsuite_binary_init
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - i_strconcat
        - mkdir
        - testsuite_tmp_dir_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-binary.c:34,37'
          Dst:             testsuite_tmp_dir_get
        - Src:             'testsuite-binary.c:34,25'
          Dst:             i_strconcat
        - Src:             'testsuite-binary.c:37,6'
          Dst:             mkdir
        - Src:             'testsuite-binary.c:38,3'
          Dst:             i_fatal
    - functionName:    testsuite_binary_deinit
      functionSourceFile: '/src/pigeonhole/src/testsuite/testsuite-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_warning
        - p_free_internal
        - unlink_directory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'testsuite-binary.c:47,6'
          Dst:             unlink_directory
        - Src:             'testsuite-binary.c:49,3'
          Dst:             i_warning
        - Src:             'testsuite-binary.c:53,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:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_sep
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_sep
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:187,3'
          Dst:             _sieve_runtime_trace_sep
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    _get_generator_context
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generator_extension_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:105,3'
          Dst:             sieve_generator_extension_get_context
    - functionName:    cmd_test_finish_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_trace
        - sieve_runtime_trace_sep
        - testsuite_test_succeed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:203,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test.c:204,2'
          Dst:             sieve_runtime_trace_sep
        - Src:             'cmd-test.c:206,9'
          Dst:             testsuite_test_succeed
    - functionName:    cmd_test_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_offset
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_runtime_trace_sep
        - str_c
        - testsuite_test_start
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:179,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test.c:184,7'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-test.c:185,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test.c:190,2'
          Dst:             sieve_runtime_trace_sep
        - Src:             'cmd-test.c:193,8'
          Dst:             str_c
        - Src:             'cmd-test.c:191,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test.c:196,9'
          Dst:             testsuite_test_start
    - functionName:    cmd_test_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_offset
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:149,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test.c:150,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test.c:152,7'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-test.c:155,2'
          Dst:             sieve_code_mark
        - Src:             'cmd-test.c:157,7'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-test.c:159,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_test_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _get_generator_context
        - sieve_binary_emit_offset
        - sieve_generate_arguments
        - sieve_generate_block
        - sieve_jumplist_add
        - sieve_jumplist_reset
        - sieve_jumplist_resolve
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:113,3'
          Dst:             _get_generator_context
        - Src:             'cmd-test.c:115,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test.c:118,7'
          Dst:             sieve_generate_arguments
        - Src:             'cmd-test.c:122,2'
          Dst:             sieve_jumplist_reset
        - Src:             'cmd-test.c:124,3'
          Dst:             sieve_binary_emit_offset
        - Src:             'cmd-test.c:123,2'
          Dst:             sieve_jumplist_add
        - Src:             'cmd-test.c:127,7'
          Dst:             sieve_generate_block
        - Src:             'cmd-test.c:130,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test.c:133,2'
          Dst:             sieve_jumplist_resolve
    - functionName:    cmd_test_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test.c:84,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-test.c:90,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test.c:94,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    cmd_test_fail_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_trace
        - testsuite_test_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-fail.c:120,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-fail.c:124,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-fail.c:127,9'
          Dst:             testsuite_test_fail
    - functionName:    cmd_test_fail_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-fail.c:100,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-fail.c:101,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-fail.c:103,7'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_fail_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-fail.c:83,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-fail.c:86,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_fail_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-fail.c:68,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-fail.c:72,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    cmd_test_config_reload_validate_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:180,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-test-config.c:185,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_test_config_reload_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          204
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - printf
        - sieve_extension_get_by_name
        - sieve_extension_reload
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_settings_reload
        - str_c
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-test-config.c:446,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-test-config.c:440,9'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-test-config.c:448,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-config.c:452,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test-config.c:465,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-config.c:466,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:468,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-config.c:472,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-config.c:473,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:478,7'
          Dst:             sieve_settings_reload
        - Src:             'cmd-test-config.c:480,5'
          Dst:             printf
        - Src:             'cmd-test-config.c:486,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-config.c:490,5'
          Dst:             str_c
        - Src:             'cmd-test-config.c:487,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:494,9'
          Dst:             str_c
        - Src:             'cmd-test-config.c:493,9'
          Dst:             sieve_extension_get_by_name
        - Src:             'cmd-test-config.c:498,12'
          Dst:             str_c
        - Src:             'cmd-test-config.c:497,5'
          Dst:             printf
        - Src:             'cmd-test-config.c:502,7'
          Dst:             sieve_extension_reload
        - Src:             'cmd-test-config.c:505,12'
          Dst:             str_c
        - Src:             'cmd-test-config.c:504,5'
          Dst:             printf
    - functionName:    cmd_test_config_reload_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-test-config.c:328,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-test-config.c:313,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-config.c:314,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-config.c:322,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-test-config.c:330,11'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_config_unset_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - testsuite_setting_unset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:401,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-config.c:409,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-config.c:410,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:412,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-config.c:414,34'
          Dst:             str_c
        - Src:             'cmd-test-config.c:413,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:417,26'
          Dst:             str_c
        - Src:             'cmd-test-config.c:417,2'
          Dst:             testsuite_setting_unset
    - functionName:    cmd_test_config_unset_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:300,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-config.c:302,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-config.c:304,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_config_set_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - testsuite_setting_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:362,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-config.c:367,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-config.c:375,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-config.c:376,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:378,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-config.c:381,4'
          Dst:             str_c
        - Src:             'cmd-test-config.c:381,20'
          Dst:             str_c
        - Src:             'cmd-test-config.c:379,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-config.c:384,24'
          Dst:             str_c
        - Src:             'cmd-test-config.c:384,40'
          Dst:             str_c
        - Src:             'cmd-test-config.c:384,2'
          Dst:             testsuite_setting_set
    - functionName:    cmd_test_config_set_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:288,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-config.c:290,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-config.c:292,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-test-config.c:293,3'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_config_reload_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:204,2'
          Dst:             sieve_validator_register_tag
    - functionName:    cmd_test_config_unset_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:247,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-config.c:250,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    cmd_test_config_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:262,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-config.c:265,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-config.c:268,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-config.c:271,3'
          Dst:             i_unreached
        - Src:             'cmd-test-config.c:275,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_config_set_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-config.c:224,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-config.c:227,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-test-config.c:232,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-config.c:235,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    cmd_test_set_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - str_c
        - testsuite_object_member_name
        - testsuite_object_read_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-set.c:135,7'
          Dst:             testsuite_object_read_member
        - Src:             'cmd-test-set.c:137,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test-set.c:142,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-set.c:146,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-set.c:147,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-set.c:148,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-set.c:151,4'
          Dst:             testsuite_object_member_name
        - Src:             'cmd-test-set.c:152,4'
          Dst:             str_c
        - Src:             'cmd-test-set.c:149,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-set.c:156,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    cmd_test_set_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
        - testsuite_object_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-set.c:115,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-set.c:116,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-set.c:118,10'
          Dst:             testsuite_object_dump
        - Src:             'cmd-test-set.c:119,3'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_set_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-set.c:101,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-set.c:104,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_set_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - testsuite_object_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-set.c:79,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-set.c:82,7'
          Dst:             testsuite_object_argument_activate
        - Src:             'cmd-test-set.c:87,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-set.c:90,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    cmd_test_result_print_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_trace
        - testsuite_result_print
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-result.c:131,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-result.c:134,2'
          Dst:             testsuite_result_print
    - functionName:    cmd_test_result_reset_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_trace
        - testsuite_result_reset
        - testsuite_smtp_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-result.c:118,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-result.c:121,2'
          Dst:             testsuite_result_reset
        - Src:             'cmd-test-result.c:122,2'
          Dst:             testsuite_smtp_reset
    - functionName:    cmd_test_result_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-result.c:98,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-result.c:101,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-result.c:104,3'
          Dst:             i_unreached
    - 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:             'dovecot/src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - 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:             'dovecot/src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             'dovecot/src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    cmd_test_message_validate_smtp_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cmd_test_message_validate_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:221,3'
          Dst:             cmd_test_message_validate_tag
    - functionName:    cmd_test_message_validate_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_arguments_detach
        - sieve_ast_pool
        - sieve_validator_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:200,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-test-message.c:205,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-test-message.c:205,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-test-message.c:205,13'
          Dst:             p_malloc
        - Src:             'cmd-test-message.c:210,9'
          Dst:             sieve_ast_arguments_detach
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_test_message_validate_folder_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - cmd_test_message_validate_tag
        - sieve_mailbox_check_name
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:240,3'
          Dst:             cmd_test_message_validate_tag
        - Src:             'cmd-test-message.c:252,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-test-message.c:259,24'
          Dst:             str_c
        - Src:             'cmd-test-message.c:261,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-message.c:262,4'
          Dst:             str_sanitize
        - Src:             'cmd-test-message.c:262,4'
          Dst:             sieve_validator_error
    - functionName:    cmd_test_message_print_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_read_more
        - i_stream_skip
        - mail_get_stream
        - printf
        - sieve_message_get_mail
        - sieve_runtime_error
        - write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:543,22'
          Dst:             sieve_message_get_mail
        - Src:             'cmd-test-message.c:551,6'
          Dst:             mail_get_stream
        - Src:             'cmd-test-message.c:552,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-test-message.c:557,2'
          Dst:             printf
        - Src:             'cmd-test-message.c:560,9'
          Dst:             i_stream_read_more
        - Src:             'cmd-test-message.c:563,10'
          Dst:             write
        - Src:             'cmd-test-message.c:566,3'
          Dst:             i_stream_skip
        - Src:             'cmd-test-message.c:568,2'
          Dst:             printf
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_test_message_print_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:383,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_test_message_mailbox_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          166
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_binary_read_byte
        - sieve_interpreter_set_test_result
        - sieve_mailbox_check_name
        - sieve_opr_number_read
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - str_c
        - testsuite_mailstore_mail_index
        - testsuite_test_failf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:476,7'
          Dst:             sieve_binary_read_byte
        - Src:             'cmd-test-message.c:477,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test-message.c:482,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-message.c:487,8'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-test-message.c:491,32'
          Dst:             str_c
        - Src:             'cmd-test-message.c:491,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-message.c:494,4'
          Dst:             str_c
        - Src:             'cmd-test-message.c:492,10'
          Dst:             testsuite_test_failf
        - Src:             'cmd-test-message.c:502,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-message.c:503,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:505,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-message.c:509,5'
          Dst:             str_c
        - Src:             'cmd-test-message.c:506,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:512,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-message.c:513,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:515,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-message.c:519,5'
          Dst:             str_c
        - Src:             'cmd-test-message.c:516,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:523,48'
          Dst:             str_c
        - Src:             'cmd-test-message.c:523,11'
          Dst:             testsuite_mailstore_mail_index
        - Src:             'cmd-test-message.c:526,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'cmd-test-message.c:533,4'
          Dst:             str_c
        - Src:             'cmd-test-message.c:531,10'
          Dst:             testsuite_test_failf
    - functionName:    cmd_test_message_mailbox_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_byte
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:367,7'
          Dst:             sieve_binary_read_byte
        - Src:             'cmd-test-message.c:370,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-message.c:373,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-message.c:375,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-test-message.c:376,3'
          Dst:             sieve_opr_number_dump
    - functionName:    cmd_test_message_smtp_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - sieve_binary_read_byte
        - sieve_interpreter_set_test_result
        - sieve_opr_number_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - testsuite_smtp_get
        - testsuite_test_failf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:407,7'
          Dst:             sieve_binary_read_byte
        - Src:             'cmd-test-message.c:408,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test-message.c:414,8'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-test-message.c:423,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-message.c:424,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:426,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-message.c:427,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:433,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-message.c:434,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:436,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-message.c:437,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-message.c:444,11'
          Dst:             testsuite_smtp_get
        - Src:             'cmd-test-message.c:447,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'cmd-test-message.c:452,10'
          Dst:             testsuite_test_failf
    - functionName:    cmd_test_message_smtp_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_byte
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:350,7'
          Dst:             sieve_binary_read_byte
        - Src:             'cmd-test-message.c:353,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-message.c:356,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-message.c:358,9'
          Dst:             sieve_opr_number_dump
    - functionName:    cmd_test_message_print_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:335,2'
          Dst:             sieve_operation_emit
    - functionName:    cmd_test_message_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_emit_byte
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:313,2'
          Dst:             i_panic
        - Src:             'cmd-test-message.c:316,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-message.c:320,2'
          Dst:             sieve_binary_emit_byte
        - Src:             'cmd-test-message.c:324,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_message_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:288,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-test-message.c:295,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-message.c:299,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    cmd_test_message_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-message.c:184,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-test-message.c:186,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_test_mailbox_delete_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - testsuite_test_failf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:206,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-mailbox.c:207,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-mailbox.c:210,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-mailbox.c:211,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-mailbox.c:216,9'
          Dst:             testsuite_test_failf
    - functionName:    cmd_test_mailbox_create_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - testsuite_mailstore_mailbox_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:189,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-mailbox.c:190,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-mailbox.c:193,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-mailbox.c:194,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-mailbox.c:198,2'
          Dst:             testsuite_mailstore_mailbox_create
    - functionName:    cmd_test_mailbox_get_command_name
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:182,2'
          Dst:             i_unreached
    - functionName:    cmd_test_mailbox_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:163,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-mailbox.c:165,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-mailbox.c:167,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_mailbox_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - cmd_test_mailbox_create_execute
        - cmd_test_mailbox_delete_execute
        - cmd_test_mailbox_get_command_name
        - i_unreached
        - sieve_mailbox_check_name
        - sieve_opr_string_read
        - sieve_runtime_error
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:235,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-mailbox.c:239,32'
          Dst:             str_c
        - Src:             'cmd-test-mailbox.c:239,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-mailbox.c:240,3'
          Dst:             cmd_test_mailbox_get_command_name
        - Src:             'cmd-test-mailbox.c:240,3'
          Dst:             str_c
        - Src:             'cmd-test-mailbox.c:240,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-test-mailbox.c:253,47'
          Dst:             str_c
        - Src:             'cmd-test-mailbox.c:253,9'
          Dst:             cmd_test_mailbox_create_execute
        - Src:             'cmd-test-mailbox.c:255,47'
          Dst:             str_c
        - Src:             'cmd-test-mailbox.c:255,9'
          Dst:             cmd_test_mailbox_delete_execute
        - Src:             'cmd-test-mailbox.c:257,3'
          Dst:             i_unreached
    - functionName:    cmd_test_mailbox_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:139,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-mailbox.c:142,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-mailbox.c:145,3'
          Dst:             i_unreached
        - Src:             'cmd-test-mailbox.c:149,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_mailbox_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_mailbox_check_name
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-mailbox.c:105,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-mailbox.c:109,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-test-mailbox.c:114,24'
          Dst:             str_c
        - Src:             'cmd-test-mailbox.c:116,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-mailbox.c:117,4'
          Dst:             str_sanitize
        - Src:             'cmd-test-mailbox.c:117,4'
          Dst:             sieve_validator_error
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_test_binary_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          150
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - i_unreached
        - sieve_binary_unref
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - testsuite_binary_load
        - testsuite_binary_save
        - testsuite_script_get_binary
        - testsuite_script_set_binary
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-binary.c:168,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-binary.c:178,26'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:178,4'
          Dst:             testsuite_binary_load
        - Src:             'cmd-test-binary.c:180,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-binary.c:181,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-binary.c:183,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-binary.c:185,10'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:184,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-binary.c:189,4'
          Dst:             testsuite_script_set_binary
        - Src:             'cmd-test-binary.c:191,4'
          Dst:             sieve_binary_unref
        - Src:             'cmd-test-binary.c:193,4'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:193,4'
          Dst:             e_error
        - Src:             'cmd-test-binary.c:198,31'
          Dst:             testsuite_script_get_binary
        - Src:             'cmd-test-binary.c:200,8'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-binary.c:201,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-binary.c:203,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-binary.c:205,10'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:204,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-binary.c:209,32'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:209,4'
          Dst:             testsuite_binary_save
        - Src:             'cmd-test-binary.c:211,4'
          Dst:             str_c
        - Src:             'cmd-test-binary.c:211,4'
          Dst:             e_error
        - Src:             'cmd-test-binary.c:217,3'
          Dst:             i_unreached
    - functionName:    cmd_test_binary_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-binary.c:143,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-binary.c:145,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-binary.c:147,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_binary_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-binary.c:119,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-binary.c:122,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-binary.c:125,3'
          Dst:             i_unreached
        - Src:             'cmd-test-binary.c:129,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_binary_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-binary.c:102,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-binary.c:106,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    cmd_test_imap_metadata_validate_mailbox_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_mailbox_check_name
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:107,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-test-imap-metadata.c:112,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-test-imap-metadata.c:118,25'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:120,8'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-imap-metadata.c:121,4'
          Dst:             str_sanitize
        - Src:             'cmd-test-imap-metadata.c:121,4'
          Dst:             sieve_validator_error
    - functionName:    cmd_test_imap_metadata_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          210
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - sieve_mailbox_check_name
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - str_c
        - testsuite_mailstore_set_imap_metadata
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-test-imap-metadata.c:268,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:262,9'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-test-imap-metadata.c:270,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-imap-metadata.c:273,34'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:273,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'cmd-test-imap-metadata.c:274,5'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:274,5'
          Dst:             sieve_runtime_error
        - Src:             'cmd-test-imap-metadata.c:283,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-test-imap-metadata.c:294,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-imap-metadata.c:297,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-test-imap-metadata.c:306,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-test-imap-metadata.c:307,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-imap-metadata.c:309,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-test-imap-metadata.c:313,6'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:311,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-imap-metadata.c:317,6'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:317,25'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:315,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-test-imap-metadata.c:322,30'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:323,4'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:323,23'
          Dst:             str_c
        - Src:             'cmd-test-imap-metadata.c:321,7'
          Dst:             testsuite_mailstore_set_imap_metadata
    - functionName:    cmd_test_imap_metadata_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          113
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-test-imap-metadata.c:223,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:208,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-test-imap-metadata.c:209,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-test-imap-metadata.c:217,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-test-imap-metadata.c:225,11'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-test-imap-metadata.c:235,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-test-imap-metadata.c:236,3'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_test_imap_metadata_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:186,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-test-imap-metadata.c:189,3'
          Dst:             i_unreached
        - Src:             'cmd-test-imap-metadata.c:193,7'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_test_imap_metadata_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:143,2'
          Dst:             sieve_validator_register_tag
    - functionName:    cmd_test_imap_metadata_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/cmd-test-imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-test-imap-metadata.c:160,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-imap-metadata.c:163,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-test-imap-metadata.c:168,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-test-imap-metadata.c:171,7'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_test_script_compile_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-compile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - testsuite_script_compile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-compile.c:118,12'
          Dst:             sieve_opr_string_read
        - Src:             'tst-test-script-compile.c:126,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-test-script-compile.c:127,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-script-compile.c:128,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-test-script-compile.c:133,42'
          Dst:             str_c
        - Src:             'tst-test-script-compile.c:133,11'
          Dst:             testsuite_script_compile
        - Src:             'tst-test-script-compile.c:136,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_script_compile_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-compile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-compile.c:94,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-test-script-compile.c:95,2'
          Dst:             sieve_code_descend
        - Src:             'tst-test-script-compile.c:97,8'
          Dst:             sieve_opr_string_dump
    - functionName:    tst_test_script_compile_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-compile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-compile.c:81,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-test-script-compile.c:84,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_test_script_compile_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-compile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-compile.c:66,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-test-script-compile.c:71,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             '../../src/lib-sieve/sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    tst_test_script_run_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-run.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_opr_optional_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - testsuite_result_reset
        - testsuite_script_run
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-test-script-run.c:157,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-test-script-run.c:152,13'
          Dst:             sieve_opr_optional_read
        - Src:             'tst-test-script-run.c:162,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-test-script-run.c:172,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-script-run.c:178,3'
          Dst:             testsuite_result_reset
        - Src:             'tst-test-script-run.c:181,11'
          Dst:             testsuite_script_run
        - Src:             'tst-test-script-run.c:183,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-test-script-run.c:184,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-test-script-run.c:185,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-script-run.c:190,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_script_run_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-run.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_optional_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-test-script-run.c:120,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-test-script-run.c:108,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-test-script-run.c:109,2'
          Dst:             sieve_code_descend
        - Src:             'tst-test-script-run.c:115,13'
          Dst:             sieve_opr_optional_dump
        - Src:             'tst-test-script-run.c:122,4'
          Dst:             sieve_code_dumpf
    - functionName:    tst_test_script_run_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-run.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-run.c:94,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-test-script-run.c:96,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_test_script_run_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-script-run.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-script-run.c:80,2'
          Dst:             sieve_validator_register_tag
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_test_multiscript_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-multiscript.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          104
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_create_i
        - pool_datastack_create
        - sieve_interpreter_set_test_result
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_stringlist_next_item
        - str_c
        - t_strdup
        - testsuite_script_multiscript
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-multiscript.c:121,12'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-test-multiscript.c:129,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-multiscript.c:131,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-test-multiscript.c:133,2'
          Dst:             pool_datastack_create
        - Src:             'tst-test-multiscript.c:133,2'
          Dst:             array_create_i
        - Src:             'tst-test-multiscript.c:137,8'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-test-multiscript.c:138,33'
          Dst:             str_c
        - Src:             'tst-test-multiscript.c:138,24'
          Dst:             t_strdup
        - Src:             'tst-test-multiscript.c:140,3'
          Dst:             array_append_i
        - Src:             'tst-test-multiscript.c:144,3'
          Dst:             testsuite_script_multiscript
        - Src:             'tst-test-multiscript.c:147,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_multiscript_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-multiscript.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-multiscript.c:95,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-test-multiscript.c:96,2'
          Dst:             sieve_code_descend
        - Src:             'tst-test-multiscript.c:98,8'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_test_multiscript_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-multiscript.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-multiscript.c:82,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-test-multiscript.c:85,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_test_multiscript_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-multiscript.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-multiscript.c:67,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-test-multiscript.c:72,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_test_error_validate_index_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:97,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tst-test-error.c:102,8'
          Dst:             sieve_validate_tag_parameter
    - functionName:    tst_test_error_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_number_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - testsuite_log_stringlist_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:226,13'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-test-error.c:233,14'
          Dst:             sieve_opr_number_read
        - Src:             'tst-test-error.c:237,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-test-error.c:243,12'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-test-error.c:252,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-error.c:255,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-error.c:259,15'
          Dst:             testsuite_log_stringlist_create
        - Src:             'tst-test-error.c:262,14'
          Dst:             sieve_match
        - Src:             'tst-test-error.c:266,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_error_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          73
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_number_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:179,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-test-error.c:180,2'
          Dst:             sieve_code_descend
        - Src:             'tst-test-error.c:186,13'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-test-error.c:193,10'
          Dst:             sieve_opr_number_dump
        - Src:             'tst-test-error.c:200,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_test_error_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:164,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-test-error.c:167,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_test_error_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:144,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-test-error.c:149,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-test-error.c:153,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_test_error_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-error.c:122,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-test-error.c:123,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-test-error.c:125,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_test_result_action_validate_index_tag
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:97,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tst-test-result-action.c:102,8'
          Dst:             sieve_validate_tag_parameter
    - functionName:    tst_test_result_action_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_number_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - testsuite_result_stringlist_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:226,13'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-test-result-action.c:233,14'
          Dst:             sieve_opr_number_read
        - Src:             'tst-test-result-action.c:237,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-test-result-action.c:243,12'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-test-result-action.c:251,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-result-action.c:255,15'
          Dst:             testsuite_result_stringlist_create
        - Src:             'tst-test-result-action.c:258,14'
          Dst:             sieve_match
        - Src:             'tst-test-result-action.c:262,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_result_action_operation_dump
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          73
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_number_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:179,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-test-result-action.c:180,2'
          Dst:             sieve_code_descend
        - Src:             'tst-test-result-action.c:186,13'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-test-result-action.c:193,10'
          Dst:             sieve_opr_number_dump
        - Src:             'tst-test-result-action.c:200,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_test_result_action_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:164,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-test-result-action.c:167,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_test_result_action_validate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:144,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-test-result-action.c:149,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-test-result-action.c:153,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_test_result_action_registered
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-action.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-action.c:122,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-test-result-action.c:123,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-test-result-action.c:125,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/testsuite/../../src/lib-sieve/sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_test_result_execute_operation_execute
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-execute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - testsuite_result_execute
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-execute.c:76,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-result-execute.c:79,11'
          Dst:             testsuite_result_execute
        - Src:             'tst-test-result-execute.c:81,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-test-result-execute.c:82,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-test-result-execute.c:83,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-test-result-execute.c:88,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_test_result_execute_generate
      functionSourceFile: '/src/pigeonhole/src/testsuite/tst-test-result-execute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-test-result-execute.c:58,2'
          Dst:             sieve_operation_emit
    - functionName:    ext_testsuite_binary_load
      functionSourceFile: '/src/pigeonhole/src/testsuite/ext-testsuite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_testsuite_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/testsuite/ext-testsuite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_interpreter_context_initialize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-testsuite.c:173,9'
          Dst:             testsuite_interpreter_context_initialize
    - functionName:    ext_testsuite_generator_load
      functionSourceFile: '/src/pigeonhole/src/testsuite/ext-testsuite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - testsuite_generator_context_initialize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-testsuite.c:165,9'
          Dst:             testsuite_generator_context_initialize
    - functionName:    ext_testsuite_validator_load
      functionSourceFile: '/src/pigeonhole/src/testsuite/ext-testsuite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          83
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
        - testsuite_validator_context_initialize
        - testsuite_variables_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-testsuite.c:127,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:128,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:129,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:130,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:131,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:132,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:133,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:134,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:135,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:136,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:137,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:138,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:139,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:140,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:141,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:144,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:145,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:146,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:147,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:148,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:149,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-testsuite.c:156,2'
          Dst:             testsuite_variables_init
        - Src:             'ext-testsuite.c:158,9'
          Dst:             testsuite_validator_context_initialize
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/pigeonhole/src/testsuite/fuzzsuite.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          253
      EdgeCount:       34
      CyclomaticComplexity: 3
      functionsReached:
        - fuzz_die
        - fuzzer_deinit
        - fuzzer_init
        - getenv
        - i_fatal
        - i_panic
        - i_stream_create_from_data
        - i_stream_destroy
        - lib_signals_set_handler
        - master_service_parse_option
        - printf
        - settings_info_register
        - settings_instance_find
        - settings_override
        - sieve_close
        - sieve_compile_script
        - sieve_data_script_create_from_input
        - sieve_script_env_init
        - sieve_script_unref
        - sieve_tool_deinit
        - sieve_tool_get_homedir
        - sieve_tool_init_finish
        - sieve_tool_init_fuzzer
        - t_pop
        - t_push
        - t_strdup_printf
        - testsuite_deinit
        - testsuite_init
        - testsuite_mailstore_deinit
        - testsuite_mailstore_get_user
        - testsuite_mailstore_init
        - testsuite_message_deinit
        - testsuite_message_init
        - testsuite_result_deinit
        - testsuite_result_init
        - testsuite_run
        - testsuite_testcase_fail
        - testsuite_testcase_result
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fuzzsuite.c:255,3'
          Branch Sides:    []
      Callsites:
        - Src:             'fuzzsuite.c:105,1'
          Dst:             fuzzer_init
        - Src:             'fuzzsuite.c:105,1'
          Dst:             t_push
        - Src:             'fuzzsuite.c:117,23'
          Dst:             getenv
        - Src:             'fuzzsuite.c:122,15'
          Dst:             sieve_tool_init_fuzzer
        - Src:             'fuzzsuite.c:126,2'
          Dst:             lib_signals_set_handler
        - Src:             'fuzzsuite.c:126,2'
          Dst:             fuzz_die
        - Src:             'fuzzsuite.c:138,2'
          Dst:             master_service_parse_option
        - Src:             'fuzzsuite.c:141,2'
          Dst:             master_service_parse_option
        - Src:             'fuzzsuite.c:142,2'
          Dst:             master_service_parse_option
        - Src:             'fuzzsuite.c:143,2'
          Dst:             master_service_parse_option
        - Src:             'fuzzsuite.c:147,3'
          Dst:             settings_info_register
        - Src:             'fuzzsuite.c:150,11'
          Dst:             sieve_tool_init_finish
        - Src:             'fuzzsuite.c:154,36'
          Dst:             sieve_tool_get_homedir
        - Src:             'fuzzsuite.c:154,2'
          Dst:             testsuite_init
        - Src:             'fuzzsuite.c:158,3'
          Dst:             printf
        - Src:             'fuzzsuite.c:161,3'
          Dst:             settings_instance_find
        - Src:             'fuzzsuite.c:164,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:166,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:170,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:174,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:179,6'
          Dst:             t_strdup_printf
        - Src:             'fuzzsuite.c:177,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:183,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:185,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:189,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:193,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:198,6'
          Dst:             t_strdup_printf
        - Src:             'fuzzsuite.c:196,2'
          Dst:             settings_override
        - Src:             'fuzzsuite.c:205,10'
          Dst:             i_stream_create_from_data
        - Src:             'fuzzsuite.c:206,11'
          Dst:             sieve_data_script_create_from_input
        - Src:             'fuzzsuite.c:210,6'
          Dst:             sieve_compile_script
        - Src:             'fuzzsuite.c:212,3'
          Dst:             testsuite_testcase_fail
        - Src:             'fuzzsuite.c:224,3'
          Dst:             testsuite_mailstore_init
        - Src:             'fuzzsuite.c:225,3'
          Dst:             testsuite_message_init
        - Src:             'fuzzsuite.c:228,8'
          Dst:             testsuite_mailstore_get_user
        - Src:             'fuzzsuite.c:227,7'
          Dst:             sieve_script_env_init
        - Src:             'fuzzsuite.c:230,4'
          Dst:             i_fatal
        - Src:             'fuzzsuite.c:250,3'
          Dst:             testsuite_result_init
        - Src:             'fuzzsuite.c:253,9'
          Dst:             testsuite_run
        - Src:             'fuzzsuite.c:261,4'
          Dst:             testsuite_testcase_fail
        - Src:             'fuzzsuite.c:265,4'
          Dst:             i_panic
        - Src:             'fuzzsuite.c:268,4'
          Dst:             i_panic
        - Src:             'fuzzsuite.c:272,3'
          Dst:             sieve_close
        - Src:             'fuzzsuite.c:275,3'
          Dst:             testsuite_result_deinit
        - Src:             'fuzzsuite.c:276,3'
          Dst:             testsuite_message_deinit
        - Src:             'fuzzsuite.c:277,3'
          Dst:             testsuite_mailstore_deinit
        - Src:             'fuzzsuite.c:287,2'
          Dst:             sieve_script_unref
        - Src:             'fuzzsuite.c:288,2'
          Dst:             i_stream_destroy
        - Src:             'fuzzsuite.c:291,2'
          Dst:             testsuite_deinit
        - Src:             'fuzzsuite.c:293,2'
          Dst:             sieve_tool_deinit
        - Src:             'fuzzsuite.c:295,2'
          Dst:             testsuite_testcase_result
        - Src:             'fuzzsuite.c:297,1'
          Dst:             t_pop
        - Src:             'fuzzsuite.c:297,1'
          Dst:             i_panic
        - Src:             'fuzzsuite.c:297,1'
          Dst:             fuzzer_deinit
    - 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:    59
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzz_die
      functionSourceFile: '/src/pigeonhole/src/testsuite/fuzzsuite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - _exit
        - printf
        - testsuite_tmp_dir_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzsuite.c:97,2'
          Dst:             printf
        - Src:             'fuzzsuite.c:99,2'
          Dst:             testsuite_tmp_dir_deinit
        - Src:             'fuzzsuite.c:102,2'
          Dst:             _exit
    - functionName:    _exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_address_source_parse
        - smtp_address_parse_path
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-settings.c:114,7'
          Dst:             sieve_address_source_parse
        - Src:             'sieve-settings.c:117,14'
          Dst:             t_strdup_printf
        - Src:             'sieve-settings.c:124,6'
          Dst:             smtp_address_parse_path
        - Src:             'sieve-settings.c:127,14'
          Dst:             t_strdup_printf
    - functionName:    sieve_mime_header_list_next_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1750
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
        - sieve_message_part_iter_current
        - sieve_message_part_iter_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1753,2'
          Dst:             sieve_message_part_iter_reset
        - Src:             'sieve-message.c:1754,10'
          Dst:             sieve_message_part_iter_current
        - Src:             'sieve-message.c:1756,23'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1757,22'
          Dst:             array_get_i
    - functionName:    sieve_message_part_iter_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1690
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_message_part_iter_current
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1651
      functionLinenumberEnd: 1672
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          152
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_i
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1660,10'
          Dst:             array_get_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:    8
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    11
      BranchProfiles:  []
      Callsites:       []
    - 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:             'dovecot/src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    mail_html2text_content_type_match
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.h'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-mail/mail-html2text.h:18,9'
          Dst:             strcasecmp
        - Src:             'dovecot/src/lib-mail/mail-html2text.h:19,3'
          Dst:             strcasecmp
    - functionName:    _parse_content_disposition
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - rfc822_parse_mime_token
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1063,2'
          Dst:             rfc822_parser_init
        - Src:             'sieve-message.c:1064,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-message.c:1067,17'
          Dst:             t_str_new
        - Src:             'sieve-message.c:1068,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'sieve-message.c:1072,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-message.c:1077,9'
          Dst:             str_c
    - functionName:    _parse_content_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - rfc822_parse_content_type
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1038,2'
          Dst:             rfc822_parser_init
        - Src:             'sieve-message.c:1039,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-message.c:1042,17'
          Dst:             t_str_new
        - Src:             'sieve-message.c:1043,6'
          Dst:             rfc822_parse_content_type
        - Src:             'sieve-message.c:1048,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-message.c:1053,9'
          Dst:             str_c
    - 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:    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:             'dovecot/src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    str_replace_nuls
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_c_modifiable
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:869,15'
          Dst:             str_c_modifiable
        - Src:             'sieve-message.c:870,24'
          Dst:             str_len
    - 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:    8
      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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    _is_wanted_content_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          149
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - strcasecmp
        - strchr
        - strlen
        - strncasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:888,12'
          Dst:             strchr
        - Src:             'sieve-message.c:890,7'
          Dst:             strlen
        - Src:             'sieve-message.c:892,2'
          Dst:             i_panic
        - Src:             'sieve-message.c:902,20'
          Dst:             strchr
        - Src:             'sieve-message.c:905,8'
          Dst:             strlen
        - Src:             'sieve-message.c:906,8'
          Dst:             strncasecmp
        - Src:             'sieve-message.c:911,8'
          Dst:             strcasecmp
    - 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:    49
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_copy
      functionSourceFile: '/src/dovecot/src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
        - i_panic
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:357,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:359,28'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:360,20'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:361,7'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:359,2'
          Dst:             buffer_copy
    - 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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_message_part_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          175
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_append_c
        - buffer_create_dynamic
        - buffer_free
        - buffer_set_used_size
        - i_memcpy
        - mail_html2text_content_type_match
        - mail_html2text_deinit
        - mail_html2text_init
        - mail_html2text_more
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:991,7'
          Dst:             mail_html2text_content_type_match
        - Src:             'sieve-message.c:994,15'
          Dst:             buffer_create_dynamic
        - Src:             'sieve-message.c:997,16'
          Dst:             mail_html2text_init
        - Src:             'sieve-message.c:998,4'
          Dst:             mail_html2text_more
        - Src:             'sieve-message.c:1000,4'
          Dst:             mail_html2text_deinit
        - Src:             'sieve-message.c:1007,2'
          Dst:             buffer_append_c
        - Src:             'sieve-message.c:1010,14'
          Dst:             p_malloc
        - Src:             'sieve-message.c:1011,2'
          Dst:             i_memcpy
        - Src:             'sieve-message.c:1016,3'
          Dst:             buffer_free
        - Src:             'sieve-message.c:1029,2'
          Dst:             buffer_set_used_size
    - 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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_message_body_get_return_parts
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          193
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - _is_wanted_content_type
        - array_append_space_i
        - array_clear_i
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:929,15'
          Dst:             array_get_i
        - Src:             'sieve-message.c:934,2'
          Dst:             array_clear_i
        - Src:             'sieve-message.c:946,8'
          Dst:             _is_wanted_content_type
        - Src:             'sieve-message.c:951,17'
          Dst:             array_append_space_i
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - 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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    _header_right_trim
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_data
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:483,15'
          Dst:             strlen
        - Src:             'sieve-message.c:485,12'
          Dst:             t_str_new
        - Src:             'sieve-message.c:491,12'
          Dst:             t_str_new
        - Src:             'sieve-message.c:492,3'
          Dst:             str_append_data
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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_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:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    sieve_mime_header_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1852
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          318
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - array_get_i
        - array_is_created_i
        - sieve_message_part_iter_next
        - sieve_mime_header_list_next_name
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
        - strcasecmp
        - t_str_new_const
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1792,13'
          Dst:             sieve_message_part_iter_next
        - Src:             'sieve-message.c:1795,9'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1796,25'
          Dst:             array_get_i
        - Src:             'sieve-message.c:1803,7'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-message.c:1812,15'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-message.c:1816,27'
          Dst:             str_c
        - Src:             'sieve-message.c:1822,19'
          Dst:             str_c
        - Src:             'sieve-message.c:1822,6'
          Dst:             str_sanitize
        - Src:             'sieve-message.c:1819,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-message.c:1825,4'
          Dst:             sieve_mime_header_list_next_name
        - Src:             'sieve-message.c:1833,8'
          Dst:             strcasecmp
        - Src:             'sieve-message.c:1837,17'
          Dst:             t_str_new_const
        - Src:             'sieve-message.c:1841,17'
          Dst:             t_str_new_const
    - functionName:    sieve_message_part_iter_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1676
      functionLinenumberEnd: 1685
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - sieve_message_part_iter_current
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1680,21'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1684,9'
          Dst:             sieve_message_part_iter_current
    - functionName:    sieve_mime_header_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1866
      functionLinenumberEnd: 1872
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1870,2'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_mime_header_list_next_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_mime_header_list_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1861,9'
          Dst:             sieve_mime_header_list_next_item
    - functionName:    sieve_mime_header_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          84
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - sieve_message_part_iter_subtree
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1731,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-message.c:1731,12'
          Dst:             t_malloc0
        - Src:             'sieve-message.c:1741,2'
          Dst:             sieve_message_part_iter_subtree
    - functionName:    sieve_message_part_iter_subtree
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1615
      functionLinenumberEnd: 1629
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1623,10'
          Dst:             array_get_i
    - functionName:    sieve_message_part_iter_children
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1633
      functionLinenumberEnd: 1647
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1641,10'
          Dst:             array_get_i
    - functionName:    sieve_message_part_iter_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1583
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - sieve_message_parts_add_missing
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1589,2'
          Dst:             t_push
        - Src:             'sieve-message.c:1591,12'
          Dst:             sieve_message_parts_add_missing
        - Src:             'sieve-message.c:1593,4'
          Dst:             t_pop
        - Src:             'sieve-message.c:1593,4'
          Dst:             i_panic
        - Src:             'sieve-message.c:1604,10'
          Dst:             array_get_i
    - functionName:    sieve_message_parts_add_missing
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1446
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         196
      ICount:          1204
      EdgeCount:       251
      CyclomaticComplexity: 57
      functionsReached:
        - _is_wanted_content_type
        - _parse_content_disposition
        - _parse_content_type
        - array_append_space_i
        - array_clear_i
        - array_copy
        - array_count_i
        - array_create_i
        - array_idx_get_space_i
        - array_idx_modifiable_i
        - array_is_created_i
        - buffer_append
        - buffer_create_dynamic
        - buffer_free
        - i_memcpy
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_unreached
        - mail_get_parts
        - mail_get_stream
        - malloc_multiply_check
        - message_decoder_decode_next_block
        - message_decoder_deinit
        - message_decoder_init
        - message_header_decode_utf8
        - message_parser_deinit
        - message_parser_init
        - message_parser_parse_next_block
        - p_malloc
        - p_strdup
        - pool_datastack_create
        - sieve_message_body_get_return_parts
        - sieve_message_get_mail
        - sieve_message_part_save
        - sieve_runtime_critical
        - sieve_runtime_mail_error
        - str_c
        - str_data
        - str_len
        - str_replace_nuls
        - str_truncate
        - strcasecmp
        - strcmp
        - strlen
        - strncmp
        - t_pop
        - t_push
        - t_str_new
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve-message.c:1381,5'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-message.c:1090,22'
          Dst:             sieve_message_get_mail
        - Src:             'sieve-message.c:1108,19'
          Dst:             sieve_message_body_get_return_parts
        - Src:             'sieve-message.c:1115,6'
          Dst:             mail_get_stream
        - Src:             'sieve-message.c:1116,10'
          Dst:             sieve_runtime_mail_error
        - Src:             'sieve-message.c:1119,6'
          Dst:             mail_get_parts
        - Src:             'sieve-message.c:1120,10'
          Dst:             sieve_runtime_mail_error
        - Src:             'sieve-message.c:1124,8'
          Dst:             buffer_create_dynamic
        - Src:             'sieve-message.c:1128,3'
          Dst:             pool_datastack_create
        - Src:             'sieve-message.c:1128,3'
          Dst:             array_create_i
        - Src:             'sieve-message.c:1129,17'
          Dst:             t_str_new
        - Src:             'sieve-message.c:1136,12'
          Dst:             message_decoder_init
        - Src:             'sieve-message.c:1141,31'
          Dst:             pool_datastack_create
        - Src:             'sieve-message.c:1141,11'
          Dst:             message_parser_init
        - Src:             'sieve-message.c:1143,9'
          Dst:             message_parser_parse_next_block
        - Src:             'sieve-message.c:1157,9'
          Dst:             strcmp
        - Src:             'sieve-message.c:1161,6'
          Dst:             sieve_message_part_save
        - Src:             'sieve-message.c:1166,10'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1167,9'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1168,6'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1168,6'
          Dst:             array_create_i
        - Src:             'sieve-message.c:1172,10'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1170,6'
          Dst:             array_copy
        - Src:             'sieve-message.c:1177,20'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-message.c:1180,22'
          Dst:             malloc_multiply_check
        - Src:             'sieve-message.c:1180,22'
          Dst:             p_malloc
        - Src:             'sieve-message.c:1186,5'
          Dst:             array_clear_i
        - Src:             'sieve-message.c:1193,5'
          Dst:             i_panic
        - Src:             'sieve-message.c:1200,6'
          Dst:             _is_wanted_content_type
        - Src:             'sieve-message.c:1216,6'
          Dst:             i_panic
        - Src:             'sieve-message.c:1236,5'
          Dst:             i_panic
        - Src:             'sieve-message.c:1237,21'
          Dst:             array_idx_modifiable_i
        - Src:             'sieve-message.c:1256,4'
          Dst:             i_panic
        - Src:             'sieve-message.c:1259,10'
          Dst:             message_decoder_decode_next_block
        - Src:             'sieve-message.c:1266,6'
          Dst:             sieve_message_part_save
        - Src:             'sieve-message.c:1275,6'
          Dst:             _is_wanted_content_type
        - Src:             'sieve-message.c:1289,6'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1292,6'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1294,6'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1296,6'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1300,6'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1303,8'
          Dst:             strcasecmp
        - Src:             'sieve-message.c:1305,13'
          Dst:             strcasecmp
        - Src:             'sieve-message.c:1309,7'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1325,9'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1330,14'
          Dst:             array_append_space_i
        - Src:             'sieve-message.c:1331,20'
          Dst:             p_strdup
        - Src:             'sieve-message.c:1343,5'
          Dst:             str_truncate
        - Src:             'sieve-message.c:1344,5'
          Dst:             message_header_decode_utf8
        - Src:             'sieve-message.c:1346,17'
          Dst:             str_len
        - Src:             'sieve-message.c:1347,17'
          Dst:             str_c
        - Src:             'sieve-message.c:1347,9'
          Dst:             strncmp
        - Src:             'sieve-message.c:1349,17'
          Dst:             str_c
        - Src:             'sieve-message.c:1349,10'
          Dst:             strlen
        - Src:             'sieve-message.c:1350,10'
          Dst:             str_len
        - Src:             'sieve-message.c:1352,7'
          Dst:             str_replace_nuls
        - Src:             'sieve-message.c:1355,13'
          Dst:             p_malloc
        - Src:             'sieve-message.c:1357,22'
          Dst:             i_memcpy
        - Src:             'sieve-message.c:1360,28'
          Dst:             str_len
        - Src:             'sieve-message.c:1360,13'
          Dst:             p_malloc
        - Src:             'sieve-message.c:1361,11'
          Dst:             str_len
        - Src:             'sieve-message.c:1362,27'
          Dst:             str_data
        - Src:             'sieve-message.c:1362,27'
          Dst:             str_len
        - Src:             'sieve-message.c:1362,27'
          Dst:             i_memcpy
        - Src:             'sieve-message.c:1365,31'
          Dst:             str_len
        - Src:             'sieve-message.c:1368,13'
          Dst:             p_malloc
        - Src:             'sieve-message.c:1371,7'
          Dst:             i_memcpy
        - Src:             'sieve-message.c:1380,4'
          Dst:             t_push
        - Src:             'sieve-message.c:1384,22'
          Dst:             _parse_content_type
        - Src:             'sieve-message.c:1384,7'
          Dst:             p_strdup
        - Src:             'sieve-message.c:1388,22'
          Dst:             _parse_content_disposition
        - Src:             'sieve-message.c:1388,7'
          Dst:             p_strdup
        - Src:             'sieve-message.c:1391,6'
          Dst:             i_unreached
        - Src:             'sieve-message.c:1393,6'
          Dst:             t_pop
        - Src:             'sieve-message.c:1393,6'
          Dst:             i_panic
        - Src:             'sieve-message.c:1400,10'
          Dst:             message_decoder_decode_next_block
        - Src:             'sieve-message.c:1402,4'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1408,2'
          Dst:             i_panic
        - Src:             'sieve-message.c:1412,3'
          Dst:             sieve_message_part_save
        - Src:             'sieve-message.c:1414,3'
          Dst:             sieve_message_part_save
        - Src:             'sieve-message.c:1416,19'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:1417,6'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1418,3'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1418,3'
          Dst:             array_create_i
        - Src:             'sieve-message.c:1420,24'
          Dst:             array_count_i
        - Src:             'sieve-message.c:1419,3'
          Dst:             array_copy
        - Src:             'sieve-message.c:1425,3'
          Dst:             sieve_message_body_get_return_parts
        - Src:             'sieve-message.c:1429,2'
          Dst:             i_panic
        - Src:             'sieve-message.c:1432,8'
          Dst:             message_parser_deinit
        - Src:             'sieve-message.c:1433,2'
          Dst:             message_decoder_deinit
        - Src:             'sieve-message.c:1434,2'
          Dst:             buffer_free
        - Src:             'sieve-message.c:1438,3'
          Dst:             i_stream_get_name
        - Src:             'sieve-message.c:1438,3'
          Dst:             i_stream_get_error
        - Src:             'sieve-message.c:1438,3'
          Dst:             sieve_runtime_critical
    - functionName:    sieve_message_get_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - edit_mail_get_mail
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:395,13'
          Dst:             array_get_i
        - Src:             'sieve-message.c:400,10'
          Dst:             edit_mail_get_mail
    - 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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - 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:    170
      BranchProfiles:  []
      Callsites:       []
    - 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:             'dovecot/src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             'dovecot/src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    sieve_message_body_get_raw
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1507
      functionLinenumberEnd: 1575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          197
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - array_idx_modifiable_i
        - buffer_append
        - buffer_append_c
        - buffer_create_dynamic
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_more
        - i_stream_skip
        - mail_get_stream
        - sieve_message_get_mail
        - sieve_runtime_critical
        - sieve_runtime_mail_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1513,23'
          Dst:             sieve_message_get_mail
        - Src:             'sieve-message.c:1521,4'
          Dst:             buffer_create_dynamic
        - Src:             'sieve-message.c:1524,8'
          Dst:             mail_get_stream
        - Src:             'sieve-message.c:1525,11'
          Dst:             sieve_runtime_mail_error
        - Src:             'sieve-message.c:1530,3'
          Dst:             i_stream_skip
        - Src:             'sieve-message.c:1533,17'
          Dst:             i_stream_read_more
        - Src:             'sieve-message.c:1534,4'
          Dst:             buffer_append
        - Src:             'sieve-message.c:1536,4'
          Dst:             i_stream_skip
        - Src:             'sieve-message.c:1540,4'
          Dst:             i_stream_get_name
        - Src:             'sieve-message.c:1540,4'
          Dst:             i_stream_get_error
        - Src:             'sieve-message.c:1540,4'
          Dst:             sieve_runtime_critical
        - Src:             'sieve-message.c:1549,3'
          Dst:             buffer_append_c
        - Src:             'sieve-message.c:1556,2'
          Dst:             array_clear_i
        - Src:             'sieve-message.c:1562,3'
          Dst:             i_panic
        - Src:             'sieve-message.c:1565,17'
          Dst:             array_append_space_i
        - Src:             'sieve-message.c:1571,8'
          Dst:             array_append_space_i
        - Src:             'sieve-message.c:1572,13'
          Dst:             array_idx_modifiable_i
    - functionName:    sieve_message_body_get_text
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1474
      functionLinenumberEnd: 1503
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_idx_modifiable_i
        - i_panic
        - sieve_message_parts_add_missing
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1488,2'
          Dst:             t_push
        - Src:             'sieve-message.c:1490,12'
          Dst:             sieve_message_parts_add_missing
        - Src:             'sieve-message.c:1492,4'
          Dst:             t_pop
        - Src:             'sieve-message.c:1492,4'
          Dst:             i_panic
        - Src:             'sieve-message.c:1499,8'
          Dst:             array_append_space_i
        - Src:             'sieve-message.c:1500,13'
          Dst:             array_idx_modifiable_i
    - functionName:    sieve_message_body_get_content
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 1451
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_idx_modifiable_i
        - i_panic
        - sieve_message_parts_add_missing
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:1455,2'
          Dst:             t_push
        - Src:             'sieve-message.c:1457,12'
          Dst:             sieve_message_parts_add_missing
        - Src:             'sieve-message.c:1459,4'
          Dst:             t_pop
        - Src:             'sieve-message.c:1459,4'
          Dst:             i_panic
        - Src:             'sieve-message.c:1466,8'
          Dst:             array_append_space_i
        - Src:             'sieve-message.c:1467,13'
          Dst:             array_idx_modifiable_i
    - functionName:    sieve_message_part_get_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          76
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_message_part_get_first_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:830,12'
          Dst:             array_get_i
        - Src:             'sieve-message.c:832,7'
          Dst:             strcasecmp
        - Src:             'sieve-message.c:833,4'
          Dst:             i_panic
    - functionName:    sieve_message_part_content_disposition
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 820
      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:    sieve_message_part_content_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 814
      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:    sieve_message_part_children
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 807
      functionLinenumberEnd: 808
      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:    sieve_message_part_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 802
      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:    sieve_message_part_parent
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 796
      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:    sieve_message_get_header_fields
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - array_get_i
        - array_is_created_i
        - sieve_message_header_list_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:758,24'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:759,6'
          Dst:             array_count_i
        - Src:             'sieve-message.c:762,13'
          Dst:             sieve_message_header_list_create
        - Src:             'sieve-message.c:768,9'
          Dst:             array_get_i
        - Src:             'sieve-message.c:775,13'
          Dst:             sieve_message_header_list_create
    - functionName:    sieve_message_header_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          64
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:464,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-message.c:464,12'
          Dst:             t_malloc0
    - functionName:    sieve_message_header_list_next_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_message_header_list_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:579,9'
          Dst:             sieve_message_header_list_next_item
    - functionName:    sieve_message_header_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:590,2'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_message_header_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          259
      EdgeCount:       50
      CyclomaticComplexity: 13
      functionsReached:
        - _header_right_trim
        - i_panic
        - mail_get_headers
        - mail_get_headers_utf8
        - sieve_message_get_mail
        - sieve_runtime_mail_error
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:506,22'
          Dst:             sieve_message_get_mail
        - Src:             'sieve-message.c:526,14'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-message.c:530,26'
          Dst:             str_c
        - Src:             'sieve-message.c:536,18'
          Dst:             str_c
        - Src:             'sieve-message.c:536,5'
          Dst:             str_sanitize
        - Src:             'sieve-message.c:533,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-message.c:541,38'
          Dst:             str_c
        - Src:             'sieve-message.c:541,10'
          Dst:             mail_get_headers_utf8
        - Src:             'sieve-message.c:544,33'
          Dst:             str_c
        - Src:             'sieve-message.c:544,10'
          Dst:             mail_get_headers
        - Src:             'sieve-message.c:550,5'
          Dst:             str_c
        - Src:             'sieve-message.c:550,5'
          Dst:             sieve_runtime_mail_error
        - Src:             'sieve-message.c:557,3'
          Dst:             i_panic
        - Src:             'sieve-message.c:567,13'
          Dst:             _header_right_trim
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:             'dovecot/src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    sieve_message_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          215
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - array_insert_i
        - array_is_created_i
        - pool_datastack_create
        - sieve_addrmatch_opr_optional_read
        - sieve_opr_message_override_read
        - sieve_runtime_trace_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:700,14'
          Dst:             sieve_addrmatch_opr_optional_read
        - Src:             'sieve-message.c:710,15'
          Dst:             sieve_opr_message_override_read
        - Src:             'sieve-message.c:717,9'
          Dst:             array_is_created_i
        - Src:             'sieve-message.c:718,5'
          Dst:             pool_datastack_create
        - Src:             'sieve-message.c:718,5'
          Dst:             array_create_i
        - Src:             'sieve-message.c:720,15'
          Dst:             array_get_i
        - Src:             'sieve-message.c:724,6'
          Dst:             array_insert_i
        - Src:             'sieve-message.c:729,5'
          Dst:             array_append_i
        - Src:             'sieve-message.c:732,5'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_message_override_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:631,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_message_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_addrmatch_opr_optional_dump
        - sieve_opr_message_override_dump
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:664,14'
          Dst:             sieve_addrmatch_opr_optional_dump
        - Src:             'sieve-message.c:669,11'
          Dst:             sieve_opr_message_override_dump
    - functionName:    sieve_opr_message_override_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:606,7'
          Dst:             sieve_opr_object_dump
        - Src:             'sieve-message.c:614,3'
          Dst:             sieve_code_descend
        - Src:             'sieve-message.c:617,3'
          Dst:             sieve_code_ascend
    - functionName:    sieve_message_snapshot
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 426
      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:    sieve_message_edit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - edit_mail_snapshot
        - edit_mail_wrap
        - sieve_message_version_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:408,12'
          Dst:             sieve_message_version_get
        - Src:             'sieve-message.c:411,24'
          Dst:             edit_mail_wrap
        - Src:             'sieve-message.c:415,24'
          Dst:             edit_mail_snapshot
    - functionName:    sieve_message_version_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_get_modifiable_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:136,13'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-message.c:138,10'
          Dst:             array_append_space_i
    - functionName:    sieve_message_version_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - edit_mail_unwrap
        - mail_free
        - mailbox_free
        - mailbox_transaction_rollback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:147,3'
          Dst:             edit_mail_unwrap
        - Src:             'sieve-message.c:152,3'
          Dst:             mail_free
        - Src:             'sieve-message.c:153,3'
          Dst:             mailbox_transaction_rollback
        - Src:             'sieve-message.c:154,3'
          Dst:             mailbox_free
    - functionName:    sieve_message_version_new
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:127,9'
          Dst:             array_append_space_i
    - functionName:    sieve_message_substitute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          187
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - i_panic
        - i_stream_seek
        - mail_alloc
        - mail_set_seq
        - mail_storage_service_user_get_service_ctx
        - mail_storage_service_user_get_settings_instance
        - mailbox_get_last_internal_error
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - mailbox_transaction_begin
        - raw_mailbox_alloc_stream
        - raw_storage_create_from_set
        - sieve_message_context_flush
        - sieve_message_get_sender
        - sieve_message_version_free
        - sieve_message_version_get
        - sieve_message_version_new
        - smtp_address_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:344,2'
          Dst:             i_panic
        - Src:             'sieve-message.c:348,4'
          Dst:             mail_storage_service_user_get_service_ctx
        - Src:             'sieve-message.c:351,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'sieve-message.c:353,4'
          Dst:             raw_storage_create_from_set
        - Src:             'sieve-message.c:356,2'
          Dst:             i_stream_seek
        - Src:             'sieve-message.c:357,11'
          Dst:             sieve_message_get_sender
        - Src:             'sieve-message.c:360,12'
          Dst:             smtp_address_encode
        - Src:             'sieve-message.c:359,8'
          Dst:             raw_mailbox_alloc_stream
        - Src:             'sieve-message.c:363,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'sieve-message.c:363,3'
          Dst:             e_error
        - Src:             'sieve-message.c:370,13'
          Dst:             sieve_message_version_new
        - Src:             'sieve-message.c:372,13'
          Dst:             sieve_message_version_get
        - Src:             'sieve-message.c:373,3'
          Dst:             sieve_message_version_free
        - Src:             'sieve-message.c:377,19'
          Dst:             mailbox_transaction_begin
        - Src:             'sieve-message.c:378,16'
          Dst:             mailbox_header_lookup_init
        - Src:             'sieve-message.c:379,18'
          Dst:             mail_alloc
        - Src:             'sieve-message.c:380,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'sieve-message.c:381,2'
          Dst:             mail_set_seq
        - Src:             'sieve-message.c:383,2'
          Dst:             sieve_message_context_flush
    - functionName:    sieve_message_get_sender
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_address_isnull
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:320,11'
          Dst:             smtp_address_isnull
    - functionName:    sieve_message_context_flush
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - pool_alloconly_create
        - pool_unref
        - sieve_extensions_get_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:228,3'
          Dst:             pool_unref
        - Src:             'sieve-message.c:231,3'
          Dst:             pool_alloconly_create
        - Src:             'sieve-message.c:233,2'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-message.c:233,2'
          Dst:             array_create_i
        - Src:             'sieve-message.c:236,2'
          Dst:             array_create_i
        - Src:             'sieve-message.c:237,2'
          Dst:             array_create_i
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_address_isnull
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_message_get_final_recipient
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_address_isnull
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:311,11'
          Dst:             smtp_address_isnull
    - functionName:    sieve_message_get_orig_recipient
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - smtp_address_isnull
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:297,8'
          Dst:             smtp_address_isnull
        - Src:             'sieve-message.c:302,11'
          Dst:             smtp_address_isnull
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_message_context_extension_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:280,38'
          Dst:             array_count_i
        - Src:             'sieve-message.c:283,8'
          Dst:             array_idx_i
    - functionName:    sieve_message_context_extension_set
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:272,2'
          Dst:             array_idx_set_i
    - functionName:    sieve_message_context_time
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_message_context_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_message_context_clear
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - pool_unref
        - sieve_message_version_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:195,14'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-message.c:198,4'
          Dst:             sieve_message_version_free
        - Src:             'sieve-message.c:200,3'
          Dst:             pool_unref
    - functionName:    sieve_message_context_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_user_unref
        - p_free_internal
        - pool_unref
        - sieve_message_context_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:206,2'
          Dst:             i_panic
        - Src:             'sieve-message.c:212,3'
          Dst:             mail_user_unref
        - Src:             'sieve-message.c:214,2'
          Dst:             sieve_message_context_clear
        - Src:             'sieve-message.c:217,3'
          Dst:             pool_unref
        - Src:             'sieve-message.c:219,2'
          Dst:             p_free_internal
    - functionName:    sieve_message_context_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 187
      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:    sieve_message_context_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - pool_alloconly_create
        - sieve_message_context_clear
        - sieve_message_context_flush
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:243,2'
          Dst:             sieve_message_context_clear
        - Src:             'sieve-message.c:245,17'
          Dst:             pool_alloconly_create
        - Src:             'sieve-message.c:247,2'
          Dst:             array_create_i
        - Src:             'sieve-message.c:249,2'
          Dst:             sieve_message_context_flush
    - functionName:    sieve_message_context_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_gettimeofday
        - malloc_multiply_check
        - p_malloc
        - sieve_message_context_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:170,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-message.c:170,11'
          Dst:             p_malloc
        - Src:             'sieve-message.c:177,2'
          Dst:             i_gettimeofday
        - Src:             'sieve-message.c:179,2'
          Dst:             sieve_message_context_reset
    - functionName:    sieve_message_get_new_id
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-message.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dec2str
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-message.c:50,11'
          Dst:             dec2str
        - Src:             'sieve-message.c:51,11'
          Dst:             dec2str
        - Src:             'sieve-message.c:49,9'
          Dst:             t_strdup_printf
    - 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:    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:    sieve_script_sequence_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1251
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
        - sieve_script_sequence_deinit_storage
        - sieve_storage_sequence_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1258,2'
          Dst:             sieve_script_sequence_deinit_storage
        - Src:             'sieve-script.c:1259,2'
          Dst:             sieve_storage_sequence_free
        - Src:             'sieve-script.c:1260,2'
          Dst:             p_free_internal
    - functionName:    sieve_script_sequence_deinit_storage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_storage_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1207,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_script_sequence_init_storage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          174
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - sieve_storage_clear_error
        - sieve_storage_sequence_next
        - sieve_storage_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1169,9'
          Dst:             sieve_storage_sequence_next
        - Src:             'sieve-script.c:1182,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:1183,3'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:1186,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1187,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1190,4'
          Dst:             sieve_storage_unref
    - functionName:    sieve_script_sequence_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          166
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_script_sequence_deinit_storage
        - sieve_script_sequence_init_storage
        - sieve_storage_clear_error
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1218,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:1220,16'
          Dst:             sieve_script_sequence_init_storage
        - Src:             'sieve-script.c:1224,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:1225,3'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:1231,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1232,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1238,16'
          Dst:             t_strdup
        - Src:             'sieve-script.c:1242,3'
          Dst:             sieve_script_sequence_deinit_storage
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_script_sequence_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1159
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_error_args_init
        - sieve_storage_sequence_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1147,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:1149,6'
          Dst:             sieve_storage_sequence_create
        - Src:             'sieve-script.c:1154,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-script.c:1154,9'
          Dst:             p_malloc
    - functionName:    sieve_script_get_last_error_lcase
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_from_external
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1129,9'
          Dst:             sieve_error_from_external
    - functionName:    sieve_script_set_not_found_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_storage_set_not_found_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1117,2'
          Dst:             sieve_storage_set_not_found_error
    - functionName:    sieve_script_set_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_strdup_vprintf
        - sieve_storage_clear_error
        - sieve_storage_set_internal_error
        - t_strdup_vprintf
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1094,4'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-script.c:1094,4'
          Dst:             e_error
        - Src:             'sieve-script.c:1097,4'
          Dst:             sieve_storage_set_internal_error
        - Src:             'sieve-script.c:1100,4'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:1105,21'
          Dst:             i_strdup_vprintf
    - functionName:    sieve_script_set_internal_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_storage_set_internal_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1081,2'
          Dst:             sieve_storage_set_internal_error
    - functionName:    sieve_script_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          258
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_storage_clear_error
        - sieve_storage_copy_error
        - sieve_storage_deactivate
        - sieve_storage_set_modified
        - sieve_storage_sync_script_activate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1016,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:1017,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:1020,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:1022,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:1027,5'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:1029,4'
          Dst:             event_want_level
        - Src:             'sieve-script.c:1029,4'
          Dst:             e_debug
        - Src:             'sieve-script.c:1029,4'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:1031,4'
          Dst:             sieve_storage_set_modified
        - Src:             'sieve-script.c:1032,10'
          Dst:             sieve_storage_sync_script_activate
        - Src:             'sieve-script.c:1034,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1035,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1038,5'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:1041,4'
          Dst:             event_want_level
        - Src:             'sieve-script.c:1041,4'
          Dst:             e_debug
        - Src:             'sieve-script.c:1041,4'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:1048,9'
          Dst:             sieve_storage_deactivate
        - Src:             'sieve-script.c:1051,4'
          Dst:             sieve_storage_copy_error
    - functionName:    sieve_script_is_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          159
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - sieve_storage_active_script_is_default
        - sieve_storage_clear_error
        - sieve_storage_copy_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:987,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:991,9'
          Dst:             sieve_storage_active_script_is_default
        - Src:             'sieve-script.c:994,4'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-script.c:996,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:997,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:1005,2'
          Dst:             i_panic
    - functionName:    sieve_script_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          309
      EdgeCount:       61
      CyclomaticComplexity: 11
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_script_is_active
        - sieve_script_set_error
        - sieve_storage_clear_error
        - sieve_storage_copy_error
        - sieve_storage_deactivate
        - sieve_storage_sync_script_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:928,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:929,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:932,6'
          Dst:             sieve_script_is_active
        - Src:             'sieve-script.c:935,4'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:938,5'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-script.c:951,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:955,9'
          Dst:             sieve_storage_deactivate
        - Src:             'sieve-script.c:957,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:962,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:964,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:964,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:964,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:967,9'
          Dst:             sieve_storage_sync_script_delete
        - Src:             'sieve-script.c:969,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:970,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:973,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:976,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:976,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:976,3'
          Dst:             event_send_abort
    - functionName:    sieve_script_set_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup_vprintf
        - sieve_storage_clear_error
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1069,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:1073,20'
          Dst:             i_strdup_vprintf
    - functionName:    sieve_script_copy_from_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          146
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - sieve_script_activate
        - sieve_script_delete
        - sieve_script_get_stream
        - sieve_script_is_active
        - sieve_script_open
        - sieve_script_unref
        - sieve_storage_copy_error
        - sieve_storage_open_script
        - sieve_storage_save_as
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:820,13'
          Dst:             sieve_script_open
        - Src:             'sieve-script.c:821,13'
          Dst:             sieve_script_get_stream
        - Src:             'sieve-script.c:822,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-script.c:826,8'
          Dst:             sieve_storage_save_as
        - Src:             'sieve-script.c:829,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-script.c:830,13'
          Dst:             sieve_script_is_active
        - Src:             'sieve-script.c:834,7'
          Dst:             sieve_storage_open_script
        - Src:             'sieve-script.c:839,14'
          Dst:             sieve_script_activate
        - Src:             'sieve-script.c:842,10'
          Dst:             sieve_script_delete
        - Src:             'sieve-script.c:844,3'
          Dst:             sieve_script_unref
        - Src:             'sieve-script.c:847,4'
          Dst:             e_error
        - Src:             'sieve-script.c:850,4'
          Dst:             sieve_storage_copy_error
    - functionName:    sieve_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          170
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_error_args_init
        - sieve_script_update_event
        - sieve_storage_clear_error
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:262,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:263,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:269,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:271,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:272,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:277,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:280,2'
          Dst:             sieve_script_update_event
        - Src:             'sieve-script.c:281,2'
          Dst:             event_want_level
        - Src:             'sieve-script.c:281,2'
          Dst:             e_debug
        - Src:             'sieve-script.c:281,2'
          Dst:             event_send_abort
    - functionName:    sieve_script_get_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          237
      EdgeCount:       40
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_error_args_init
        - sieve_storage_clear_error
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:428,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:429,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:437,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:439,2'
          Dst:             t_push
        - Src:             'sieve-script.c:441,4'
          Dst:             t_pop
        - Src:             'sieve-script.c:441,4'
          Dst:             i_panic
        - Src:             'sieve-script.c:444,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:445,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:449,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:452,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:452,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:452,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:458,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:460,2'
          Dst:             event_want_level
        - Src:             'sieve-script.c:460,2'
          Dst:             e_debug
        - Src:             'sieve-script.c:460,2'
          Dst:             event_send_abort
    - functionName:    sieve_script_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - i_stream_unref
        - pool_unref
        - sieve_storage_unref
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:236,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:242,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:244,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:244,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:244,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:246,2'
          Dst:             i_stream_unref
        - Src:             'sieve-script.c:251,2'
          Dst:             sieve_storage_unref
        - Src:             'sieve-script.c:252,2'
          Dst:             event_unref
        - Src:             'sieve-script.c:253,2'
          Dst:             pool_unref
    - 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:    sieve_script_update_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_str
        - event_set_append_log_prefix
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:91,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-script.c:93,3'
          Dst:             event_add_str
        - Src:             'sieve-script.c:95,19'
          Dst:             t_strdup_printf
        - Src:             'sieve-script.c:94,3'
          Dst:             event_set_append_log_prefix
    - functionName:    sieve_script_rename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          332
      EdgeCount:       62
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_script_copy_from_default
        - sieve_script_name_is_valid
        - sieve_script_set_error
        - sieve_script_update_event
        - sieve_storage_check_script
        - sieve_storage_clear_error
        - sieve_storage_copy_error
        - sieve_storage_sync_script_rename
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:865,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:866,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:869,7'
          Dst:             sieve_script_name_is_valid
        - Src:             'sieve-script.c:873,4'
          Dst:             str_sanitize
        - Src:             'sieve-script.c:870,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:877,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:880,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:883,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:888,10'
          Dst:             sieve_storage_sync_script_rename
        - Src:             'sieve-script.c:891,13'
          Dst:             sieve_storage_check_script
        - Src:             'sieve-script.c:893,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:895,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-script.c:898,9'
          Dst:             sieve_script_copy_from_default
        - Src:             'sieve-script.c:901,10'
          Dst:             event_create_passthrough
        - Src:             'sieve-script.c:908,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:908,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:908,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:909,3'
          Dst:             sieve_script_update_event
        - Src:             'sieve-script.c:911,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:912,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:915,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:915,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:915,3'
          Dst:             event_send_abort
    - functionName:    sieve_script_name_is_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          194
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - array_create_i
        - array_get_i
        - pool_datastack_create
        - strlen
        - uni_utf8_to_ucs4
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:32,19'
          Dst:             strlen
        - Src:             'sieve-script.c:43,2'
          Dst:             pool_datastack_create
        - Src:             'sieve-script.c:43,2'
          Dst:             array_create_i
        - Src:             'sieve-script.c:46,6'
          Dst:             uni_utf8_to_ucs4
        - Src:             'sieve-script.c:48,15'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_script_binary_get_prefix
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_storage_setup_bin_path
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:800,6'
          Dst:             sieve_storage_setup_bin_path
        - Src:             'sieve-script.c:801,10'
          Dst:             t_strconcat
    - functionName:    sieve_script_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-script.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-script.h:155,10'
          Dst:             sieve_script_cmp
    - functionName:    sieve_script_cmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - null_strcmp
        - sieve_storage_cmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:483,9'
          Dst:             sieve_storage_cmp
        - Src:             'sieve-script.c:487,10'
          Dst:             null_strcmp
    - functionName:    sieve_script_binary_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          151
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_binary_script
        - sieve_error_args_init
        - sieve_script_equals
        - sieve_script_set_error
        - sieve_storage_clear_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:769,36'
          Dst:             sieve_binary_script
        - Src:             'sieve-script.c:772,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:773,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:775,2'
          Dst:             sieve_script_equals
        - Src:             'sieve-script.c:775,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:778,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:787,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:788,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    sieve_script_binary_save_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          172
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mkdir_get_executable_mode
        - sieve_binary_save
        - sieve_script_set_error
        - sieve_storage_setup_bin_path
        - str_begins_with
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:740,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:740,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:740,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:741,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:748,6'
          Dst:             strlen
        - Src:             'sieve-script.c:748,6'
          Dst:             strncmp
        - Src:             'sieve-script.c:748,6'
          Dst:             str_begins_with
        - Src:             'sieve-script.c:750,20'
          Dst:             mkdir_get_executable_mode
        - Src:             'sieve-script.c:749,6'
          Dst:             sieve_storage_setup_bin_path
        - Src:             'sieve-script.c:753,2'
          Dst:             event_want_level
        - Src:             'sieve-script.c:753,2'
          Dst:             e_debug
        - Src:             'sieve-script.c:753,2'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:755,8'
          Dst:             sieve_binary_save
        - Src:             'sieve-script.c:757,3'
          Dst:             sieve_script_set_error
    - functionName:    sieve_script_binary_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          162
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_script_set_error
        - sieve_storage_clear_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:707,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:708,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-script.c:711,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:717,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:718,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:722,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:723,3'
          Dst:             i_panic
    - functionName:    sieve_script_binary_load_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_open
        - sieve_script_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:685,3'
          Dst:             sieve_script_set_error
        - Src:             'sieve-script.c:691,6'
          Dst:             sieve_binary_open
        - Src:             'sieve-script.c:692,3'
          Dst:             sieve_script_set_error
    - functionName:    sieve_script_binary_dump_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          185
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - sieve_binary_block_get_binary
        - sieve_binary_dumpf
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_binary_svinst
        - sieve_script_create_in
        - sieve_script_unref
        - str_c
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:627,30'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-script.c:628,34'
          Dst:             sieve_binary_svinst
        - Src:             'sieve-script.c:635,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:637,43'
          Dst:             str_c
        - Src:             'sieve-script.c:637,2'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:640,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-script.c:642,2'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:645,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:647,6'
          Dst:             str_len
        - Src:             'sieve-script.c:648,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:650,46'
          Dst:             str_c
        - Src:             'sieve-script.c:650,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:653,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:655,6'
          Dst:             str_len
        - Src:             'sieve-script.c:656,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:658,43'
          Dst:             str_c
        - Src:             'sieve-script.c:658,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-script.c:663,9'
          Dst:             str_c
        - Src:             'sieve-script.c:663,30'
          Dst:             str_c
        - Src:             'sieve-script.c:662,7'
          Dst:             sieve_script_create_in
        - Src:             'sieve-script.c:673,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_create_in
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_error_args_init
        - sieve_storage_create
        - sieve_storage_get_last_error
        - sieve_storage_get_script_direct
        - sieve_storage_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:211,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:213,6'
          Dst:             sieve_storage_create
        - Src:             'sieve-script.c:216,8'
          Dst:             sieve_storage_get_script_direct
        - Src:             'sieve-script.c:218,14'
          Dst:             sieve_storage_get_last_error
        - Src:             'sieve-script.c:219,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    sieve_script_binary_write_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_block_get_binary
        - sieve_binary_emit_cstring
        - sieve_binary_emit_unsigned
        - sieve_binary_svinst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:602,30'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-script.c:603,34'
          Dst:             sieve_binary_svinst
        - Src:             'sieve-script.c:605,2'
          Dst:             sieve_binary_emit_cstring
        - Src:             'sieve-script.c:606,2'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-script.c:609,3'
          Dst:             sieve_binary_emit_cstring
        - Src:             'sieve-script.c:610,3'
          Dst:             sieve_binary_emit_cstring
        - Src:             'sieve-script.c:612,3'
          Dst:             sieve_binary_emit_cstring
        - Src:             'sieve-script.c:613,3'
          Dst:             sieve_binary_emit_cstring
    - functionName:    sieve_script_binary_read_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          340
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - sieve_binary_block_get_binary
        - sieve_binary_block_get_size
        - sieve_binary_path
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_script_label
        - str_c
        - str_len
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:515,30'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-script.c:519,7'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-script.c:523,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:524,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:524,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:524,3'
          Dst:             e_error
        - Src:             'sieve-script.c:530,13'
          Dst:             str_c
        - Src:             'sieve-script.c:530,6'
          Dst:             strcmp
        - Src:             'sieve-script.c:531,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:531,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:531,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:531,3'
          Dst:             str_c
        - Src:             'sieve-script.c:531,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:531,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:540,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-script.c:541,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:541,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:541,3'
          Dst:             e_error
        - Src:             'sieve-script.c:548,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:548,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:548,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:548,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:559,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:560,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:560,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:560,3'
          Dst:             e_error
        - Src:             'sieve-script.c:566,6'
          Dst:             str_len
        - Src:             'sieve-script.c:567,13'
          Dst:             str_c
        - Src:             'sieve-script.c:567,6'
          Dst:             strcmp
        - Src:             'sieve-script.c:568,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:568,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:568,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:568,3'
          Dst:             str_c
        - Src:             'sieve-script.c:568,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:568,3'
          Dst:             event_send_abort
        - Src:             'sieve-script.c:577,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-script.c:578,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:578,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:578,3'
          Dst:             e_error
        - Src:             'sieve-script.c:584,6'
          Dst:             str_len
        - Src:             'sieve-script.c:584,34'
          Dst:             str_c
        - Src:             'sieve-script.c:584,27'
          Dst:             strcmp
        - Src:             'sieve-script.c:585,3'
          Dst:             event_want_level
        - Src:             'sieve-script.c:585,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-script.c:585,3'
          Dst:             sieve_script_label
        - Src:             'sieve-script.c:585,3'
          Dst:             str_c
        - Src:             'sieve-script.c:585,3'
          Dst:             str_c
        - Src:             'sieve-script.c:585,3'
          Dst:             e_debug
        - Src:             'sieve-script.c:585,3'
          Dst:             event_send_abort
    - functionName:    sieve_script_label
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strconcat
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:364,9'
          Dst:             t_strconcat
    - functionName:    sieve_script_hash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_storage_hash
        - str_hash
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:501,10'
          Dst:             sieve_storage_hash
        - Src:             'sieve-script.c:502,10'
          Dst:             str_hash
    - functionName:    sieve_script_is_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_is_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      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:    sieve_script_get_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_get_size
        - sieve_script_get_stream
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:394,6'
          Dst:             sieve_script_get_stream
        - Src:             'sieve-script.c:397,6'
          Dst:             i_stream_get_size
        - Src:             'sieve-script.c:400,4'
          Dst:             i_stream_get_name
        - Src:             'sieve-script.c:401,4'
          Dst:             i_stream_get_error
        - Src:             'sieve-script.c:398,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_script_svinst
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_cause
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_storage_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_args_init
        - sieve_script_create_open
        - sieve_script_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:341,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:343,6'
          Dst:             sieve_script_create_open
        - Src:             'sieve-script.c:347,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_script_create_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_create_common
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:304,9'
          Dst:             sieve_script_create_common
    - functionName:    sieve_script_create_common
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          218
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_error_create_script_not_found
        - sieve_script_get_last_error
        - sieve_script_open
        - sieve_script_unref
        - sieve_storage_get_last_error
        - sieve_storage_get_script
        - sieve_storage_sequence_create
        - sieve_storage_sequence_free
        - sieve_storage_sequence_next
        - sieve_storage_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:129,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:131,6'
          Dst:             sieve_storage_sequence_create
        - Src:             'sieve-script.c:143,9'
          Dst:             sieve_storage_sequence_next
        - Src:             'sieve-script.c:153,7'
          Dst:             sieve_storage_get_script
        - Src:             'sieve-script.c:156,5'
          Dst:             sieve_storage_unref
        - Src:             'sieve-script.c:159,15'
          Dst:             sieve_storage_get_last_error
        - Src:             'sieve-script.c:165,3'
          Dst:             sieve_storage_unref
        - Src:             'sieve-script.c:167,7'
          Dst:             sieve_script_open
        - Src:             'sieve-script.c:168,15'
          Dst:             sieve_script_get_last_error
        - Src:             'sieve-script.c:170,4'
          Dst:             sieve_script_unref
        - Src:             'sieve-script.c:182,3'
          Dst:             i_panic
        - Src:             'sieve-script.c:183,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-script.c:188,2'
          Dst:             sieve_storage_sequence_free
    - functionName:    sieve_script_get_last_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_storage_get_last_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:1124,9'
          Dst:             sieve_storage_get_last_error
    - functionName:    sieve_script_create_open_in
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_error_args_init
        - sieve_script_create_in
        - sieve_script_get_last_error
        - sieve_script_open
        - sieve_script_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:318,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-script.c:320,6'
          Dst:             sieve_script_create_in
        - Src:             'sieve-script.c:324,6'
          Dst:             sieve_script_open
        - Src:             'sieve-script.c:325,14'
          Dst:             sieve_script_get_last_error
        - Src:             'sieve-script.c:326,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_script_open_as
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - p_strdup
        - sieve_script_open
        - sieve_script_update_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:288,6'
          Dst:             sieve_script_open
        - Src:             'sieve-script.c:292,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:293,17'
          Dst:             p_strdup
        - Src:             'sieve-script.c:294,2'
          Dst:             sieve_script_update_event
    - functionName:    sieve_script_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_script_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_create_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:197,9'
          Dst:             sieve_script_create_common
    - functionName:    sieve_script_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - i_panic
        - p_strdup_empty
        - sieve_script_update_event
        - sieve_storage_ref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-script.c:105,2'
          Dst:             i_panic
        - Src:             'sieve-script.c:110,17'
          Dst:             p_strdup_empty
        - Src:             'sieve-script.c:112,18'
          Dst:             event_create
        - Src:             'sieve-script.c:113,2'
          Dst:             sieve_script_update_event
        - Src:             'sieve-script.c:115,2'
          Dst:             sieve_storage_ref
    - functionName:    sieve_storage_check_script_direct
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_error_args_init
        - sieve_script_open
        - sieve_script_unref
        - sieve_storage_clear_error
        - sieve_storage_get_script_direct
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1122,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:1123,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1125,6'
          Dst:             sieve_storage_get_script_direct
        - Src:             'sieve-storage.c:1129,8'
          Dst:             sieve_script_open
        - Src:             'sieve-storage.c:1130,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_storage_clear_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1927
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          32
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1924,2'
          Dst:             p_free_internal
    - functionName:    sieve_storage_get_script_direct
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          169
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_script_name_is_valid
        - sieve_storage_set_error
        - str_sanitize
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:993,23'
          Dst:             sieve_script_name_is_valid
        - Src:             'sieve-storage.c:997,4'
          Dst:             str_sanitize
        - Src:             'sieve-storage.c:994,3'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-storage.c:1004,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1006,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1008,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1009,3'
          Dst:             i_panic
    - functionName:    sieve_storage_set_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1931
      functionLinenumberEnd: 1943
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup_vprintf
        - sieve_storage_clear_error
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1934,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1938,20'
          Dst:             i_strdup_vprintf
    - 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:    sieve_storage_alloc_from_settings
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          103
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - event_unref
        - sieve_error_create_script_not_found
        - sieve_storage_alloc_with_settings
        - sieve_storage_class_find
        - sieve_storage_create_driver_event
        - sieve_storage_settings_match_script_cause
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:351,7'
          Dst:             sieve_storage_settings_match_script_cause
        - Src:             'sieve-storage.c:354,18'
          Dst:             sieve_storage_class_find
        - Src:             'sieve-storage.c:357,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:359,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:361,3'
          Dst:             event_unref
        - Src:             'sieve-storage.c:365,10'
          Dst:             sieve_storage_create_driver_event
        - Src:             'sieve-storage.c:368,8'
          Dst:             sieve_storage_alloc_with_settings
        - Src:             'sieve-storage.c:373,2'
          Dst:             event_unref
    - functionName:    sieve_storage_class_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:113,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:115,12'
          Dst:             array_get_i
        - Src:             'sieve-storage.c:117,7'
          Dst:             strcasecmp
    - functionName:    sieve_storage_create_driver_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_str
        - event_create
        - event_set_append_log_prefix
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:173,10'
          Dst:             event_create
        - Src:             'sieve-storage.c:174,2'
          Dst:             event_add_str
        - Src:             'sieve-storage.c:176,3'
          Dst:             t_strdup_printf
        - Src:             'sieve-storage.c:175,2'
          Dst:             event_set_append_log_prefix
    - functionName:    sieve_storage_alloc_with_settings
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          223
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - p_strdup_empty
        - sieve_error_args_init
        - sieve_storage_alloc_from_class
        - sieve_storage_get_full_path
        - sieve_storage_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:292,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:294,8'
          Dst:             sieve_storage_alloc_from_class
        - Src:             'sieve-storage.c:305,6'
          Dst:             sieve_storage_get_full_path
        - Src:             'sieve-storage.c:306,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:313,22'
          Dst:             p_strdup_empty
        - Src:             'sieve-storage.c:318,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:318,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:318,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:322,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:322,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:322,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:327,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:327,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:327,3'
          Dst:             event_send_abort
    - functionName:    sieve_storage_alloc_from_class
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          246
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - event_ref
        - i_panic
        - p_strconcat
        - p_strdup
        - sieve_error_create_internal
        - sieve_error_create_script_not_found
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:199,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:202,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:203,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:210,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:211,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:216,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:217,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:225,19'
          Dst:             p_strdup
        - Src:             'sieve-storage.c:226,18'
          Dst:             p_strdup
        - Src:             'sieve-storage.c:227,25'
          Dst:             p_strdup
        - Src:             'sieve-storage.c:231,19'
          Dst:             p_strdup
        - Src:             'sieve-storage.c:233,19'
          Dst:             p_strconcat
        - Src:             'sieve-storage.c:237,6'
          Dst:             strcasecmp
        - Src:             'sieve-storage.c:241,2'
          Dst:             event_ref
    - functionName:    sieve_storage_get_full_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          174
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - home_expand_tilde
        - sieve_environment_get_homedir
        - t_strconcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:848,21'
          Dst:             sieve_environment_get_homedir
        - Src:             'sieve-storage.c:854,13'
          Dst:             home_expand_tilde
        - Src:             'sieve-storage.c:856,13'
          Dst:             t_strconcat
    - functionName:    sieve_storage_set_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1964
      functionLinenumberEnd: 1989
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_strdup_vprintf
        - sieve_storage_clear_error
        - sieve_storage_set_internal_error
        - t_strdup_vprintf
      functionUses:    63
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1970,4'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-storage.c:1970,4'
          Dst:             e_error
        - Src:             'sieve-storage.c:1975,4'
          Dst:             sieve_storage_set_internal_error
        - Src:             'sieve-storage.c:1978,4'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1983,21'
          Dst:             i_strdup_vprintf
    - functionName:    sieve_storage_set_internal_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - sieve_error_create_internal
        - sieve_storage_clear_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1957,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1958,2'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:1959,19'
          Dst:             i_strdup
    - functionName:    sieve_environment_get_homedir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_autodetect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          303
      EdgeCount:       63
      CyclomaticComplexity: 14
      functionsReached:
        - array_get_i
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - sieve_error_args_init
        - sieve_storage_create_driver_event
        - sieve_storage_settings_match_script_cause
        - sieve_storage_settings_match_script_type
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:392,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:394,7'
          Dst:             sieve_storage_settings_match_script_cause
        - Src:             'sieve-storage.c:396,7'
          Dst:             sieve_storage_settings_match_script_type
        - Src:             'sieve-storage.c:402,12'
          Dst:             array_get_i
        - Src:             'sieve-storage.c:408,7'
          Dst:             strcasecmp
        - Src:             'sieve-storage.c:413,4'
          Dst:             sieve_storage_create_driver_event
        - Src:             'sieve-storage.c:422,3'
          Dst:             event_unref
        - Src:             'sieve-storage.c:425,4'
          Dst:             i_panic
        - Src:             'sieve-storage.c:426,4'
          Dst:             i_panic
        - Src:             'sieve-storage.c:433,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:439,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:439,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:439,3'
          Dst:             event_send_abort
    - functionName:    sieve_storage_init_real
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          385
      EdgeCount:       79
      CyclomaticComplexity: 14
      functionsReached:
        - e_error
        - event_add_str
        - i_panic
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get_filter
        - settings_try_get_filter
        - sieve_error_create_internal
        - sieve_error_create_script_not_found
        - sieve_storage_alloc_from_settings
        - sieve_storage_autodetect
        - sieve_storage_settings_match_script_type
        - sieve_storage_unref
        - t_pop
        - t_push
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:479,9'
          Dst:             settings_try_get_filter
        - Src:             'sieve-storage.c:486,9'
          Dst:             settings_get_filter
        - Src:             'sieve-storage.c:492,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:493,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:497,7'
          Dst:             sieve_storage_settings_match_script_type
        - Src:             'sieve-storage.c:498,3'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:502,2'
          Dst:             event_add_str
        - Src:             'sieve-storage.c:503,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'sieve-storage.c:507,9'
          Dst:             sieve_storage_autodetect
        - Src:             'sieve-storage.c:511,4'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:514,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:515,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:517,3'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:521,8'
          Dst:             sieve_storage_alloc_from_settings
        - Src:             'sieve-storage.c:524,2'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:527,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:528,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:530,2'
          Dst:             t_push
        - Src:             'sieve-storage.c:532,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:533,4'
          Dst:             t_pop
        - Src:             'sieve-storage.c:533,4'
          Dst:             i_panic
        - Src:             'sieve-storage.c:535,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:536,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:538,14'
          Dst:             t_strdup
        - Src:             'sieve-storage.c:539,3'
          Dst:             sieve_storage_unref
    - 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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          142
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - event_unref
        - i_panic
        - p_free_internal
        - pool_unref
        - sieve_storage_sync_deinit
        - sieve_storage_unref
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:809,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:814,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:816,3'
          Dst:             sieve_storage_unref
        - Src:             'sieve-storage.c:819,2'
          Dst:             sieve_storage_sync_deinit
        - Src:             'sieve-storage.c:824,2'
          Dst:             p_free_internal
        - Src:             'sieve-storage.c:825,2'
          Dst:             event_unref
        - Src:             'sieve-storage.c:826,2'
          Dst:             pool_unref
    - 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:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_storage_update_event_prefix
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_set_append_log_prefix
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:137,21'
          Dst:             t_str_new
        - Src:             'sieve-storage.c:139,2'
          Dst:             str_append
        - Src:             'sieve-storage.c:141,3'
          Dst:             str_append_c
        - Src:             'sieve-storage.c:142,3'
          Dst:             str_append
        - Src:             'sieve-storage.c:145,3'
          Dst:             str_append
        - Src:             'sieve-storage.c:146,2'
          Dst:             str_append
        - Src:             'sieve-storage.c:147,37'
          Dst:             str_c
        - Src:             'sieve-storage.c:147,2'
          Dst:             event_set_append_log_prefix
    - 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:    sieve_storage_sequence_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2106
      functionLinenumberEnd: 2118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - p_free_internal
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:2113,2'
          Dst:             event_unref
        - Src:             'sieve-storage.c:2114,2'
          Dst:             p_free_internal
        - Src:             'sieve-storage.c:2115,2'
          Dst:             p_free_internal
        - Src:             'sieve-storage.c:2116,2'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:2117,2'
          Dst:             p_free_internal
    - functionName:    sieve_storage_sequence_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2074
      functionLinenumberEnd: 2103
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_storage_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:2079,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:2084,9'
          Dst:             sieve_storage_init
        - Src:             'sieve-storage.c:2097,4'
          Dst:             i_panic
    - functionName:    sieve_storage_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - sieve_storage_create_event
        - sieve_storage_init_real
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:559,10'
          Dst:             sieve_storage_create_event
        - Src:             'sieve-storage.c:561,8'
          Dst:             sieve_storage_init_real
        - Src:             'sieve-storage.c:565,2'
          Dst:             event_unref
    - functionName:    sieve_storage_create_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_category
        - event_create
        - sieve_storage_update_event_prefix
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:157,10'
          Dst:             event_create
        - Src:             'sieve-storage.c:160,3'
          Dst:             event_add_category
        - Src:             'sieve-storage.c:161,2'
          Dst:             event_add_category
        - Src:             'sieve-storage.c:163,2'
          Dst:             sieve_storage_update_event_prefix
    - functionName:    sieve_storage_sequence_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2029
      functionLinenumberEnd: 2068
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          111
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
        - e_error
        - event_ref
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - settings_get
        - sieve_error_args_init
        - sieve_error_create_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:2036,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:2038,6'
          Dst:             settings_get
        - Src:             'sieve-storage.c:2041,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:2042,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:2045,6'
          Dst:             array_is_created_i
        - Src:             'sieve-storage.c:2046,19'
          Dst:             array_get_i
        - Src:             'sieve-storage.c:2055,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-storage.c:2055,9'
          Dst:             p_malloc
        - Src:             'sieve-storage.c:2057,16'
          Dst:             i_strdup
        - Src:             'sieve-storage.c:2058,15'
          Dst:             i_strdup
        - Src:             'sieve-storage.c:2064,2'
          Dst:             event_ref
    - 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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_storage_get_last_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2007
      functionLinenumberEnd: 2016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_set_not_found_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1993
      functionLinenumberEnd: 2002
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup
        - sieve_error_create_script_not_found
        - sieve_storage_clear_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1997,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1999,2'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:2001,19'
          Dst:             i_strdup
    - functionName:    sieve_storage_is_personal
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1914
      functionLinenumberEnd: 1915
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_is_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1909
      functionLinenumberEnd: 1910
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1904
      functionLinenumberEnd: 1905
      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:    sieve_storage_quota_havespace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1878
      functionLinenumberEnd: 1897
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_storage_quota_validsize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1883,7'
          Dst:             sieve_storage_quota_validsize
    - functionName:    sieve_storage_quota_validsize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1867
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_max_script_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1860,13'
          Dst:             sieve_max_script_size
    - functionName:    sieve_storage_quota_max_script_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1870
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_max_script_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1871,9'
          Dst:             sieve_max_script_size
    - functionName:    sieve_storage_save_as
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1814
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          219
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - sieve_storage_clear_error
        - sieve_storage_save_create_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1818,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1820,10'
          Dst:             sieve_storage_save_create_event
        - Src:             'sieve-storage.c:1823,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1825,2'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1825,2'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1825,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1827,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1832,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1834,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1834,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1834,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1836,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1837,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1840,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1843,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1843,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1843,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1847,2'
          Dst:             event_unref
    - functionName:    sieve_storage_save_create_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1438
      functionLinenumberEnd: 1451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_str
        - event_create
        - event_set_append_log_prefix
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1441,10'
          Dst:             event_create
        - Src:             'sieve-storage.c:1442,2'
          Dst:             event_add_str
        - Src:             'sieve-storage.c:1444,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-storage.c:1447,11'
          Dst:             t_strdup_printf
        - Src:             'sieve-storage.c:1446,3'
          Dst:             event_set_append_log_prefix
    - functionName:    sieve_storage_save_as_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1774
      functionLinenumberEnd: 1809
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          222
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_create
        - event_create_passthrough
        - event_send_abort
        - event_set_append_log_prefix
        - event_unref
        - event_want_level
        - i_panic
        - sieve_storage_clear_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1778,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1780,10'
          Dst:             event_create
        - Src:             'sieve-storage.c:1781,2'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-storage.c:1784,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1786,2'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1786,2'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1786,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1788,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1793,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1795,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1795,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1795,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1797,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1798,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1801,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1804,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1804,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1804,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1808,2'
          Dst:             event_unref
    - functionName:    sieve_storage_save_cancel
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1743
      functionLinenumberEnd: 1770
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_storage_save_cleanup
        - sieve_storage_save_deinit
        - sieve_storage_save_finish
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1755,2'
          Dst:             sieve_storage_save_cleanup
        - Src:             'sieve-storage.c:1758,9'
          Dst:             sieve_storage_save_finish
        - Src:             'sieve-storage.c:1761,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1764,2'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1764,2'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1764,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1766,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1769,2'
          Dst:             sieve_storage_save_deinit
    - functionName:    sieve_storage_save_cleanup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1457
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1456,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_storage_save_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1545
      functionLinenumberEnd: 1570
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          194
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_storage_clear_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1550,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1552,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1555,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1558,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1559,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1562,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1565,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1565,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1565,3'
          Dst:             event_send_abort
    - functionName:    sieve_storage_save_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1460
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_unref
        - pool_unref
        - sieve_storage_save_cleanup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1467,2'
          Dst:             sieve_storage_save_cleanup
        - Src:             'sieve-storage.c:1468,2'
          Dst:             event_unref
        - Src:             'sieve-storage.c:1469,2'
          Dst:             pool_unref
    - functionName:    sieve_storage_save_is_activating_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1659
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          132
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_storage_check_script_direct
        - sieve_storage_create_default_for
        - sieve_storage_save_will_activate
        - sieve_storage_unref
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1633,7'
          Dst:             sieve_storage_save_will_activate
        - Src:             'sieve-storage.c:1640,6'
          Dst:             sieve_storage_create_default_for
        - Src:             'sieve-storage.c:1647,6'
          Dst:             strcmp
        - Src:             'sieve-storage.c:1648,9'
          Dst:             sieve_storage_check_script_direct
        - Src:             'sieve-storage.c:1657,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_storage_save_will_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1623
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - p_strdup
        - sieve_storage_active_script_get_name
        - sieve_storage_clear_error
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1608,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1613,7'
          Dst:             sieve_storage_active_script_get_name
        - Src:             'sieve-storage.c:1616,5'
          Dst:             p_strdup
        - Src:             'sieve-storage.c:1622,3'
          Dst:             strcmp
    - functionName:    sieve_storage_create_default_for
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          118
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_storage_create_default
        - sieve_storage_ref
        - sieve_storage_set_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:725,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:728,3'
          Dst:             sieve_storage_ref
        - Src:             'sieve-storage.c:737,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:738,6'
          Dst:             sieve_storage_create_default
        - Src:             'sieve-storage.c:742,3'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-storage.c:749,2'
          Dst:             sieve_storage_ref
    - functionName:    sieve_storage_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_create_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - e_error
        - event_get_parent
        - event_send_abort
        - event_want_level
        - sieve_error_args_init
        - sieve_storage_create_auto
        - sieve_storage_update_event_prefix
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-storage.c:696,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-storage.c:686,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:688,8'
          Dst:             sieve_storage_create_auto
        - Src:             'sieve-storage.c:694,4'
          Dst:             event_get_parent
        - Src:             'sieve-storage.c:693,3'
          Dst:             sieve_storage_update_event_prefix
        - Src:             'sieve-storage.c:698,4'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:698,4'
          Dst:             e_debug
        - Src:             'sieve-storage.c:698,4'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:702,4'
          Dst:             e_error
        - Src:             'sieve-storage.c:707,4'
          Dst:             e_error
    - functionName:    sieve_storage_create_auto
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          303
      EdgeCount:       69
      CyclomaticComplexity: 15
      functionsReached:
        - array_get_i
        - array_is_created_i
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - pool_unref
        - settings_get
        - sieve_error_args_init
        - sieve_error_create_internal
        - sieve_error_create_script_not_found
        - sieve_storage_autodetect_any
        - sieve_storage_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:617,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:619,6'
          Dst:             settings_get
        - Src:             'sieve-storage.c:622,3'
          Dst:             e_error
        - Src:             'sieve-storage.c:623,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-storage.c:626,6'
          Dst:             array_is_created_i
        - Src:             'sieve-storage.c:627,19'
          Dst:             array_get_i
        - Src:             'sieve-storage.c:637,9'
          Dst:             sieve_storage_init
        - Src:             'sieve-storage.c:641,4'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:645,4'
          Dst:             i_panic
        - Src:             'sieve-storage.c:650,9'
          Dst:             sieve_storage_autodetect_any
        - Src:             'sieve-storage.c:654,4'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:658,2'
          Dst:             pool_unref
        - Src:             'sieve-storage.c:660,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:660,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:660,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:664,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:668,2'
          Dst:             i_panic
    - functionName:    sieve_storage_autodetect_any
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - sieve_storage_autodetect
        - sieve_storage_create_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:456,10'
          Dst:             sieve_storage_create_event
        - Src:             'sieve-storage.c:458,8'
          Dst:             sieve_storage_autodetect
        - Src:             'sieve-storage.c:461,2'
          Dst:             event_unref
    - functionName:    sieve_storage_active_script_get_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_storage_active_script_do_get_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1211,9'
          Dst:             sieve_storage_active_script_do_get_name
    - functionName:    sieve_storage_active_script_do_get_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          269
      EdgeCount:       61
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - sieve_storage_check_script
        - sieve_storage_clear_error
        - sieve_storage_copy_error
        - sieve_storage_create_default_for
        - sieve_storage_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1161,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1166,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1169,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1170,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1172,4'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1185,8'
          Dst:             sieve_storage_create_default_for
        - Src:             'sieve-storage.c:1192,8'
          Dst:             sieve_storage_check_script
        - Src:             'sieve-storage.c:1195,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-storage.c:1196,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1197,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1199,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_storage_check_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_args_init
        - sieve_script_unref
        - sieve_storage_clear_error
        - sieve_storage_open_script
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1140,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:1141,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1143,6'
          Dst:             sieve_storage_open_script
        - Src:             'sieve-storage.c:1146,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_storage_copy_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1947
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - sieve_storage_clear_error
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1948,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1949,19'
          Dst:             i_strdup
    - functionName:    sieve_storage_open_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_error_args_init
        - sieve_script_open
        - sieve_script_unref
        - sieve_storage_clear_error
        - sieve_storage_get_default_script
        - sieve_storage_get_script
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1090,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:1091,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1093,6'
          Dst:             sieve_storage_get_script
        - Src:             'sieve-storage.c:1095,6'
          Dst:             sieve_script_open
        - Src:             'sieve-storage.c:1099,2'
          Dst:             sieve_script_unref
        - Src:             'sieve-storage.c:1103,6'
          Dst:             sieve_storage_get_default_script
        - Src:             'sieve-storage.c:1106,6'
          Dst:             sieve_script_open
        - Src:             'sieve-storage.c:1107,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_storage_get_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1081
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_args_init
        - sieve_storage_clear_error
        - sieve_storage_get_default_script
        - sieve_storage_get_script_direct
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1070,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:1071,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1073,6'
          Dst:             sieve_storage_get_script_direct
        - Src:             'sieve-storage.c:1079,9'
          Dst:             sieve_storage_get_default_script
    - functionName:    sieve_storage_get_default_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          169
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_storage_copy_error
        - sieve_storage_create_default_for
        - sieve_storage_get_script_direct
        - sieve_storage_set_error
        - sieve_storage_unref
        - str_sanitize
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1031,2'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1031,2'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1031,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1035,8'
          Dst:             sieve_storage_create_default_for
        - Src:             'sieve-storage.c:1040,6'
          Dst:             strcmp
        - Src:             'sieve-storage.c:1044,4'
          Dst:             str_sanitize
        - Src:             'sieve-storage.c:1041,3'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-storage.c:1046,3'
          Dst:             sieve_storage_unref
        - Src:             'sieve-storage.c:1052,8'
          Dst:             sieve_storage_get_script_direct
        - Src:             'sieve-storage.c:1055,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-storage.c:1056,2'
          Dst:             sieve_storage_unref
        - Src:             'sieve-storage.c:1059,2'
          Dst:             i_panic
    - functionName:    sieve_storage_save_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1662
      functionLinenumberEnd: 1740
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          363
      EdgeCount:       73
      CyclomaticComplexity: 14
      functionsReached:
        - e_debug
        - e_error
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_script_activate
        - sieve_script_delete
        - sieve_script_unref
        - sieve_storage_clear_error
        - sieve_storage_open_script
        - sieve_storage_save_cleanup
        - sieve_storage_save_deinit
        - sieve_storage_save_is_activating_default
        - sieve_storage_sync_script_save
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1675,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1677,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1678,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1679,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1682,8'
          Dst:             sieve_storage_save_is_activating_default
        - Src:             'sieve-storage.c:1687,2'
          Dst:             sieve_storage_save_cleanup
        - Src:             'sieve-storage.c:1689,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1691,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1701,7'
          Dst:             sieve_storage_open_script
        - Src:             'sieve-storage.c:1705,14'
          Dst:             sieve_script_activate
        - Src:             'sieve-storage.c:1708,10'
          Dst:             sieve_script_delete
        - Src:             'sieve-storage.c:1710,3'
          Dst:             sieve_script_unref
        - Src:             'sieve-storage.c:1713,4'
          Dst:             e_error
        - Src:             'sieve-storage.c:1722,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1724,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1724,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1724,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1727,9'
          Dst:             sieve_storage_sync_script_save
        - Src:             'sieve-storage.c:1730,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1734,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1734,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1734,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1738,2'
          Dst:             sieve_storage_save_deinit
    - functionName:    sieve_storage_save_get_tempscript
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1581
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_storage_clear_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1590,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1592,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1595,2'
          Dst:             i_panic
    - functionName:    sieve_storage_save_set_mtime
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1577
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_save_continue
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1541
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_storage_clear_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1532,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1534,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1537,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1538,3'
          Dst:             i_panic
    - functionName:    sieve_storage_save_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          288
      EdgeCount:       50
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_script_name_is_valid
        - sieve_storage_clear_error
        - sieve_storage_save_create_event
        - sieve_storage_save_deinit
        - sieve_storage_set_error
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1478,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1482,8'
          Dst:             sieve_script_name_is_valid
        - Src:             'sieve-storage.c:1486,5'
          Dst:             str_sanitize
        - Src:             'sieve-storage.c:1483,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-storage.c:1491,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1493,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1497,16'
          Dst:             sieve_storage_save_create_event
        - Src:             'sieve-storage.c:1500,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1502,2'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1502,2'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1502,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1504,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1506,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1507,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1510,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1513,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1513,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1513,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1516,3'
          Dst:             sieve_storage_save_deinit
        - Src:             'sieve-storage.c:1522,2'
          Dst:             i_panic
    - functionName:    sieve_storage_list_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1409
      functionLinenumberEnd: 1429
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_storage_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1420,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1422,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1426,2'
          Dst:             sieve_storage_unref
        - Src:             'sieve-storage.c:1427,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_storage_list_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1362
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          236
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - sieve_storage_check_script
        - sieve_storage_clear_error
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1367,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1369,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1372,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1384,7'
          Dst:             strcmp
        - Src:             'sieve-storage.c:1388,6'
          Dst:             sieve_storage_check_script
    - functionName:    sieve_storage_list_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1358
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          145
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_storage_clear_error
        - sieve_storage_create_default_for
        - sieve_storage_ref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1329,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1331,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1333,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1334,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1339,2'
          Dst:             sieve_storage_ref
        - Src:             'sieve-storage.c:1351,6'
          Dst:             sieve_storage_create_default_for
    - functionName:    sieve_storage_active_script_get_last_change
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1316
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1313,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1314,2'
          Dst:             i_panic
    - functionName:    sieve_storage_deactivate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          224
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_storage_clear_error
        - sieve_storage_set_modified
        - sieve_storage_sync_deactivate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1279,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1280,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1282,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1284,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1289,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1291,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1291,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1291,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:1293,3'
          Dst:             sieve_storage_set_modified
        - Src:             'sieve-storage.c:1294,9'
          Dst:             sieve_storage_sync_deactivate
        - Src:             'sieve-storage.c:1296,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1297,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1300,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-storage.c:1303,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:1303,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:1303,3'
          Dst:             event_send_abort
    - functionName:    sieve_storage_set_modified
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_active_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          221
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_storage_clear_error
        - sieve_storage_copy_error
        - sieve_storage_create_default_for
        - sieve_storage_open_script
        - sieve_storage_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1236,10'
          Dst:             sieve_storage_open_script
        - Src:             'sieve-storage.c:1241,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:1242,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-storage.c:1244,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1246,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1247,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1262,8'
          Dst:             sieve_storage_create_default_for
        - Src:             'sieve-storage.c:1267,8'
          Dst:             sieve_storage_open_script
        - Src:             'sieve-storage.c:1270,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-storage.c:1271,2'
          Dst:             sieve_storage_unref
    - functionName:    sieve_storage_active_script_is_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_storage_active_script_do_get_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:1220,2'
          Dst:             i_panic
        - Src:             'sieve-storage.c:1221,8'
          Dst:             sieve_storage_active_script_do_get_name
    - functionName:    sieve_storage_hash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:975,10'
          Dst:             str_hash
        - Src:             'sieve-storage.c:976,10'
          Dst:             str_hash
    - functionName:    sieve_storage_cmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - null_strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:964,8'
          Dst:             null_strcmp
        - Src:             'sieve-storage.c:967,9'
          Dst:             null_strcmp
    - functionName:    sieve_storage_get_last_change
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:935,2'
          Dst:             i_panic
    - functionName:    sieve_storage_is_singular
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_setup_bin_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          160
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - e_debug
        - eacces_error_get
        - eacces_error_get_creating
        - event_send_abort
        - event_want_level
        - mkdir_parents
        - sieve_storage_set_critical
        - stat
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-storage.c:900,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-storage.c:870,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:875,6'
          Dst:             stat
        - Src:             'sieve-storage.c:876,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:876,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:876,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:881,6'
          Dst:             __errno_location
        - Src:             'sieve-storage.c:884,10'
          Dst:             eacces_error_get
        - Src:             'sieve-storage.c:882,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:886,13'
          Dst:             __errno_location
        - Src:             'sieve-storage.c:887,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:894,6'
          Dst:             mkdir_parents
        - Src:             'sieve-storage.c:895,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:895,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:895,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:900,10'
          Dst:             __errno_location
        - Src:             'sieve-storage.c:904,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:909,10'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-storage.c:908,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-storage.c:913,3'
          Dst:             sieve_storage_set_critical
    - 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:    109
      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:    1048
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_create_personal
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_error_args_init
        - sieve_storage_create_auto
        - sieve_storage_create_default
        - sieve_storage_sync_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:765,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:769,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:769,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:769,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:776,8'
          Dst:             sieve_storage_create_auto
        - Src:             'sieve-storage.c:780,3'
          Dst:             i_panic
        - Src:             'sieve-storage.c:781,9'
          Dst:             sieve_storage_sync_init
        - Src:             'sieve-storage.c:788,9'
          Dst:             sieve_storage_create_default
    - functionName:    sieve_storage_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_error_args_init
        - sieve_error_create_script_not_found
        - sieve_storage_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:581,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:583,8'
          Dst:             sieve_storage_init
        - Src:             'sieve-storage.c:592,3'
          Dst:             event_want_level
        - Src:             'sieve-storage.c:592,3'
          Dst:             e_debug
        - Src:             'sieve-storage.c:592,3'
          Dst:             event_send_abort
        - Src:             'sieve-storage.c:594,3'
          Dst:             sieve_error_create_script_not_found
        - Src:             'sieve-storage.c:598,2'
          Dst:             i_panic
    - functionName:    sieve_storage_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          66
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - sieve_error_args_init
        - sieve_storage_alloc_from_class
        - sieve_storage_create_driver_event
        - sieve_storage_create_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:260,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-storage.c:262,18'
          Dst:             sieve_storage_create_event
        - Src:             'sieve-storage.c:264,10'
          Dst:             sieve_storage_create_driver_event
        - Src:             'sieve-storage.c:266,2'
          Dst:             event_unref
        - Src:             'sieve-storage.c:268,8'
          Dst:             sieve_storage_alloc_from_class
        - Src:             'sieve-storage.c:273,2'
          Dst:             event_unref
    - functionName:    sieve_storage_class_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_storage_class_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:126,10'
          Dst:             sieve_storage_class_find
    - 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:             'dovecot/src/lib/array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:246,2'
          Dst:             buffer_delete
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_storage_class_unregister
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:97,12'
          Dst:             array_get_i
        - Src:             'sieve-storage.c:100,4'
          Dst:             array_delete_i
    - functionName:    sieve_storages_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      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:    sieve_storage_class_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - i_panic
        - sieve_storage_class_find
        - sieve_storage_class_unregister
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:73,14'
          Dst:             sieve_storage_class_find
        - Src:             'sieve-storage.c:79,4'
          Dst:             sieve_storage_class_unregister
        - Src:             'sieve-storage.c:81,4'
          Dst:             i_panic
        - Src:             'sieve-storage.c:87,2'
          Dst:             array_append_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_storages_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_storage_class_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:51,24'
          Dst:             malloc_multiply_check
        - Src:             'sieve-storage.c:51,24'
          Dst:             p_malloc
        - Src:             'sieve-storage.c:53,2'
          Dst:             array_create_i
        - Src:             'sieve-storage.c:55,2'
          Dst:             sieve_storage_class_register
        - Src:             'sieve-storage.c:56,2'
          Dst:             sieve_storage_class_register
    - functionName:    sieve_storage_name_is_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_name_is_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage.c:38,9'
          Dst:             sieve_script_name_is_valid
    - 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_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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_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:    sieve_storage_settings_match_script_cause
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_is_created_i
        - bsearch
        - search_strcasecmp
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-settings.c:129,6'
          Dst:             strcasecmp
        - Src:             'sieve-storage-settings.c:133,7'
          Dst:             array_is_created_i
        - Src:             'sieve-storage-settings.c:135,7'
          Dst:             strcasecmp
        - Src:             'sieve-storage-settings.c:141,7'
          Dst:             strcasecmp
        - Src:             'sieve-storage-settings.c:153,14'
          Dst:             array_get_i
        - Src:             'sieve-storage-settings.c:154,10'
          Dst:             bsearch
        - Src:             'sieve-storage-settings.c:154,10'
          Dst:             search_strcasecmp
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_storage_settings_match_script_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-settings.c:119,6'
          Dst:             strcasecmp
        - Src:             'sieve-storage-settings.c:121,6'
          Dst:             strcasecmp
    - functionName:    sieve_storage_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - array_is_created_i
        - array_sort_i
        - i_strcmp_p
        - sieve_script_name_is_valid
        - sieve_storage_name_is_valid
        - str_sanitize
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-settings.c:86,7'
          Dst:             sieve_storage_name_is_valid
        - Src:             'sieve-storage-settings.c:89,4'
          Dst:             str_sanitize
        - Src:             'sieve-storage-settings.c:87,14'
          Dst:             t_strdup_printf
        - Src:             'sieve-storage-settings.c:93,7'
          Dst:             sieve_script_name_is_valid
        - Src:             'sieve-storage-settings.c:96,4'
          Dst:             str_sanitize
        - Src:             'sieve-storage-settings.c:94,14'
          Dst:             t_strdup_printf
        - Src:             'sieve-storage-settings.c:109,6'
          Dst:             array_is_created_i
        - Src:             'sieve-storage-settings.c:110,3'
          Dst:             array_sort_i
        - Src:             'sieve-storage-settings.c:110,3'
          Dst:             i_strcmp_p
    - functionName:    sieve_storage_sync_deactivate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_attribute_unset
        - sieve_storage_sync_transaction_begin
        - sieve_storage_sync_transaction_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:178,13'
          Dst:             sieve_storage_sync_transaction_begin
        - Src:             'sieve-storage-sync.c:181,2'
          Dst:             mail_index_attribute_unset
        - Src:             'sieve-storage-sync.c:185,9'
          Dst:             sieve_storage_sync_transaction_finish
    - functionName:    sieve_storage_sync_transaction_begin
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_warning
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_open
        - mailbox_transaction_begin
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:65,10'
          Dst:             mailbox_alloc
        - Src:             'sieve-storage-sync.c:66,6'
          Dst:             mailbox_open
        - Src:             'sieve-storage-sync.c:67,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'sieve-storage-sync.c:67,3'
          Dst:             e_warning
        - Src:             'sieve-storage-sync.c:70,3'
          Dst:             mailbox_free
        - Src:             'sieve-storage-sync.c:74,13'
          Dst:             mailbox_transaction_begin
    - functionName:    sieve_storage_sync_transaction_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_warning
        - mail_storage_get_last_error
        - mailbox_free
        - mailbox_get_storage
        - mailbox_transaction_commit
        - mailbox_transaction_get_mailbox
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:88,10'
          Dst:             mailbox_transaction_get_mailbox
        - Src:             'sieve-storage-sync.c:90,13'
          Dst:             mailbox_transaction_commit
        - Src:             'sieve-storage-sync.c:93,3'
          Dst:             mailbox_get_storage
        - Src:             'sieve-storage-sync.c:93,3'
          Dst:             mail_storage_get_last_error
        - Src:             'sieve-storage-sync.c:93,3'
          Dst:             e_warning
        - Src:             'sieve-storage-sync.c:99,2'
          Dst:             mailbox_free
    - functionName:    sieve_storage_sync_script_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_attribute_set
        - sieve_storage_sync_transaction_begin
        - sieve_storage_sync_transaction_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:163,13'
          Dst:             sieve_storage_sync_transaction_begin
        - Src:             'sieve-storage-sync.c:166,2'
          Dst:             mail_index_attribute_set
        - Src:             'sieve-storage-sync.c:170,9'
          Dst:             sieve_storage_sync_transaction_finish
    - functionName:    sieve_storage_sync_script_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_attribute_unset
        - sieve_storage_sync_transaction_begin
        - sieve_storage_sync_transaction_finish
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:148,13'
          Dst:             sieve_storage_sync_transaction_begin
        - Src:             'sieve-storage-sync.c:151,8'
          Dst:             t_strconcat
        - Src:             'sieve-storage-sync.c:153,2'
          Dst:             mail_index_attribute_unset
        - Src:             'sieve-storage-sync.c:155,9'
          Dst:             sieve_storage_sync_transaction_finish
    - functionName:    sieve_storage_sync_script_rename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_attribute_set
        - mail_index_attribute_unset
        - sieve_storage_sync_transaction_begin
        - sieve_storage_sync_transaction_finish
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:127,13'
          Dst:             sieve_storage_sync_transaction_begin
        - Src:             'sieve-storage-sync.c:130,11'
          Dst:             t_strconcat
        - Src:             'sieve-storage-sync.c:132,11'
          Dst:             t_strconcat
        - Src:             'sieve-storage-sync.c:135,2'
          Dst:             mail_index_attribute_unset
        - Src:             'sieve-storage-sync.c:136,2'
          Dst:             mail_index_attribute_set
        - Src:             'sieve-storage-sync.c:138,9'
          Dst:             sieve_storage_sync_transaction_finish
    - functionName:    sieve_storage_sync_script_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_attribute_set
        - sieve_storage_sync_transaction_begin
        - sieve_storage_sync_transaction_finish
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:110,13'
          Dst:             sieve_storage_sync_transaction_begin
        - Src:             'sieve-storage-sync.c:113,8'
          Dst:             t_strconcat
        - Src:             'sieve-storage-sync.c:115,2'
          Dst:             mail_index_attribute_set
        - Src:             'sieve-storage-sync.c:117,9'
          Dst:             sieve_storage_sync_transaction_finish
    - functionName:    sieve_storage_sync_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      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:    sieve_storage_sync_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-storage-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_namespace_find_inbox
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-storage-sync.c:37,2'
          Dst:             event_want_level
        - Src:             'sieve-storage-sync.c:37,2'
          Dst:             e_debug
        - Src:             'sieve-storage-sync.c:37,2'
          Dst:             event_send_abort
        - Src:             'sieve-storage-sync.c:39,27'
          Dst:             mail_namespace_find_inbox
    - functionName:    sieve_ast_unparse_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1059
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - printf
        - sieve_ast_unparse_argument
        - sieve_ast_unparse_tests
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:1049,2'
          Dst:             printf
        - Src:             'sieve-ast.c:1053,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1054,3'
          Dst:             sieve_ast_unparse_argument
        - Src:             'sieve-ast.c:1058,2'
          Dst:             sieve_ast_unparse_tests
    - functionName:    sieve_ast_unparse_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 1008
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - printf
        - sieve_ast_unparse_string
        - sieve_ast_unparse_stringlist
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-ast.c:990,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-ast.c:992,3'
          Dst:             sieve_ast_unparse_string
        - Src:             'sieve-ast.c:995,3'
          Dst:             sieve_ast_unparse_stringlist
        - Src:             'sieve-ast.c:998,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1002,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1005,3'
          Dst:             printf
    - functionName:    sieve_ast_unparse_tests
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          170
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - printf
        - sieve_ast_unparse_test
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:1019,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1023,4'
          Dst:             printf
        - Src:             'sieve-ast.c:1026,3'
          Dst:             sieve_ast_unparse_test
        - Src:             'sieve-ast.c:1030,4'
          Dst:             printf
        - Src:             'sieve-ast.c:1032,5'
          Dst:             printf
        - Src:             'sieve-ast.c:1033,4'
          Dst:             sieve_ast_unparse_test
        - Src:             'sieve-ast.c:1037,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1041,4'
          Dst:             sieve_ast_unparse_test
    - functionName:    sieve_ast_unparse_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - printf
        - str_c
        - strchr
        - strlen
        - t_strdup_noconst
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:903,31'
          Dst:             str_c
        - Src:             'sieve-ast.c:903,14'
          Dst:             t_strdup_noconst
        - Src:             'sieve-ast.c:905,6'
          Dst:             strchr
        - Src:             'sieve-ast.c:905,39'
          Dst:             strlen
        - Src:             'sieve-ast.c:909,16'
          Dst:             strchr
        - Src:             'sieve-ast.c:910,3'
          Dst:             printf
        - Src:             'sieve-ast.c:915,5'
          Dst:             printf
        - Src:             'sieve-ast.c:917,4'
          Dst:             printf
        - Src:             'sieve-ast.c:920,11'
          Dst:             strchr
        - Src:             'sieve-ast.c:923,4'
          Dst:             printf
        - Src:             'sieve-ast.c:925,3'
          Dst:             printf
        - Src:             'sieve-ast.c:929,16'
          Dst:             strchr
        - Src:             'sieve-ast.c:930,3'
          Dst:             printf
        - Src:             'sieve-ast.c:934,4'
          Dst:             printf
        - Src:             'sieve-ast.c:937,11'
          Dst:             strchr
        - Src:             'sieve-ast.c:940,3'
          Dst:             printf
    - functionName:    sieve_ast_unparse_stringlist
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          179
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - printf
        - sieve_ast_unparse_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:955,3'
          Dst:             printf
        - Src:             'sieve-ast.c:959,4'
          Dst:             printf
        - Src:             'sieve-ast.c:963,4'
          Dst:             sieve_ast_unparse_string
        - Src:             'sieve-ast.c:968,5'
          Dst:             printf
        - Src:             'sieve-ast.c:970,6'
          Dst:             printf
        - Src:             'sieve-ast.c:971,5'
          Dst:             sieve_ast_unparse_string
        - Src:             'sieve-ast.c:977,3'
          Dst:             printf
        - Src:             'sieve-ast.c:981,4'
          Dst:             sieve_ast_unparse_string
    - functionName:    sieve_ast_arg_list_join
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          145
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:365,2'
          Dst:             i_panic
    - functionName:    sieve_ast_list_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          79
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:338,2'
          Dst:             malloc_multiply_check
        - Src:             'sieve-ast.c:338,2'
          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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,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:    sieve_ast_unparse_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1097
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          143
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - printf
        - sieve_ast_unparse_argument
        - sieve_ast_unparse_command
        - sieve_ast_unparse_tests
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:1070,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1072,2'
          Dst:             printf
        - Src:             'sieve-ast.c:1076,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1077,3'
          Dst:             sieve_ast_unparse_argument
        - Src:             'sieve-ast.c:1081,2'
          Dst:             sieve_ast_unparse_tests
        - Src:             'sieve-ast.c:1085,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1088,4'
          Dst:             sieve_ast_unparse_command
        - Src:             'sieve-ast.c:1093,4'
          Dst:             printf
        - Src:             'sieve-ast.c:1094,3'
          Dst:             printf
        - Src:             'sieve-ast.c:1096,3'
          Dst:             printf
    - functionName:    sieve_ast_unparse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - printf
        - sieve_ast_root
        - sieve_ast_unparse_command
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:1103,2'
          Dst:             printf
        - Src:             'sieve-ast.c:1105,2'
          Dst:             t_push
        - Src:             'sieve-ast.c:1106,13'
          Dst:             sieve_ast_root
        - Src:             'sieve-ast.c:1106,13'
          Dst:             sieve_ast_root
        - Src:             'sieve-ast.c:1108,4'
          Dst:             sieve_ast_unparse_command
        - Src:             'sieve-ast.c:1111,4'
          Dst:             t_pop
        - Src:             'sieve-ast.c:1111,4'
          Dst:             i_panic
    - functionName:    sieve_ast_root
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_stringlist_add_stringlist
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_ast_arg_list_create
        - sieve_ast_arg_list_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:642,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:643,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:649,4'
          Dst:             sieve_ast_arg_list_create
        - Src:             'sieve-ast.c:652,9'
          Dst:             sieve_ast_arg_list_join
    - functionName:    sieve_ast_arg_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:351,2'
          Dst:             malloc_multiply_check
        - Src:             'sieve-ast.c:351,2'
          Dst:             p_malloc
    - functionName:    _sieve_ast_stringlist_add_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_ast_arg_list_add
        - sieve_ast_arg_list_create
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:628,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:632,4'
          Dst:             sieve_ast_arg_list_create
        - Src:             'sieve-ast.c:635,9'
          Dst:             sieve_ast_arg_list_add
    - functionName:    sieve_ast_arg_list_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          79
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_stringlist_join
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       47
      CyclomaticComplexity: 25
      functionsReached:
        - _sieve_ast_stringlist_add_item
        - i_unreached
        - sieve_ast_argument_create
        - sieve_ast_argument_substitute
        - sieve_ast_arguments_detach
        - sieve_ast_stringlist_add_stringlist
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-ast.c:843,2'
          Branch Sides:    []
        - Branch String:   'sieve-ast.c:845,3'
          Branch Sides:    []
        - Branch String:   'sieve-ast.c:873,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-ast.c:847,14'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:852,4'
          Dst:             sieve_ast_argument_substitute
        - Src:             'sieve-ast.c:853,4'
          Dst:             sieve_ast_arguments_detach
        - Src:             'sieve-ast.c:855,9'
          Dst:             _sieve_ast_stringlist_add_item
        - Src:             'sieve-ast.c:856,9'
          Dst:             _sieve_ast_stringlist_add_item
        - Src:             'sieve-ast.c:863,4'
          Dst:             sieve_ast_arguments_detach
        - Src:             'sieve-ast.c:864,4'
          Dst:             sieve_ast_argument_substitute
        - Src:             'sieve-ast.c:865,9'
          Dst:             _sieve_ast_stringlist_add_item
        - Src:             'sieve-ast.c:869,4'
          Dst:             i_unreached
        - Src:             'sieve-ast.c:876,4'
          Dst:             sieve_ast_arguments_detach
        - Src:             'sieve-ast.c:877,9'
          Dst:             _sieve_ast_stringlist_add_item
        - Src:             'sieve-ast.c:883,4'
          Dst:             sieve_ast_arguments_detach
        - Src:             'sieve-ast.c:884,9'
          Dst:             sieve_ast_stringlist_add_stringlist
        - Src:             'sieve-ast.c:888,4'
          Dst:             i_unreached
        - Src:             'sieve-ast.c:892,3'
          Dst:             i_unreached
    - functionName:    sieve_ast_argument_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:491,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-ast.c:491,3'
          Dst:             p_malloc
    - functionName:    sieve_ast_argument_substitute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_arg_list_substitute
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:509,2'
          Dst:             sieve_ast_arg_list_substitute
    - functionName:    sieve_ast_arguments_detach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_arg_list_detach
      functionUses:    42
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:744,9'
          Dst:             sieve_ast_arg_list_detach
    - functionName:    sieve_ast_arg_list_detach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:370,2'
          Dst:             i_panic
    - functionName:    sieve_ast_arg_list_substitute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          108
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_stringlist_map
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_unreached
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:830,2'
          Dst:             i_unreached
    - functionName:    sieve_ast_node_add_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_ast_list_add
        - sieve_ast_list_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:428,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:432,20'
          Dst:             sieve_ast_list_create
        - Src:             'sieve-ast.c:434,9'
          Dst:             sieve_ast_list_add
    - functionName:    sieve_ast_command_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - sieve_ast_node_add_command
        - sieve_ast_node_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:793,35'
          Dst:             sieve_ast_node_create
        - Src:             'sieve-ast.c:796,24'
          Dst:             p_strdup
        - Src:             'sieve-ast.c:798,7'
          Dst:             sieve_ast_node_add_command
    - functionName:    sieve_ast_node_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          65
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:403,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-ast.c:403,3'
          Dst:             p_malloc
    - functionName:    sieve_ast_node_add_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_ast_list_add
        - sieve_ast_list_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:441,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:445,17'
          Dst:             sieve_ast_list_create
        - Src:             'sieve-ast.c:447,9'
          Dst:             sieve_ast_list_add
    - functionName:    sieve_ast_test_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - sieve_ast_node_add_test
        - sieve_ast_node_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:777,32'
          Dst:             sieve_ast_node_create
        - Src:             'sieve-ast.c:780,21'
          Dst:             p_strdup
        - Src:             'sieve-ast.c:782,7'
          Dst:             sieve_ast_node_add_test
    - functionName:    sieve_ast_argument_type_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    16
      BranchProfiles:
        - Branch String:   'sieve-ast.c:755,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sieve_ast_argument_attach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_node_add_argument
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:750,9'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_node_add_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_ast_arg_list_add
        - sieve_ast_arg_list_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:454,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:457,21'
          Dst:             sieve_ast_arg_list_create
        - Src:             'sieve-ast.c:459,9'
          Dst:             sieve_ast_arg_list_add
    - functionName:    sieve_ast_argument_number_set
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:736,2'
          Dst:             i_panic
    - functionName:    sieve_ast_argument_number_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_argument_create
        - sieve_ast_node_add_argument
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:723,3'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:728,7'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_argument_tag_insert
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - sieve_ast_arg_list_insert
        - sieve_ast_argument_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:707,3'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:710,25'
          Dst:             p_strdup
        - Src:             'sieve-ast.c:712,7'
          Dst:             sieve_ast_arg_list_insert
    - functionName:    sieve_ast_arg_list_insert
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_argument_tag_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - sieve_ast_argument_create
        - sieve_ast_node_add_argument
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:692,3'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:695,25'
          Dst:             p_strdup
        - Src:             'sieve-ast.c:697,7'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_stringlist_add_strc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_ast_stringlist_add_str
        - str_append
        - str_new
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:681,50'
          Dst:             strlen
        - Src:             'sieve-ast.c:681,25'
          Dst:             str_new
        - Src:             'sieve-ast.c:682,2'
          Dst:             str_append
        - Src:             'sieve-ast.c:684,9'
          Dst:             _sieve_ast_stringlist_add_str
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    _sieve_ast_stringlist_add_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_ast_stringlist_add_item
        - sieve_ast_argument_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:662,12'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:666,9'
          Dst:             _sieve_ast_stringlist_add_item
    - functionName:    sieve_ast_stringlist_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_ast_stringlist_add_str
        - str_append_str
        - str_len
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:672,50'
          Dst:             str_len
        - Src:             'sieve-ast.c:672,25'
          Dst:             str_new
        - Src:             'sieve-ast.c:673,2'
          Dst:             str_append_str
        - Src:             'sieve-ast.c:675,9'
          Dst:             _sieve_ast_stringlist_add_str
    - 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_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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    sieve_ast_argument_stringlist_substitute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_argument_create
        - sieve_ast_argument_substitute
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:614,3'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:619,2'
          Dst:             sieve_ast_argument_substitute
    - functionName:    sieve_ast_argument_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_argument_create
        - sieve_ast_node_add_argument
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:599,3'
          Dst:             sieve_ast_argument_create
        - Src:             'sieve-ast.c:604,2'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_argument_number_substitute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    sieve_ast_argument_string_setc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - str_append
        - str_truncate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:581,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:583,2'
          Dst:             str_truncate
        - Src:             'sieve-ast.c:584,2'
          Dst:             str_append
    - functionName:    sieve_ast_argument_string_set
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:574,2'
          Dst:             i_panic
    - functionName:    sieve_ast_argument_cstring_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_argument_string_create_raw
        - sieve_ast_node_add_argument
        - str_append
        - str_new
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:556,36'
          Dst:             strlen
        - Src:             'sieve-ast.c:556,11'
          Dst:             str_new
        - Src:             'sieve-ast.c:559,2'
          Dst:             str_append
        - Src:             'sieve-ast.c:562,13'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'sieve-ast.c:566,2'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_argument_string_create_raw
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_argument_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:517,3'
          Dst:             sieve_ast_argument_create
    - functionName:    sieve_ast_argument_string_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_argument_string_create_raw
        - sieve_ast_node_add_argument
        - str_append_str
        - str_len
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:533,36'
          Dst:             str_len
        - Src:             'sieve-ast.c:533,11'
          Dst:             str_new
        - Src:             'sieve-ast.c:536,2'
          Dst:             str_append_str
        - Src:             'sieve-ast.c:539,13'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'sieve-ast.c:543,2'
          Dst:             sieve_ast_node_add_argument
    - functionName:    sieve_ast_type_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-ast.c:469,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sieve_ast_list_detach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:346,2'
          Dst:             i_panic
    - functionName:    sieve_ast_node_detach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_list_detach
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:464,9'
          Dst:             sieve_ast_list_detach
    - functionName:    sieve_ast_extension_is_required
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:214,2'
          Dst:             array_count_i
        - Src:             'sieve-ast.c:214,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:217,8'
          Dst:             array_idx_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_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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_ast_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:201,38'
          Dst:             array_count_i
        - Src:             'sieve-ast.c:204,8'
          Dst:             array_idx_i
    - functionName:    sieve_ast_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:192,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_ast_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_get_space_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:176,8'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-ast.c:177,2'
          Dst:             i_panic
    - functionName:    sieve_ast_extensions_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:162,9'
          Dst:             array_get_i
    - 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:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_ast_extension_link
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_get_i
        - array_idx_get_space_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:143,8'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-ast.c:144,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:149,15'
          Dst:             array_get_i
        - Src:             'sieve-ast.c:156,2'
          Dst:             array_append_i
    - functionName:    sieve_ast_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    40
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ast_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          138
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
        - pool_unref
        - sieve_script_unref
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:91,2'
          Dst:             i_panic
        - Src:             'sieve-ast.c:97,2'
          Dst:             sieve_script_unref
        - Src:             'sieve-ast.c:100,10'
          Dst:             array_get_i
        - Src:             'sieve-ast.c:108,2'
          Dst:             pool_unref
    - functionName:    sieve_ast_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_ast_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-ast.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          67
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_ast_node_create
        - sieve_extensions_get_count
        - sieve_script_ref
        - sieve_script_svinst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-ast.c:62,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-ast.c:63,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-ast.c:63,8'
          Dst:             p_malloc
        - Src:             'sieve-ast.c:68,2'
          Dst:             sieve_script_ref
        - Src:             'sieve-ast.c:69,16'
          Dst:             sieve_script_svinst
        - Src:             'sieve-ast.c:71,14'
          Dst:             sieve_ast_node_create
        - Src:             'sieve-ast.c:74,14'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-ast.c:75,2'
          Dst:             array_create_i
        - Src:             'sieve-ast.c:76,2'
          Dst:             array_create_i
    - functionName:    sieve_binary_extension_create_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_set_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:167,14'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             malloc_multiply_check
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             p_malloc
        - Src:             './sieve-binary-private.h:177,2'
          Dst:             array_idx_set_i
        - Src:             './sieve-binary-private.h:178,2'
          Dst:             array_idx_set_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:    7
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    buffer_get_used_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 182
      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/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:    sieve_binary_extensions_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 605
      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:             'sieve-binary.c:605,14'
          Dst:             array_count_i
    - functionName:    sieve_binary_extension_get_index
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_extension_get_reg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:598,3'
          Dst:             sieve_binary_extension_get_reg
    - functionName:    sieve_binary_extension_get_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_binary_extension_create_reg
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:191,21'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:193,4'
          Dst:             array_idx_i
        - Src:             './sieve-binary-private.h:201,10'
          Dst:             sieve_binary_extension_create_reg
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_binary_extension_get_by_index
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:585,19'
          Dst:             array_count_i
        - Src:             'sieve-binary.c:586,10'
          Dst:             array_idx_i
    - functionName:    sieve_binary_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - sieve_binary_extension_create_reg
        - sieve_binary_extension_get_reg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:212,14'
          Dst:             sieve_binary_extension_get_reg
        - Src:             './sieve-binary-private.h:213,10'
          Dst:             sieve_binary_extension_create_reg
        - Src:             './sieve-binary-private.h:218,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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_binary_extension_link
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:577,9'
          Dst:             sieve_binary_extension_register
    - functionName:    sieve_binary_extension_get_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_block_get
        - sieve_binary_extension_get_reg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:564,3'
          Dst:             sieve_binary_extension_get_reg
        - Src:             'sieve-binary.c:566,2'
          Dst:             i_panic
        - Src:             'sieve-binary.c:571,9'
          Dst:             sieve_binary_block_get
    - functionName:    sieve_binary_block_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_block_fetch
        - sieve_binary_block_index
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:389,38'
          Dst:             sieve_binary_block_index
        - Src:             'sieve-binary.c:394,31'
          Dst:             sieve_binary_block_fetch
    - functionName:    sieve_binary_block_index
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:141,12'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:144,11'
          Dst:             array_idx_i
    - functionName:    sieve_binary_block_fetch
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_create_dynamic
        - sieve_binary_load_block
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:376,8'
          Dst:             sieve_binary_load_block
        - Src:             'sieve-binary.c:379,18'
          Dst:             buffer_create_dynamic
    - functionName:    sieve_binary_extension_create_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_block_create
        - sieve_binary_extension_get_reg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:546,3'
          Dst:             sieve_binary_extension_get_reg
        - Src:             'sieve-binary.c:548,2'
          Dst:             i_panic
        - Src:             'sieve-binary.c:550,11'
          Dst:             sieve_binary_block_create
    - functionName:    sieve_binary_block_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_block_count
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:340,20'
          Dst:             sieve_binary_block_count
        - Src:             'sieve-binary.c:343,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary.c:343,11'
          Dst:             p_malloc
        - Src:             'sieve-binary.c:344,17'
          Dst:             buffer_create_dynamic
        - Src:             'sieve-binary.c:348,2'
          Dst:             array_append_i
    - functionName:    sieve_binary_block_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:335,9'
          Dst:             array_count_i
    - functionName:    sieve_binary_extension_set
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_extension_get_reg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:530,3'
          Dst:             sieve_binary_extension_get_reg
    - functionName:    sieve_binary_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_extension_get_reg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:516,3'
          Dst:             sieve_binary_extension_get_reg
    - functionName:    sieve_binary_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_extension_get_reg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:505,3'
          Dst:             sieve_binary_extension_get_reg
    - functionName:    sieve_binary_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:486,9'
          Dst:             array_get_i
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_binary_up_to_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          244
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_i
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_block_get
        - sieve_script_binary_read_metadata
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:442,2'
          Dst:             i_panic
        - Src:             'sieve-binary.c:444,11'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary.c:448,13'
          Dst:             sieve_script_binary_read_metadata
        - Src:             'sieve-binary.c:451,4'
          Dst:             event_want_level
        - Src:             'sieve-binary.c:451,4'
          Dst:             e_debug
        - Src:             'sieve-binary.c:451,4'
          Dst:             event_send_abort
        - Src:             'sieve-binary.c:454,4'
          Dst:             event_want_level
        - Src:             'sieve-binary.c:454,4'
          Dst:             e_debug
        - Src:             'sieve-binary.c:454,4'
          Dst:             event_send_abort
        - Src:             'sieve-binary.c:460,9'
          Dst:             array_get_i
        - Src:             'sieve-binary.c:467,4'
          Dst:             event_want_level
        - Src:             'sieve-binary.c:467,4'
          Dst:             e_debug
        - Src:             'sieve-binary.c:467,4'
          Dst:             event_send_abort
    - functionName:    _sieve_binary_block_get_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:153,9'
          Dst:             buffer_get_used_size
    - functionName:    sieve_binary_block_get_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_block_get_size
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:426,9'
          Dst:             _sieve_binary_block_get_size
    - functionName:    sieve_binary_block_get_id
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_block_get_binary
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_block_get_buffer
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_block_fetch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:407,31'
          Dst:             sieve_binary_block_fetch
    - functionName:    sieve_binary_block_clear
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 403
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:402,2'
          Dst:             buffer_set_used_size
    - functionName:    sieve_binary_block_create_id
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_set_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:358,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary.c:358,11'
          Dst:             p_malloc
        - Src:             'sieve-binary.c:360,2'
          Dst:             array_idx_set_i
    - functionName:    sieve_binfile_from_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strconcat
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:326,9'
          Dst:             t_strconcat
    - functionName:    sieve_binary_script_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_script_label
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:317,10'
          Dst:             sieve_script_label
    - functionName:    sieve_binary_script_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_script_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:311,10'
          Dst:             sieve_script_name
    - functionName:    sieve_binary_stat
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:304,2'
          Dst:             i_panic
    - functionName:    sieve_binary_mtime
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:298,2'
          Dst:             i_panic
    - functionName:    sieve_binary_svinst
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_source
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_script_label
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:286,10'
          Dst:             sieve_script_label
    - functionName:    sieve_binary_loaded
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 280
      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:    sieve_binary_saved
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      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:    sieve_binary_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_set_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_check_resource_usage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:251,8'
          Dst:             sieve_binary_check_resource_usage
    - functionName:    sieve_binary_check_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_get_resource_usage
        - sieve_resource_usage_is_excessive
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:212,2'
          Dst:             sieve_binary_get_resource_usage
        - Src:             'sieve-binary.c:214,6'
          Dst:             sieve_resource_usage_is_excessive
    - functionName:    sieve_binary_get_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_resource_usage_add
        - sieve_resource_usage_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:202,2'
          Dst:             sieve_resource_usage_init
        - Src:             'sieve-binary.c:204,2'
          Dst:             sieve_resource_usage_add
    - functionName:    sieve_binary_record_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_binary_check_resource_usage
        - sieve_binary_get_resource_usage
        - sieve_resource_usage_add
        - sieve_resource_usage_get_summary
        - sieve_resource_usage_is_high
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:228,7'
          Dst:             sieve_resource_usage_is_high
        - Src:             'sieve-binary.c:231,2'
          Dst:             sieve_resource_usage_add
        - Src:             'sieve-binary.c:234,2'
          Dst:             sieve_binary_get_resource_usage
        - Src:             'sieve-binary.c:236,2'
          Dst:             event_want_level
        - Src:             'sieve-binary.c:236,2'
          Dst:             sieve_resource_usage_get_summary
        - Src:             'sieve-binary.c:236,2'
          Dst:             e_debug
        - Src:             'sieve-binary.c:236,2'
          Dst:             event_send_abort
        - Src:             'sieve-binary.c:239,9'
          Dst:             sieve_binary_check_resource_usage
    - functionName:    sieve_binary_close
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_file_close
        - sieve_binary_unref
        - sieve_binary_update_resource_usage
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:183,2'
          Dst:             sieve_binary_file_close
        - Src:             'sieve-binary.c:184,2'
          Dst:             sieve_binary_update_resource_usage
        - Src:             'sieve-binary.c:185,2'
          Dst:             sieve_binary_unref
    - functionName:    sieve_binary_update_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_file_update_resource_usage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:147,9'
          Dst:             sieve_binary_file_update_resource_usage
    - functionName:    sieve_binary_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - i_panic
        - pool_unref
        - sieve_binary_extensions_free
        - sieve_binary_file_close
        - sieve_binary_update_resource_usage
        - sieve_script_unref
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:161,2'
          Dst:             i_panic
        - Src:             'sieve-binary.c:165,2'
          Dst:             sieve_binary_file_close
        - Src:             'sieve-binary.c:166,2'
          Dst:             sieve_binary_update_resource_usage
        - Src:             'sieve-binary.c:167,2'
          Dst:             sieve_binary_extensions_free
        - Src:             'sieve-binary.c:169,2'
          Dst:             sieve_script_unref
        - Src:             'sieve-binary.c:171,2'
          Dst:             event_unref
        - Src:             'sieve-binary.c:172,2'
          Dst:             pool_unref
    - functionName:    sieve_binary_extensions_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:131,9'
          Dst:             array_get_i
    - 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:    sieve_binary_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_create_new
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_block_create
        - sieve_binary_create
        - sieve_binary_update_event
        - sieve_script_binary_write_metadata
        - sieve_script_svinst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:103,23'
          Dst:             sieve_script_svinst
        - Src:             'sieve-binary.c:103,3'
          Dst:             sieve_binary_create
        - Src:             'sieve-binary.c:107,2'
          Dst:             sieve_binary_update_event
        - Src:             'sieve-binary.c:110,11'
          Dst:             sieve_binary_block_create
        - Src:             'sieve-binary.c:111,2'
          Dst:             sieve_script_binary_write_metadata
        - Src:             'sieve-binary.c:115,9'
          Dst:             sieve_binary_block_create
    - functionName:    sieve_binary_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          155
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - event_create
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_extensions_get_count
        - sieve_extensions_get_preloaded
        - sieve_script_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:65,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-binary.c:66,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary.c:66,9'
          Dst:             p_malloc
        - Src:             'sieve-binary.c:76,3'
          Dst:             sieve_script_ref
        - Src:             'sieve-binary.c:78,16'
          Dst:             event_create
        - Src:             'sieve-binary.c:80,14'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-binary.c:82,2'
          Dst:             array_create_i
        - Src:             'sieve-binary.c:83,2'
          Dst:             array_create_i
        - Src:             'sieve-binary.c:84,2'
          Dst:             array_create_i
        - Src:             'sieve-binary.c:86,2'
          Dst:             array_create_i
        - Src:             'sieve-binary.c:89,18'
          Dst:             sieve_extensions_get_preloaded
    - functionName:    sieve_binary_update_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_set_append_log_prefix
        - sieve_script_name
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary.c:42,17'
          Dst:             t_strdup_printf
        - Src:             'sieve-binary.c:41,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-binary.c:46,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-binary.c:44,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-binary.c:51,6'
          Dst:             sieve_script_name
        - Src:             'sieve-binary.c:50,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-binary.c:48,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-binary.c:53,3'
          Dst:             event_set_append_log_prefix
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_binary_file_write_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - pwrite
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:174,9'
          Dst:             pwrite
        - Src:             'sieve-binary-file.c:176,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:181,3'
          Dst:             e_error
    - 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:    5
      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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_binary_extension_create_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_set_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:167,14'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             malloc_multiply_check
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             p_malloc
        - Src:             './sieve-binary-private.h:177,2'
          Dst:             array_idx_set_i
        - Src:             './sieve-binary-private.h:178,2'
          Dst:             array_idx_set_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:    4
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_binary_extension_get_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_binary_extension_create_reg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:191,21'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:193,4'
          Dst:             array_idx_i
        - Src:             './sieve-binary-private.h:201,10'
          Dst:             sieve_binary_extension_create_reg
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_binary_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - sieve_binary_extension_create_reg
        - sieve_binary_extension_get_reg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:212,14'
          Dst:             sieve_binary_extension_get_reg
        - Src:             './sieve-binary-private.h:213,10'
          Dst:             sieve_binary_extension_create_reg
        - Src:             './sieve-binary-private.h:218,3'
          Dst:             array_append_i
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_can_update
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - access
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:68,6'
          Dst:             strrchr
        - Src:             'sieve-binary-file.c:72,13'
          Dst:             t_strdup_until
        - Src:             'sieve-binary-file.c:74,10'
          Dst:             access
    - functionName:    access
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _read_extensions
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          198
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_extension_register
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_extension_get_by_name
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:822,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-file.c:826,3'
          Dst:             t_push
        - Src:             'sieve-binary-file.c:831,8'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-binary-file.c:834,20'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:833,11'
          Dst:             sieve_extension_get_by_name
        - Src:             'sieve-binary-file.c:837,6'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:837,6'
          Dst:             str_sanitize
        - Src:             'sieve-binary-file.c:837,6'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:844,12'
          Dst:             sieve_binary_extension_register
        - Src:             'sieve-binary-file.c:845,11'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-file.c:846,11'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-file.c:849,7'
          Dst:             event_want_level
        - Src:             'sieve-binary-file.c:849,7'
          Dst:             e_debug
        - Src:             'sieve-binary-file.c:849,7'
          Dst:             event_send_abort
        - Src:             'sieve-binary-file.c:861,5'
          Dst:             t_pop
        - Src:             'sieve-binary-file.c:861,5'
          Dst:             i_panic
    - functionName:    _read_block_index_record
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          82
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - sieve_binary_block_create_id
        - sieve_binary_file_load_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:791,3'
          Dst:             sieve_binary_file_load_data
        - Src:             'sieve-binary-file.c:796,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:802,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:808,10'
          Dst:             sieve_binary_block_create_id
    - functionName:    sieve_binary_file_load_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_file_read
        - t_malloc_no0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:722,15'
          Dst:             t_malloc_no0
        - Src:             'sieve-binary-file.c:724,6'
          Dst:             sieve_binary_file_read
    - functionName:    sieve_binary_file_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          156
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - lseek
        - read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:682,6'
          Dst:             lseek
        - Src:             'sieve-binary-file.c:683,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:691,9'
          Dst:             read
        - Src:             'sieve-binary-file.c:694,5'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:698,5'
          Dst:             e_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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_file_read_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          228
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - e_error
        - e_log
        - pread
        - sieve_binary_can_update
        - sieve_error_args_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:89,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:91,9'
          Dst:             pread
        - Src:             'sieve-binary-file.c:93,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:98,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:103,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:113,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:118,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:138,8'
          Dst:             sieve_binary_can_update
        - Src:             'sieve-binary-file.c:141,3'
          Dst:             e_log
        - Src:             'sieve-binary-file.c:150,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:157,3'
          Dst:             e_error
    - 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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_get_used_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 182
      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:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _save_full
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - o_stream_send
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:258,9'
          Dst:             o_stream_send
        - Src:             'sieve-binary-file.c:260,4'
          Dst:             strerror
        - Src:             'sieve-binary-file.c:260,4'
          Dst:             e_error
    - functionName:    strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _save_skip
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - o_stream_seek
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:217,7'
          Dst:             o_stream_seek
        - Src:             'sieve-binary-file.c:218,3'
          Dst:             strerror
        - Src:             'sieve-binary-file.c:218,3'
          Dst:             e_error
    - functionName:    _save_block_index_record
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _save_full
        - buffer_get_used_size
        - e_error
        - sieve_binary_block_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:330,10'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-file.c:335,16'
          Dst:             buffer_get_used_size
        - Src:             'sieve-binary-file.c:339,7'
          Dst:             _save_full
        - Src:             'sieve-binary-file.c:340,3'
          Dst:             e_error
    - functionName:    _save_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _save_aligned
        - buffer_get_data
        - sieve_binary_block_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:307,10'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-file.c:311,9'
          Dst:             buffer_get_data
        - Src:             'sieve-binary-file.c:316,7'
          Dst:             _save_aligned
        - Src:             'sieve-binary-file.c:320,9'
          Dst:             _save_aligned
    - functionName:    _save_aligned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - _save_full
        - _save_skip
        - o_stream_cork
        - o_stream_uncork
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:280,2'
          Dst:             o_stream_cork
        - Src:             'sieve-binary-file.c:284,8'
          Dst:             _save_skip
        - Src:             'sieve-binary-file.c:289,7'
          Dst:             _save_full
        - Src:             'sieve-binary-file.c:292,2'
          Dst:             o_stream_uncork
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    _save_skip_aligned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - o_stream_seek
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:234,7'
          Dst:             o_stream_seek
        - Src:             'sieve-binary-file.c:235,3'
          Dst:             strerror
        - Src:             'sieve-binary-file.c:235,3'
          Dst:             e_error
    - functionName:    sieve_binary_file_update_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_check_resource_usage
        - sieve_binary_get_resource_usage
        - sieve_resource_usage_init
        - sieve_resource_usage_is_high
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:195,2'
          Dst:             sieve_binary_get_resource_usage
        - Src:             'sieve-binary-file.c:199,6'
          Dst:             sieve_resource_usage_is_high
        - Src:             'sieve-binary-file.c:204,2'
          Dst:             sieve_resource_usage_init
        - Src:             'sieve-binary-file.c:207,8'
          Dst:             sieve_binary_check_resource_usage
    - functionName:    sieve_binary_save_to_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          227
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - _save_aligned
        - _save_block
        - _save_block_index_record
        - _save_skip_aligned
        - array_count_i
        - array_idx_i
        - e_error
        - i_panic
        - o_stream_finish
        - o_stream_get_error
        - o_stream_seek
        - sieve_binary_block_clear
        - sieve_binary_block_count
        - sieve_binary_block_get
        - sieve_binary_emit_cstring
        - sieve_binary_emit_unsigned
        - sieve_binary_file_update_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:356,14'
          Dst:             sieve_binary_block_count
        - Src:             'sieve-binary-file.c:367,2'
          Dst:             sieve_binary_file_update_header
        - Src:             'sieve-binary-file.c:369,7'
          Dst:             _save_aligned
        - Src:             'sieve-binary-file.c:370,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:376,7'
          Dst:             _save_skip_aligned
        - Src:             'sieve-binary-file.c:384,14'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-file.c:385,2'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:386,2'
          Dst:             sieve_binary_block_clear
        - Src:             'sieve-binary-file.c:388,14'
          Dst:             array_count_i
        - Src:             'sieve-binary-file.c:389,2'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-file.c:393,4'
          Dst:             array_idx_i
        - Src:             'sieve-binary-file.c:395,3'
          Dst:             sieve_binary_emit_cstring
        - Src:             'sieve-binary-file.c:397,3'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-file.c:399,3'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-file.c:405,8'
          Dst:             _save_block
        - Src:             'sieve-binary-file.c:410,2'
          Dst:             o_stream_seek
        - Src:             'sieve-binary-file.c:412,8'
          Dst:             _save_block_index_record
        - Src:             'sieve-binary-file.c:416,6'
          Dst:             o_stream_finish
        - Src:             'sieve-binary-file.c:417,3'
          Dst:             o_stream_get_error
        - Src:             'sieve-binary-file.c:417,3'
          Dst:             e_error
    - 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:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_binary_file_do_update_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - file_lock_free
        - file_wait_lock
        - sieve_binary_file_read_header
        - sieve_binary_file_update_header
        - sieve_binary_file_write_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:1011,8'
          Dst:             file_wait_lock
        - Src:             'sieve-binary-file.c:1014,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:1019,8'
          Dst:             sieve_binary_file_read_header
        - Src:             'sieve-binary-file.c:1021,3'
          Dst:             sieve_binary_file_update_header
        - Src:             'sieve-binary-file.c:1022,9'
          Dst:             sieve_binary_file_write_header
        - Src:             'sieve-binary-file.c:1026,2'
          Dst:             file_lock_free
    - functionName:    sieve_binary_fd_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - open
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-binary-file.c:575,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-binary-file.c:573,7'
          Dst:             open
        - Src:             'sieve-binary-file.c:575,11'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:580,4'
          Dst:             eacces_error_get
        - Src:             'sieve-binary-file.c:580,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:586,4'
          Dst:             e_error
    - functionName:    sieve_binary_file_update_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          143
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - e_error
        - i_panic
        - sieve_binary_fd_open
        - sieve_binary_file_close
        - sieve_binary_file_do_update_resource_usage
        - sieve_binary_save
        - sieve_error_args_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:1036,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:1038,2'
          Dst:             sieve_binary_file_close
        - Src:             'sieve-binary-file.c:1043,10'
          Dst:             sieve_binary_save
        - Src:             'sieve-binary-file.c:1047,7'
          Dst:             sieve_binary_fd_open
        - Src:             'sieve-binary-file.c:1049,3'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:1053,8'
          Dst:             sieve_binary_file_do_update_resource_usage
        - Src:             'sieve-binary-file.c:1055,2'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:1057,6'
          Dst:             close
        - Src:             'sieve-binary-file.c:1058,3'
          Dst:             e_error
    - functionName:    sieve_binary_file_close
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - e_error
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:660,7'
          Dst:             close
        - Src:             'sieve-binary-file.c:661,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:666,2'
          Dst:             pool_unref
    - functionName:    sieve_binary_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_do_save
        - sieve_binary_update_event
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:555,2'
          Dst:             sieve_binary_update_event
        - Src:             'sieve-binary-file.c:556,8'
          Dst:             sieve_binary_do_save
        - Src:             'sieve-binary-file.c:557,2'
          Dst:             sieve_binary_update_event
    - 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:    51
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_do_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          512
      EdgeCount:       110
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - array_get_i
        - close
        - e_debug
        - e_error
        - eacces_error_get_creating
        - event_send_abort
        - event_want_level
        - i_panic
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_ignore_last_errors
        - p_strdup
        - rename
        - safe_mkstemp_hostpid
        - sieve_binary_save_to_stream
        - sieve_error_args_init
        - str_append
        - str_append_c
        - str_c
        - strcmp
        - t_str_new
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:435,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:438,39'
          Dst:             strcmp
        - Src:             'sieve-binary-file.c:439,3'
          Dst:             event_want_level
        - Src:             'sieve-binary-file.c:439,3'
          Dst:             e_debug
        - Src:             'sieve-binary-file.c:439,3'
          Dst:             event_send_abort
        - Src:             'sieve-binary-file.c:445,14'
          Dst:             t_str_new
        - Src:             'sieve-binary-file.c:446,2'
          Dst:             str_append
        - Src:             'sieve-binary-file.c:447,2'
          Dst:             str_append_c
        - Src:             'sieve-binary-file.c:448,7'
          Dst:             safe_mkstemp_hostpid
        - Src:             'sieve-binary-file.c:450,7'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:451,4'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:451,4'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-binary-file.c:451,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:457,4'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:457,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:466,9'
          Dst:             array_get_i
        - Src:             'sieve-binary-file.c:473,4'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:480,11'
          Dst:             o_stream_create_fd
        - Src:             'sieve-binary-file.c:481,7'
          Dst:             sieve_binary_save_to_stream
        - Src:             'sieve-binary-file.c:484,3'
          Dst:             o_stream_ignore_last_errors
        - Src:             'sieve-binary-file.c:486,2'
          Dst:             o_stream_destroy
        - Src:             'sieve-binary-file.c:489,6'
          Dst:             close
        - Src:             'sieve-binary-file.c:490,3'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:490,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:496,28'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:496,21'
          Dst:             rename
        - Src:             'sieve-binary-file.c:497,7'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:498,4'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-binary-file.c:498,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:503,4'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:503,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:514,14'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:514,7'
          Dst:             unlink
        - Src:             'sieve-binary-file.c:514,39'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:515,4'
          Dst:             str_c
        - Src:             'sieve-binary-file.c:515,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:521,17'
          Dst:             p_strdup
        - Src:             'sieve-binary-file.c:525,10'
          Dst:             array_get_i
        - Src:             'sieve-binary-file.c:535,5'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:541,21'
          Dst:             unlink
        - Src:             'sieve-binary-file.c:541,41'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:542,4'
          Dst:             e_error
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    rename
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    40
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    35
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_check_executable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_error_args_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:980,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:984,3'
          Dst:             event_want_level
        - Src:             'sieve-binary-file.c:984,3'
          Dst:             e_debug
        - Src:             'sieve-binary-file.c:984,3'
          Dst:             event_send_abort
    - functionName:    _sieve_binary_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          198
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - _read_block_index_record
        - _read_extensions
        - e_error
        - i_panic
        - sieve_binary_block_get
        - sieve_binary_file_read_header
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:878,8'
          Dst:             sieve_binary_file_read_header
        - Src:             'sieve-binary-file.c:887,3'
          Dst:             t_push
        - Src:             'sieve-binary-file.c:888,9'
          Dst:             _read_block_index_record
        - Src:             'sieve-binary-file.c:890,5'
          Dst:             t_pop
        - Src:             'sieve-binary-file.c:890,5'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:900,2'
          Dst:             t_push
        - Src:             'sieve-binary-file.c:901,15'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-file.c:905,21'
          Dst:             _read_extensions
        - Src:             'sieve-binary-file.c:907,5'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:912,4'
          Dst:             t_pop
        - Src:             'sieve-binary-file.c:912,4'
          Dst:             i_panic
    - functionName:    sieve_binary_file_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          163
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - close
        - e_error
        - fstat
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - sieve_binary_fd_open
        - sieve_error_args_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:604,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:606,7'
          Dst:             sieve_binary_fd_open
        - Src:             'sieve-binary-file.c:610,6'
          Dst:             fstat
        - Src:             'sieve-binary-file.c:611,7'
          Dst:             __errno_location
        - Src:             'sieve-binary-file.c:614,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:622,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:629,7'
          Dst:             close
        - Src:             'sieve-binary-file.c:630,4'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:639,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-binary-file.c:640,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary-file.c:640,9'
          Dst:             p_malloc
        - Src:             'sieve-binary-file.c:642,15'
          Dst:             p_strdup
    - 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:    60
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          194
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - _sieve_binary_open
        - array_get_i
        - event_set_append_log_prefix
        - i_panic
        - p_strdup
        - sieve_binary_activate
        - sieve_binary_create
        - sieve_binary_file_open
        - sieve_binary_unref
        - sieve_error_args_init
        - sieve_script_svinst
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:930,2'
          Dst:             sieve_script_svinst
        - Src:             'sieve-binary-file.c:930,2'
          Dst:             i_panic
        - Src:             'sieve-binary-file.c:932,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-binary-file.c:935,9'
          Dst:             sieve_binary_create
        - Src:             'sieve-binary-file.c:936,15'
          Dst:             p_strdup
        - Src:             'sieve-binary-file.c:938,6'
          Dst:             sieve_binary_file_open
        - Src:             'sieve-binary-file.c:939,3'
          Dst:             sieve_binary_unref
        - Src:             'sieve-binary-file.c:947,3'
          Dst:             t_strdup_printf
        - Src:             'sieve-binary-file.c:945,2'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-binary-file.c:949,7'
          Dst:             _sieve_binary_open
        - Src:             'sieve-binary-file.c:950,3'
          Dst:             sieve_binary_unref
        - Src:             'sieve-binary-file.c:954,2'
          Dst:             sieve_binary_activate
        - Src:             'sieve-binary-file.c:957,9'
          Dst:             array_get_i
        - Src:             'sieve-binary-file.c:966,4'
          Dst:             sieve_binary_unref
    - functionName:    sieve_binary_file_load_buffer
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - buffer_get_space_unsafe
        - sieve_binary_file_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:734,21'
          Dst:             buffer_create_dynamic
        - Src:             'sieve-binary-file.c:737,8'
          Dst:             buffer_get_space_unsafe
        - Src:             'sieve-binary-file.c:736,6'
          Dst:             sieve_binary_file_read
    - functionName:    sieve_binary_load_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          103
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - sieve_binary_file_load_buffer
        - sieve_binary_file_load_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-file.c:758,3'
          Dst:             sieve_binary_file_load_data
        - Src:             'sieve-binary-file.c:762,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:768,3'
          Dst:             e_error
        - Src:             'sieve-binary-file.c:774,17'
          Dst:             sieve_binary_file_load_buffer
        - Src:             'sieve-binary-file.c:777,3'
          Dst:             e_error
    - 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:             'dovecot/src/lib/mempool.h:119,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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:    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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_binary_extension_create_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_set_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:167,14'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             malloc_multiply_check
        - Src:             './sieve-binary-private.h:173,9'
          Dst:             p_malloc
        - Src:             './sieve-binary-private.h:177,2'
          Dst:             array_idx_set_i
        - Src:             './sieve-binary-private.h:178,2'
          Dst:             array_idx_set_i
    - functionName:    sieve_binary_extension_get_reg
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_binary_extension_create_reg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:191,21'
          Dst:             array_count_i
        - Src:             './sieve-binary-private.h:193,4'
          Dst:             array_idx_i
        - Src:             './sieve-binary-private.h:201,10'
          Dst:             sieve_binary_extension_create_reg
    - functionName:    buffer_get_used_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 182
      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:    sieve_binary_read_extension_object
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:389,2'
          Dst:             buffer_get_data
    - functionName:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_read_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_data
        - sieve_binary_extension_get_by_index
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:362,2'
          Dst:             buffer_get_data
        - Src:             'sieve-binary-code.c:371,9'
          Dst:             sieve_binary_extension_get_by_index
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_read_integer
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          161
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_get_data
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:297,2'
          Dst:             buffer_get_data
    - functionName:    sieve_binary_read_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_data
        - sieve_binary_read_unsigned
        - t_str_new_const
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:332,2'
          Dst:             buffer_get_data
        - Src:             'sieve-binary-code.c:334,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-code.c:347,12'
          Dst:             t_str_new_const
    - functionName:    sieve_binary_read_offset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_get_data
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:272,2'
          Dst:             buffer_get_data
    - functionName:    sieve_binary_read_code
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_get_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:252,2'
          Dst:             buffer_get_data
    - functionName:    sieve_binary_read_byte
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_get_data
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:234,2'
          Dst:             buffer_get_data
    - functionName:    sieve_binary_emit_extension_object
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_binary_emit_byte
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:206,3'
          Dst:             _sieve_binary_emit_byte
    - functionName:    _sieve_binary_emit_byte
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_emit_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:44,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    _sieve_binary_emit_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:38,2'
          Dst:             buffer_append
    - functionName:    sieve_binary_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - sieve_binary_extension_create_reg
        - sieve_binary_extension_get_reg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:212,14'
          Dst:             sieve_binary_extension_get_reg
        - Src:             './sieve-binary-private.h:213,10'
          Dst:             sieve_binary_extension_create_reg
        - Src:             './sieve-binary-private.h:218,3'
          Dst:             array_append_i
    - functionName:    sieve_binary_emit_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_emit_byte
        - i_panic
        - sieve_binary_extension_register
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:190,25'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:193,8'
          Dst:             sieve_binary_extension_register
        - Src:             'sieve-binary-code.c:195,2'
          Dst:             i_panic
        - Src:             'sieve-binary-code.c:197,2'
          Dst:             _sieve_binary_emit_byte
    - functionName:    _sieve_binary_block_get_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_used_size
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary-private.h:153,9'
          Dst:             buffer_get_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:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    sieve_binary_emit_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_emit_byte
        - sieve_binary_emit_dynamic_data
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:175,42'
          Dst:             str_data
        - Src:             'sieve-binary-code.c:176,27'
          Dst:             str_len
        - Src:             'sieve-binary-code.c:175,3'
          Dst:             sieve_binary_emit_dynamic_data
        - Src:             'sieve-binary-code.c:178,2'
          Dst:             _sieve_binary_emit_byte
    - functionName:    sieve_binary_emit_dynamic_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 157
      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:
        - _sieve_binary_emit_data
        - sieve_binary_emit_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:153,3'
          Dst:             sieve_binary_emit_integer
        - Src:             'sieve-binary-code.c:155,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    sieve_binary_emit_integer
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_emit_data
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:125,25'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:143,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    sieve_binary_emit_cstring
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_emit_byte
        - sieve_binary_emit_dynamic_data
        - strlen
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:165,27'
          Dst:             strlen
        - Src:             'sieve-binary-code.c:164,3'
          Dst:             sieve_binary_emit_dynamic_data
        - Src:             'sieve-binary-code.c:167,2'
          Dst:             _sieve_binary_emit_byte
    - functionName:    sieve_binary_resolve_offset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_update_data
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:104,29'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:109,2'
          Dst:             i_panic
        - Src:             'sieve-binary-code.c:110,2'
          Dst:             i_panic
        - Src:             'sieve-binary-code.c:117,2'
          Dst:             _sieve_binary_update_data
    - functionName:    _sieve_binary_update_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:52,2'
          Dst:             buffer_write
    - functionName:    sieve_binary_emit_offset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_emit_data
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:87,25'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:96,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    sieve_binary_update_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_update_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:79,2'
          Dst:             _sieve_binary_update_data
    - functionName:    sieve_binary_emit_byte
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_emit_data
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:68,25'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:70,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    sieve_binary_emit_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_binary_block_get_size
        - _sieve_binary_emit_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-code.c:58,25'
          Dst:             _sieve_binary_block_get_size
        - Src:             'sieve-binary-code.c:60,2'
          Dst:             _sieve_binary_emit_data
    - functionName:    sieve_validator_command_tag_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_validator_command_tag_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:542,10'
          Dst:             _sieve_validator_command_tag_get
    - functionName:    _sieve_validator_command_tag_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          183
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_i
        - array_is_created_i
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:510,6'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:511,10'
          Dst:             array_get_i
        - Src:             'sieve-validator.c:515,8'
          Dst:             strcasecmp
        - Src:             'sieve-validator.c:523,6'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:524,10'
          Dst:             array_get_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:    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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _tag_registration_is_unknown
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _unknown_tag_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:371,2'
          Dst:             i_unreached
    - functionName:    sieve_validator_register_unknown_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_validator_register_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:496,2'
          Dst:             _sieve_validator_register_tag
    - functionName:    _sieve_validator_register_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:396,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:396,8'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:403,21'
          Dst:             p_strdup
        - Src:             'sieve-validator.c:405,7'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:406,3'
          Dst:             array_create_i
        - Src:             'sieve-validator.c:408,2'
          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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:    sieve_validator_command_tag_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_validator_command_tag_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:553,9'
          Dst:             _sieve_validator_command_tag_get
    - functionName:    sieve_validate_test_list
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1493
      functionLinenumberEnd: 1534
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          241
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - sieve_ast_node_detach
        - sieve_errors_more_allowed
        - sieve_validate_command
        - sieve_validate_command_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1507,20'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-validator.c:1510,12'
          Dst:             sieve_validate_command_context
        - Src:             'sieve-validator.c:1511,4'
          Dst:             sieve_validate_command
        - Src:             'sieve-validator.c:1528,11'
          Dst:             sieve_ast_node_detach
    - functionName:    sieve_validate_command_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1397
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          197
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - sieve_ast_type_name
        - sieve_command_create
        - sieve_command_def_type_name
        - sieve_validator_error
        - sieve_validator_find_command_registration
        - sieve_validator_register_unknown_command
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1357,2'
          Dst:             i_panic
        - Src:             'sieve-validator.c:1360,12'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:1371,5'
          Dst:             sieve_command_def_type_name
        - Src:             'sieve-validator.c:1371,5'
          Dst:             sieve_ast_type_name
        - Src:             'sieve-validator.c:1371,5'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1380,24'
          Dst:             sieve_command_create
        - Src:             'sieve-validator.c:1386,3'
          Dst:             sieve_ast_type_name
        - Src:             'sieve-validator.c:1386,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1391,3'
          Dst:             sieve_validator_register_unknown_command
    - functionName:    sieve_validate_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1402
      functionLinenumberEnd: 1488
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          447
      EdgeCount:       124
      CyclomaticComplexity: 32
      functionsReached:
        - i_panic
        - sieve_errors_more_allowed
        - sieve_validate_arguments_context
        - sieve_validate_block
        - sieve_validate_command_arguments
        - sieve_validate_command_block
        - sieve_validate_command_subtests
        - sieve_validate_test_list
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1410,2'
          Dst:             i_panic
        - Src:             'sieve-validator.c:1416,9'
          Dst:             sieve_validate_command_arguments
        - Src:             'sieve-validator.c:1424,11'
          Dst:             sieve_validate_command_subtests
        - Src:             'sieve-validator.c:1426,16'
          Dst:             sieve_validate_command_subtests
        - Src:             'sieve-validator.c:1429,7'
          Dst:             sieve_validate_command_block
        - Src:             'sieve-validator.c:1449,22'
          Dst:             sieve_validate_arguments_context
        - Src:             'sieve-validator.c:1462,8'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-validator.c:1463,14'
          Dst:             sieve_validate_test_list
        - Src:             'sieve-validator.c:1481,18'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-validator.c:1482,13'
          Dst:             sieve_validate_block
    - functionName:    sieve_validate_command_arguments
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         88
      ICount:          585
      EdgeCount:       119
      CyclomaticComplexity: 33
      functionsReached:
        - _tag_registration_is_unknown
        - array_get_i
        - array_is_created_i
        - sieve_argument_create
        - sieve_command_type_name
        - sieve_validator_command_tag_get
        - sieve_validator_error
        - sieve_validator_register_unknown_tag
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1042,13'
          Dst:             sieve_validator_command_tag_get
        - Src:             'sieve-validator.c:1046,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1046,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1053,4'
          Dst:             sieve_validator_register_unknown_tag
        - Src:             'sieve-validator.c:1059,7'
          Dst:             _tag_registration_is_unknown
        - Src:             'sieve-validator.c:1066,19'
          Dst:             sieve_argument_create
        - Src:             'sieve-validator.c:1091,7'
          Dst:             strcmp
        - Src:             'sieve-validator.c:1092,7'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:1094,7'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:1097,6'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1097,6'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1129,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1129,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1146,3'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1146,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1157,6'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:1161,10'
          Dst:             array_get_i
    - functionName:    sieve_validate_command_subtests
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1306
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          558
      EdgeCount:       121
      CyclomaticComplexity: 28
      functionsReached:
        - sieve_command_type_name
        - sieve_validator_command_tag_exists
        - sieve_validator_error
        - sieve_validator_find_command_registration
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-validator.c:1211,2'
          Branch Sides:    []
        - Branch String:   'sieve-validator.c:1227,4'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-validator.c:1220,14'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:1230,5'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1230,5'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1240,9'
          Dst:             sieve_validator_command_tag_exists
        - Src:             'sieve-validator.c:1242,6'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1242,6'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1252,5'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1252,5'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1264,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1264,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1274,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1274,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1285,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1285,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1294,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:1294,4'
          Dst:             sieve_validator_error
    - functionName:    sieve_validate_command_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1334
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          131
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - sieve_validator_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1313,2'
          Dst:             i_panic
        - Src:             'sieve-validator.c:1317,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1325,3'
          Dst:             sieve_validator_error
    - functionName:    sieve_validate_arguments_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1182
      functionLinenumberEnd: 1200
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validate_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1606
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         82
      ICount:          451
      EdgeCount:       107
      CyclomaticComplexity: 27
      functionsReached:
        - array_get_i
        - i_panic
        - sieve_errors_more_allowed
        - sieve_extensions_get_all
        - sieve_validate_command
        - sieve_validate_command_context
        - sieve_validator_extension_load
        - strcasecmp
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1543,2'
          Dst:             t_push
        - Src:             'sieve-validator.c:1547,4'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-validator.c:1556,8'
          Dst:             strcasecmp
        - Src:             'sieve-validator.c:1565,12'
          Dst:             sieve_extensions_get_all
        - Src:             'sieve-validator.c:1568,13'
          Dst:             sieve_validator_extension_load
        - Src:             'sieve-validator.c:1574,13'
          Dst:             array_get_i
        - Src:             'sieve-validator.c:1590,5'
          Dst:             sieve_validate_command_context
        - Src:             'sieve-validator.c:1597,5'
          Dst:             sieve_validate_command
        - Src:             'sieve-validator.c:1602,4'
          Dst:             t_pop
        - Src:             'sieve-validator.c:1602,4'
          Dst:             i_panic
        - Src:             'sieve-validator.c:1605,2'
          Dst:             i_panic
    - functionName:    sieve_validator_extension_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          333
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - array_idx_get_space_i
        - i_panic
        - sieve_ast_extension_link
        - sieve_command_type_name
        - sieve_validator_error
        - sieve_validator_extensions_check_conficts
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:624,6'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:622,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:625,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:636,9'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-validator.c:638,3'
          Dst:             i_panic
        - Src:             'sieve-validator.c:651,4'
          Dst:             sieve_ast_extension_link
        - Src:             'sieve-validator.c:662,6'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:660,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:663,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:671,7'
          Dst:             sieve_validator_extensions_check_conficts
        - Src:             'sieve-validator.c:676,3'
          Dst:             sieve_ast_extension_link
    - functionName:    sieve_validator_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1704
      functionLinenumberEnd: 1720
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          57
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_script_location
        - sieve_logv
      functionUses:    124
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1715,3'
          Dst:             sieve_error_script_location
        - Src:             'sieve-validator.c:1718,2'
          Dst:             sieve_logv
    - functionName:    sieve_validator_extensions_check_conficts
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          270
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - array_get_modifiable_i
        - array_idx_get_space_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:572,12'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-validator.c:575,9'
          Dst:             array_get_modifiable_i
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    sieve_validator_find_command_registration
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:295,9'
          Dst:             hash_table_lookup
    - functionName:    sieve_validator_register_unknown_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_validator_register_command
        - i_panic
        - sieve_validator_find_command_registration
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:340,3'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:343,9'
          Dst:             _sieve_validator_register_command
        - Src:             'sieve-validator.c:346,3'
          Dst:             i_panic
    - functionName:    _sieve_validator_register_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_insert
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:305,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:305,3'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:310,2'
          Dst:             hash_table_insert
    - functionName:    _cmd_unknown_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:252,2'
          Dst:             i_unreached
    - functionName:    sieve_validator_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1727
      functionLinenumberEnd: 1744
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          57
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_script_location
        - sieve_logv
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1738,3'
          Dst:             sieve_error_script_location
        - Src:             'sieve-validator.c:1741,2'
          Dst:             sieve_logv
    - functionName:    sieve_validator_object_registry_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1693
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_set_context
        - sieve_validator_object_registry_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1690,3'
          Dst:             sieve_validator_object_registry_create
        - Src:             'sieve-validator.c:1692,2'
          Dst:             sieve_validator_extension_set_context
    - functionName:    sieve_validator_object_registry_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1672
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1675,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:1675,3'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:1678,2'
          Dst:             array_create_i
    - functionName:    sieve_validator_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:792,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_validator_object_registry_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1651
      functionLinenumberEnd: 1668
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - strcasecmp
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1654,18'
          Dst:             array_count_i
        - Src:             'sieve-validator.c:1656,4'
          Dst:             array_idx_i
        - Src:             'sieve-validator.c:1658,7'
          Dst:             strcasecmp
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    sieve_validator_object_registry_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1640
      functionLinenumberEnd: 1646
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1643,8'
          Dst:             array_append_space_i
    - functionName:    sieve_validator_object_registry_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1631
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_get_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1633,3'
          Dst:             sieve_validator_extension_get_context
    - functionName:    sieve_validator_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:801,38'
          Dst:             array_count_i
        - Src:             'sieve-validator.c:804,8'
          Dst:             array_idx_i
    - functionName:    sieve_validator_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_root
        - sieve_validate_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:1611,38'
          Dst:             sieve_ast_root
        - Src:             'sieve-validator.c:1611,9'
          Dst:             sieve_validate_block
    - functionName:    sieve_validate_tag_parameter
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      bool
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          213
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - sieve_ast_argument_type_name
        - sieve_command_type_name
        - sieve_validator_argument_activate
        - sieve_validator_error
        - t_strdup_printf
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:973,2'
          Dst:             i_panic
        - Src:             'sieve-validator.c:977,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:979,3'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:979,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'sieve-validator.c:979,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:995,4'
          Dst:             t_strdup_printf
        - Src:             'sieve-validator.c:997,3'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:997,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'sieve-validator.c:997,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'sieve-validator.c:997,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:1009,7'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_validator_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_argument_default_activate
      functionUses:    66
      BranchProfiles:
        - Branch String:   'sieve-validator.c:912,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-validator.c:934,9'
          Dst:             sieve_validator_argument_default_activate
    - functionName:    sieve_validator_argument_default_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          114
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_argument_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:851,19'
          Dst:             sieve_argument_create
    - functionName:    sieve_validate_positional_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          110
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_ast_argument_type_name
        - sieve_command_type_name
        - sieve_validator_error
      functionUses:    63
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:945,2'
          Dst:             i_panic
        - Src:             'sieve-validator.c:951,3'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:951,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'sieve-validator.c:951,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'sieve-validator.c:951,3'
          Dst:             sieve_validator_error
    - functionName:    sieve_validator_argument_activate_super
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validator_argument_default_activate
      functionUses:    7
      BranchProfiles:
        - Branch String:   'sieve-validator.c:878,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-validator.c:897,9'
          Dst:             sieve_validator_argument_default_activate
    - functionName:    sieve_validator_argument_override
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          108
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:828,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:828,9'
          Dst:             p_malloc
    - functionName:    sieve_validator_extension_loaded
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:775,38'
          Dst:             array_count_i
        - Src:             'sieve-validator.c:778,8'
          Dst:             array_idx_i
    - functionName:    sieve_validator_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_get_space_i
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:763,8'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-validator.c:764,2'
          Dst:             i_panic
    - functionName:    sieve_validator_extension_load_implicit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_extension_get_by_name
        - sieve_validator_extension_load
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:743,8'
          Dst:             sieve_extension_get_by_name
        - Src:             'sieve-validator.c:748,7'
          Dst:             sieve_validator_extension_load
    - functionName:    sieve_validator_extension_load_by_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          245
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - sieve_command_type_name
        - sieve_extension_get_by_name
        - sieve_validator_error
        - sieve_validator_extension_load
        - str_sanitize
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:691,8'
          Dst:             sieve_extension_get_by_name
        - Src:             'sieve-validator.c:700,8'
          Dst:             strcasecmp
        - Src:             'sieve-validator.c:706,8'
          Dst:             strcasecmp
        - Src:             'sieve-validator.c:712,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:712,4'
          Dst:             str_sanitize
        - Src:             'sieve-validator.c:712,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:721,4'
          Dst:             sieve_command_type_name
        - Src:             'sieve-validator.c:721,4'
          Dst:             str_sanitize
        - Src:             'sieve-validator.c:721,4'
          Dst:             sieve_validator_error
        - Src:             'sieve-validator.c:731,7'
          Dst:             sieve_validator_extension_load
    - functionName:    sieve_validator_register_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_validator_register_tag
        - array_append_i
        - array_create_i
        - array_is_created_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:475,3'
          Dst:             _sieve_validator_register_tag
        - Src:             'sieve-validator.c:479,4'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:479,4'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:484,8'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:485,4'
          Dst:             array_create_i
        - Src:             'sieve-validator.c:487,3'
          Dst:             array_append_i
    - functionName:    sieve_validator_register_external_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_validator_register_command
        - _sieve_validator_register_tag
        - sieve_validator_find_command_registration
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:457,3'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:460,13'
          Dst:             _sieve_validator_register_command
        - Src:             'sieve-validator.c:464,2'
          Dst:             _sieve_validator_register_tag
    - 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:             'dovecot/src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    sieve_validator_register_persistent_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          152
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - _sieve_validator_register_command
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_memcpy
        - malloc_multiply_check
        - p_malloc
        - sieve_validator_find_command_registration
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:419,4'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:423,14'
          Dst:             _sieve_validator_register_command
        - Src:             'sieve-validator.c:429,8'
          Dst:             array_is_created_i
        - Src:             'sieve-validator.c:430,4'
          Dst:             array_create_i
        - Src:             'sieve-validator.c:436,4'
          Dst:             i_memcpy
        - Src:             'sieve-validator.c:442,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:442,9'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:447,3'
          Dst:             array_append_i
    - functionName:    sieve_validator_register_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_validator_register_command
        - sieve_validator_find_command_registration
      functionUses:    63
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:320,3'
          Dst:             sieve_validator_find_command_registration
        - Src:             'sieve-validator.c:324,13'
          Dst:             _sieve_validator_register_command
    - functionName:    sieve_validator_failed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validator_compile_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validator_svinst
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validator_script_cause
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_cause
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:224,9'
          Dst:             sieve_script_cause
    - functionName:    sieve_validator_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validator_ast
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 214
      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:    sieve_validator_error_handler
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_validator_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      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:    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:    sieve_validator_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          112
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - hash_table_destroy
        - pool_unref
        - sieve_ast_unref
        - sieve_error_handler_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:177,2'
          Dst:             hash_table_destroy
        - Src:             'sieve-validator.c:178,2'
          Dst:             sieve_ast_unref
        - Src:             'sieve-validator.c:180,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-validator.c:183,10'
          Dst:             array_get_i
        - Src:             'sieve-validator.c:190,2'
          Dst:             pool_unref
    - functionName:    sieve_validator_register_core_tests
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_register_command
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:273,3'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_validator_register_core_commands
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_register_command
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:284,3'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_validator_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-validator.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          182
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - hash_table_create
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_ast_ref
        - sieve_ast_script
        - sieve_error_handler_ref
        - sieve_extensions_get_count
        - sieve_extensions_get_preloaded
        - sieve_script_svinst
        - sieve_validator_register_core_commands
        - sieve_validator_register_core_tests
        - strcase_hash
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-validator.c:125,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-validator.c:126,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-validator.c:126,11'
          Dst:             p_malloc
        - Src:             'sieve-validator.c:130,2'
          Dst:             sieve_error_handler_ref
        - Src:             'sieve-validator.c:133,2'
          Dst:             sieve_ast_ref
        - Src:             'sieve-validator.c:135,19'
          Dst:             sieve_ast_script
        - Src:             'sieve-validator.c:136,19'
          Dst:             sieve_script_svinst
        - Src:             'sieve-validator.c:150,2'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-validator.c:150,2'
          Dst:             array_create_i
        - Src:             'sieve-validator.c:154,2'
          Dst:             hash_table_create
        - Src:             'sieve-validator.c:154,2'
          Dst:             strcase_hash
        - Src:             'sieve-validator.c:154,2'
          Dst:             strcasecmp
        - Src:             'sieve-validator.c:155,2'
          Dst:             sieve_validator_register_core_commands
        - Src:             'sieve-validator.c:156,2'
          Dst:             sieve_validator_register_core_tests
        - Src:             'sieve-validator.c:160,3'
          Dst:             sieve_extensions_get_preloaded
    - 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:    sieve_generator_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          62
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_criticalv
        - sieve_error_script_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:571,3'
          Dst:             sieve_error_script_location
        - Src:             'sieve-generator.c:574,2'
          Dst:             sieve_criticalv
    - functionName:    sieve_generator_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_script_location
        - sieve_logv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:548,3'
          Dst:             sieve_error_script_location
        - Src:             'sieve-generator.c:551,2'
          Dst:             sieve_logv
    - functionName:    sieve_generator_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_script_location
        - sieve_logv
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:525,3'
          Dst:             sieve_error_script_location
        - Src:             'sieve-generator.c:528,2'
          Dst:             sieve_logv
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    sieve_generator_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          293
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - sieve_ast_extension_is_required
        - sieve_ast_extensions_get
        - sieve_ast_root
        - sieve_ast_script
        - sieve_binary_activate
        - sieve_binary_block_create
        - sieve_binary_block_get
        - sieve_binary_block_get_binary
        - sieve_binary_block_get_id
        - sieve_binary_create_new
        - sieve_binary_debug_writer_init
        - sieve_binary_emit_byte
        - sieve_binary_emit_extension
        - sieve_binary_emit_unsigned
        - sieve_binary_extension_link
        - sieve_binary_ref
        - sieve_binary_unref
        - sieve_generate_block
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:431,4'
          Dst:             sieve_ast_script
        - Src:             'sieve-generator.c:430,10'
          Dst:             sieve_binary_create_new
        - Src:             'sieve-generator.c:432,12'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-generator.c:436,10'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-generator.c:439,2'
          Dst:             i_panic
        - Src:             'sieve-generator.c:443,2'
          Dst:             sieve_binary_ref
        - Src:             'sieve-generator.c:446,16'
          Dst:             sieve_binary_block_create
        - Src:             'sieve-generator.c:447,19'
          Dst:             sieve_binary_debug_writer_init
        - Src:             'sieve-generator.c:449,11'
          Dst:             sieve_binary_block_get_id
        - Src:             'sieve-generator.c:448,8'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-generator.c:452,15'
          Dst:             sieve_ast_extensions_get
        - Src:             'sieve-generator.c:453,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-generator.c:459,9'
          Dst:             sieve_binary_extension_link
        - Src:             'sieve-generator.c:462,3'
          Dst:             sieve_binary_emit_extension
        - Src:             'sieve-generator.c:465,15'
          Dst:             sieve_ast_extension_is_required
        - Src:             'sieve-generator.c:467,3'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-generator.c:479,8'
          Dst:             sieve_ast_root
        - Src:             'sieve-generator.c:478,8'
          Dst:             sieve_generate_block
        - Src:             'sieve-generator.c:482,4'
          Dst:             sieve_binary_activate
        - Src:             'sieve-generator.c:488,2'
          Dst:             sieve_binary_unref
        - Src:             'sieve-generator.c:493,4'
          Dst:             sieve_binary_unref
    - functionName:    sieve_generate_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_generate_command
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:405,2'
          Dst:             t_push
        - Src:             'sieve-generator.c:408,13'
          Dst:             sieve_generate_command
        - Src:             'sieve-generator.c:411,4'
          Dst:             t_pop
        - Src:             'sieve-generator.c:411,4'
          Dst:             i_panic
    - functionName:    sieve_generate_command
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_generate_debug_from_ast_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:385,2'
          Dst:             i_panic
        - Src:             'sieve-generator.c:391,3'
          Dst:             sieve_generate_debug_from_ast_node
    - functionName:    sieve_generate_debug_from_ast_node
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_block_get_size
        - sieve_binary_debug_emit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:192,25'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-generator.c:195,2'
          Dst:             sieve_binary_debug_emit
    - functionName:    sieve_generate_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          150
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - sieve_binary_emit_offset
        - sieve_generate_debug_from_ast_node
        - sieve_jumplist_add
        - sieve_operation_emit
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:340,2'
          Dst:             i_panic
        - Src:             'sieve-generator.c:346,3'
          Dst:             sieve_generate_debug_from_ast_node
        - Src:             'sieve-generator.c:355,3'
          Dst:             sieve_generate_debug_from_ast_node
        - Src:             'sieve-generator.c:360,5'
          Dst:             sieve_operation_emit
        - Src:             'sieve-generator.c:363,5'
          Dst:             sieve_operation_emit
        - Src:             'sieve-generator.c:368,5'
          Dst:             sieve_binary_emit_offset
        - Src:             'sieve-generator.c:366,4'
          Dst:             sieve_jumplist_add
    - functionName:    sieve_jumplist_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:45,2'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_generate_argument_parameters
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_generate_debug_from_ast_argument
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:319,5'
          Dst:             sieve_generate_debug_from_ast_argument
    - functionName:    sieve_generate_debug_from_ast_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_block_get_size
        - sieve_binary_debug_emit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:202,25'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-generator.c:205,2'
          Dst:             sieve_binary_debug_emit
    - functionName:    sieve_generate_arguments
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          238
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_generate_debug_from_ast_argument
      functionUses:    45
      BranchProfiles:
        - Branch String:   'sieve-generator.c:247,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-generator.c:254,5'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-generator.c:258,5'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-generator.c:271,4'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-generator.c:283,4'
          Dst:             sieve_generate_debug_from_ast_argument
        - Src:             'sieve-generator.c:296,3'
          Dst:             sieve_binary_emit_byte
    - functionName:    sieve_generate_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_generate_debug_from_ast_argument
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:222,2'
          Dst:             sieve_generate_debug_from_ast_argument
    - functionName:    sieve_generator_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:176,38'
          Dst:             array_count_i
        - Src:             'sieve-generator.c:179,8'
          Dst:             array_idx_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:    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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_generator_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:167,2'
          Dst:             array_idx_set_i
    - functionName:    sieve_generator_get_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 153
      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:    sieve_generator_get_binary
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_generator_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_generator_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 137
      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:    sieve_generator_error_handler
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      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:    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:    sieve_generator_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
        - sieve_ast_unref
        - sieve_binary_debug_writer_deinit
        - sieve_binary_unref
        - sieve_error_handler_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:113,2'
          Dst:             sieve_ast_unref
        - Src:             'sieve-generator.c:115,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-generator.c:116,2'
          Dst:             sieve_binary_debug_writer_deinit
        - Src:             'sieve-generator.c:118,2'
          Dst:             sieve_binary_unref
        - Src:             'sieve-generator.c:120,2'
          Dst:             pool_unref
    - functionName:    sieve_generator_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          78
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_ast_ref
        - sieve_ast_script
        - sieve_error_handler_ref
        - sieve_extensions_get_count
        - sieve_script_svinst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:86,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-generator.c:87,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-generator.c:87,10'
          Dst:             p_malloc
        - Src:             'sieve-generator.c:91,2'
          Dst:             sieve_error_handler_ref
        - Src:             'sieve-generator.c:96,2'
          Dst:             sieve_ast_ref
        - Src:             'sieve-generator.c:98,11'
          Dst:             sieve_ast_script
        - Src:             'sieve-generator.c:99,11'
          Dst:             sieve_script_svinst
        - Src:             'sieve-generator.c:105,2'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-generator.c:105,2'
          Dst:             array_create_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:             'dovecot/src/lib/mempool.h:119,3'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_jumplist_resolve
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_binary_resolve_offset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:52,18'
          Dst:             array_count_i
        - Src:             'sieve-generator.c:53,30'
          Dst:             array_idx_i
        - Src:             'sieve-generator.c:55,3'
          Dst:             sieve_binary_resolve_offset
    - 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:             'dovecot/src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    sieve_jumplist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:40,2'
          Dst:             array_clear_i
    - functionName:    sieve_jumplist_init_temp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - pool_datastack_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:35,2'
          Dst:             pool_datastack_create
        - Src:             'sieve-generator.c:35,2'
          Dst:             array_create_i
    - functionName:    sieve_jumplist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-generator.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-generator.c:24,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-generator.c:24,10'
          Dst:             p_malloc
        - Src:             'sieve-generator.c:26,2'
          Dst:             array_create_i
    - functionName:    sieve_execute_duplicate_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_execute_get_dup_transaction
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-execute.c:155,20'
          Dst:             sieve_execute_get_dup_transaction
        - Src:             'sieve-execute.c:160,2'
          Dst:             event_want_level
        - Src:             'sieve-execute.c:160,2'
          Dst:             e_debug
        - Src:             'sieve-execute.c:160,2'
          Dst:             event_send_abort
    - functionName:    sieve_execute_get_dup_transaction
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_execute_duplicate_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_execute_get_dup_transaction
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-execute.c:137,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-execute.c:126,20'
          Dst:             sieve_execute_get_dup_transaction
        - Src:             'sieve-execute.c:134,2'
          Dst:             event_want_level
        - Src:             'sieve-execute.c:134,2'
          Dst:             e_debug
        - Src:             'sieve-execute.c:134,2'
          Dst:             event_send_abort
    - functionName:    sieve_execute_duplicate_check_available
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_execute_state_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_execute_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - pool_unref
        - sieve_execute_state_free
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-execute.c:90,2'
          Dst:             sieve_execute_state_free
        - Src:             'sieve-execute.c:91,2'
          Dst:             event_unref
        - Src:             'sieve-execute.c:92,2'
          Dst:             pool_unref
    - functionName:    sieve_execute_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_execute_state_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-execute.c:19,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-execute.c:19,9'
          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:    sieve_execute_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-execute.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          149
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_category
        - event_add_str
        - event_create
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - sieve_execute_state_create
        - smtp_address_encode
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-execute.c:41,2'
          Dst:             i_panic
        - Src:             'sieve-execute.c:50,2'
          Dst:             pool_ref
        - Src:             'sieve-execute.c:51,16'
          Dst:             event_create
        - Src:             'sieve-execute.c:52,2'
          Dst:             event_add_category
        - Src:             'sieve-execute.c:53,2'
          Dst:             event_add_str
        - Src:             'sieve-execute.c:57,4'
          Dst:             smtp_address_encode
        - Src:             'sieve-execute.c:56,3'
          Dst:             event_add_str
        - Src:             'sieve-execute.c:59,4'
          Dst:             smtp_address_encode
        - Src:             'sieve-execute.c:58,3'
          Dst:             event_add_str
        - Src:             'sieve-execute.c:62,16'
          Dst:             sieve_execute_state_create
        - Src:             'sieve-execute.c:66,23'
          Dst:             malloc_multiply_check
        - Src:             'sieve-execute.c:66,23'
          Dst:             p_malloc
    - functionName:    sieve_runtime_trace_toplevel
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_loop_break_out
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
        - sieve_interpreter_loop_break
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:692,7'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:695,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:704,9'
          Dst:             sieve_interpreter_loop_break
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - 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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    sieve_interpreter_loop_break
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          192
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
        - pool_unref
        - sieve_runtime_get_source_location
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_hasflag
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:643,2'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:643,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:644,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:645,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:649,3'
          Dst:             pool_unref
        - Src:             'sieve-interpreter.c:652,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:661,2'
          Dst:             array_delete_i
        - Src:             'sieve-interpreter.c:664,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'sieve-interpreter.c:666,4'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-interpreter.c:668,7'
          Dst:             sieve_runtime_trace_hasflag
        - Src:             'sieve-interpreter.c:669,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:674,4'
          Dst:             sieve_runtime_trace
    - 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:    3
      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:             'dovecot/src/lib/array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:246,2'
          Dst:             buffer_delete
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_get_source_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_debug_read_line
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:408,4'
          Dst:             sieve_binary_debug_read_line
        - Src:             'sieve-interpreter.c:412,9'
          Dst:             sieve_binary_debug_read_line
    - functionName:    sieve_runtime_trace_hasflag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,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:    7
      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:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_runtime_trace_begin
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_begin
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:173,3'
          Dst:             _sieve_runtime_trace_begin
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_runtime_mail_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1234
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_last_internal_error
        - sieve_runtime_critical
        - t_strdup_vprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1225,14'
          Dst:             mailbox_get_last_internal_error
        - Src:             'sieve-interpreter.c:1228,16'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-interpreter.c:1229,2'
          Dst:             sieve_runtime_critical
    - functionName:    sieve_runtime_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_criticalv
        - sieve_runtime_get_full_command_location
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1202,2'
          Dst:             t_push
        - Src:             'sieve-interpreter.c:1205,5'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'sieve-interpreter.c:1208,3'
          Dst:             sieve_criticalv
        - Src:             'sieve-interpreter.c:1210,4'
          Dst:             t_pop
        - Src:             'sieve-interpreter.c:1210,4'
          Dst:             i_panic
    - functionName:    sieve_runtime_get_full_command_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_error_script_location
        - sieve_runtime_get_command_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:436,17'
          Dst:             sieve_runtime_get_command_location
        - Src:             'sieve-interpreter.c:435,9'
          Dst:             sieve_error_script_location
    - functionName:    sieve_runtime_get_command_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_debug_read_line
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:425,4'
          Dst:             sieve_binary_debug_read_line
    - functionName:    sieve_runtime_debug
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_logv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1177,2'
          Dst:             sieve_runtime_logv
    - functionName:    sieve_runtime_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_logv
        - sieve_runtime_get_full_command_location
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1091,2'
          Dst:             t_push
        - Src:             'sieve-interpreter.c:1094,5'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'sieve-interpreter.c:1097,3'
          Dst:             sieve_logv
        - Src:             'sieve-interpreter.c:1098,4'
          Dst:             t_pop
        - Src:             'sieve-interpreter.c:1098,4'
          Dst:             i_panic
    - functionName:    sieve_runtime_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1159
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_logv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1157,2'
          Dst:             sieve_runtime_logv
    - functionName:    sieve_runtime_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_logv
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1137,2'
          Dst:             sieve_runtime_logv
    - functionName:    sieve_interpreter_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1073
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_reset
        - sieve_interpreter_start
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1074,2'
          Dst:             sieve_interpreter_reset
        - Src:             'sieve-interpreter.c:1076,9'
          Dst:             sieve_interpreter_start
    - functionName:    sieve_interpreter_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:770,2'
          Dst:             sieve_result_unref
    - functionName:    sieve_interpreter_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          202
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - sieve_binary_source
        - sieve_interpreter_continue
        - sieve_resource_usage_init
        - sieve_result_get_message_context
        - sieve_result_ref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1042,3'
          Dst:             event_create_passthrough
        - Src:             'sieve-interpreter.c:1044,2'
          Dst:             event_want_level
        - Src:             'sieve-interpreter.c:1044,2'
          Dst:             sieve_binary_source
        - Src:             'sieve-interpreter.c:1044,2'
          Dst:             e_debug
        - Src:             'sieve-interpreter.c:1044,2'
          Dst:             event_send_abort
        - Src:             'sieve-interpreter.c:1049,26'
          Dst:             sieve_result_get_message_context
        - Src:             'sieve-interpreter.c:1050,2'
          Dst:             sieve_result_ref
        - Src:             'sieve-interpreter.c:1052,2'
          Dst:             sieve_resource_usage_init
        - Src:             'sieve-interpreter.c:1055,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:1068,9'
          Dst:             sieve_interpreter_continue
    - functionName:    sieve_interpreter_continue
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 939
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          371
      EdgeCount:       65
      CyclomaticComplexity: 14
      functionsReached:
        - cpu_limit_deinit
        - cpu_limit_exceeded
        - cpu_limit_get_usage_msecs
        - cpu_limit_init
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_unreached
        - sieve_binary_block_get_size
        - sieve_binary_source
        - sieve_execution_exitcode_to_str
        - sieve_interpreter_operation_execute
        - sieve_resource_usage_add
        - sieve_resource_usage_get_summary
        - sieve_resource_usage_init
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-interpreter.c:1004,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-interpreter.c:955,12'
          Dst:             cpu_limit_init
        - Src:             'sieve-interpreter.c:961,20'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-interpreter.c:962,25'
          Dst:             cpu_limit_exceeded
        - Src:             'sieve-interpreter.c:963,4'
          Dst:             sieve_runtime_error
        - Src:             'sieve-interpreter.c:970,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:976,9'
          Dst:             sieve_interpreter_operation_execute
        - Src:             'sieve-interpreter.c:982,3'
          Dst:             sieve_resource_usage_init
        - Src:             'sieve-interpreter.c:984,4'
          Dst:             cpu_limit_get_usage_msecs
        - Src:             'sieve-interpreter.c:985,3'
          Dst:             sieve_resource_usage_add
        - Src:             'sieve-interpreter.c:987,3'
          Dst:             cpu_limit_deinit
        - Src:             'sieve-interpreter.c:991,3'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:1002,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-interpreter.c:1021,4'
          Dst:             i_unreached
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             event_want_level
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             sieve_binary_source
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             sieve_resource_usage_get_summary
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             e_debug
        - Src:             'sieve-interpreter.c:1023,3'
          Dst:             event_send_abort
    - functionName:    sieve_runtime_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_runtime_logv
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:1117,2'
          Dst:             sieve_runtime_logv
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_interpreter_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 935
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_operation_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_runtime_trace_toplevel
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:904,2'
          Dst:             sieve_runtime_trace_toplevel
        - Src:             'sieve-interpreter.c:907,6'
          Dst:             sieve_operation_read
        - Src:             'sieve-interpreter.c:915,3'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:917,4'
          Dst:             t_push
        - Src:             'sieve-interpreter.c:920,6'
          Dst:             t_pop
        - Src:             'sieve-interpreter.c:920,6'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:922,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:932,2'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_interpreter_get_test_result
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 892
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_set_test_result
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_program_jump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_offset
        - sieve_interpreter_check_program_jump
        - sieve_interpreter_do_program_jump
        - sieve_runtime_trace
        - sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:860,7'
          Dst:             sieve_binary_read_offset
        - Src:             'sieve-interpreter.c:861,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:866,8'
          Dst:             sieve_interpreter_check_program_jump
        - Src:             'sieve-interpreter.c:872,3'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:876,9'
          Dst:             sieve_interpreter_do_program_jump
    - functionName:    sieve_interpreter_check_program_jump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_binary_block_get_size
        - sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:791,19'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-interpreter.c:794,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:797,4'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_interpreter_do_program_jump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_interpreter_loop_break_out
        - sieve_runtime_get_source_location
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_hasflag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:813,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'sieve-interpreter.c:815,4'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-interpreter.c:817,7'
          Dst:             sieve_runtime_trace_hasflag
        - Src:             'sieve-interpreter.c:818,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:822,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:828,13'
          Dst:             sieve_interpreter_loop_break_out
    - functionName:    sieve_interpreter_program_jump_to
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_interpreter_check_program_jump
        - sieve_interpreter_do_program_jump
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:842,8'
          Dst:             sieve_interpreter_check_program_jump
        - Src:             'sieve-interpreter.c:847,9'
          Dst:             sieve_interpreter_do_program_jump
    - functionName:    sieve_interpreter_program_counter
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_interrupt
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_loop_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_loop_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 752
      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:    sieve_interpreter_loop_get_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 747
      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:    sieve_interpreter_loop_get_global
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_interpreter_loop_get_local
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:736,12'
          Dst:             sieve_interpreter_loop_get_local
    - functionName:    sieve_interpreter_loop_get_local
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          130
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:715,7'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:718,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:719,2'
          Dst:             i_panic
    - functionName:    sieve_interpreter_loop_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
        - sieve_runtime_get_source_location
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_error
        - sieve_runtime_trace_hasflag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:603,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'sieve-interpreter.c:605,4'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-interpreter.c:607,7'
          Dst:             sieve_runtime_trace_hasflag
        - Src:             'sieve-interpreter.c:608,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:613,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:620,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:625,2'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:625,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:626,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:627,2'
          Dst:             i_panic
    - functionName:    sieve_interpreter_loop_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:581,7'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:584,10'
          Dst:             array_get_modifiable_i
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_interpreter_loop_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          170
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - pool_alloconly_create
        - sieve_binary_block_get_size
        - sieve_runtime_error
        - sieve_runtime_get_source_location
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_error
        - sieve_runtime_trace_hasflag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:521,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:524,17'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-interpreter.c:525,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:530,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'sieve-interpreter.c:532,4'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-interpreter.c:534,7'
          Dst:             sieve_runtime_trace_hasflag
        - Src:             'sieve-interpreter.c:535,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:540,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-interpreter.c:546,7'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:547,3'
          Dst:             array_create_i
        - Src:             'sieve-interpreter.c:549,7'
          Dst:             array_count_i
        - Src:             'sieve-interpreter.c:551,3'
          Dst:             sieve_runtime_error
        - Src:             'sieve-interpreter.c:559,9'
          Dst:             array_append_space_i
        - Src:             'sieve-interpreter.c:560,16'
          Dst:             array_count_i
        - Src:             'sieve-interpreter.c:564,16'
          Dst:             pool_alloconly_create
    - functionName:    sieve_interpreter_extension_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          132
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:490,2'
          Dst:             i_panic
        - Src:             'sieve-interpreter.c:492,23'
          Dst:             array_count_i
        - Src:             'sieve-interpreter.c:495,8'
          Dst:             array_idx_modifiable_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_interpreter_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:476,38'
          Dst:             array_count_i
        - Src:             'sieve-interpreter.c:479,8'
          Dst:             array_idx_i
    - functionName:    sieve_interpreter_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:467,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_interpreter_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:452,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_interpreter_set_result
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_get_message_context
        - sieve_result_ref
        - sieve_result_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:387,2'
          Dst:             sieve_result_unref
        - Src:             'sieve-interpreter.c:389,26'
          Dst:             sieve_result_get_message_context
        - Src:             'sieve-interpreter.c:390,2'
          Dst:             sieve_result_ref
    - functionName:    sieve_runtime_cpu_limit_exceeded
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cpu_limit_exceeded
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:378,9'
          Dst:             cpu_limit_exceeded
    - functionName:    sieve_interpreter_svinst
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      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:    sieve_interpreter_get_error_handler
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_interpreter_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 357
      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:    sieve_interpreter_get_parent
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 352
      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:    sieve_interpreter_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_runtime_trace_end
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:180,3'
          Dst:             _sieve_runtime_trace_end
    - functionName:    sieve_interpreter_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          232
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_i
        - array_get_modifiable_i
        - array_is_created_i
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_unref
        - event_want_level
        - pool_unref
        - sieve_binary_debug_reader_deinit
        - sieve_binary_source
        - sieve_binary_unref
        - sieve_error_handler_unref
        - sieve_result_unref
        - sieve_runtime_trace_end
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:303,4'
          Dst:             event_create_passthrough
        - Src:             'sieve-interpreter.c:306,3'
          Dst:             event_want_level
        - Src:             'sieve-interpreter.c:306,3'
          Dst:             sieve_binary_source
        - Src:             'sieve-interpreter.c:306,3'
          Dst:             e_debug
        - Src:             'sieve-interpreter.c:306,3'
          Dst:             event_send_abort
        - Src:             'sieve-interpreter.c:312,6'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:313,11'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-interpreter.c:315,4'
          Dst:             pool_unref
        - Src:             'sieve-interpreter.c:319,2'
          Dst:             sieve_runtime_trace_end
        - Src:             'sieve-interpreter.c:322,10'
          Dst:             array_get_i
        - Src:             'sieve-interpreter.c:330,2'
          Dst:             sieve_binary_debug_reader_deinit
        - Src:             'sieve-interpreter.c:331,2'
          Dst:             sieve_binary_unref
        - Src:             'sieve-interpreter.c:332,2'
          Dst:             sieve_result_unref
        - Src:             'sieve-interpreter.c:333,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-interpreter.c:334,2'
          Dst:             event_unref
        - Src:             'sieve-interpreter.c:336,2'
          Dst:             pool_unref
    - functionName:    sieve_interpreter_create_for_block
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_interpreter_create
        - sieve_binary_block_get_binary
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:288,35'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-interpreter.c:288,9'
          Dst:             _sieve_interpreter_create
    - functionName:    _sieve_interpreter_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          519
      EdgeCount:       88
      CyclomaticComplexity: 24
      functionsReached:
        - array_count_i
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - event_add_category
        - event_add_str
        - event_create
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_binary_block_get
        - sieve_binary_debug_reader_init
        - sieve_binary_path
        - sieve_binary_read_byte
        - sieve_binary_read_extension
        - sieve_binary_read_unsigned
        - sieve_binary_ref
        - sieve_binary_script
        - sieve_binary_script_location
        - sieve_binary_script_name
        - sieve_binary_svinst
        - sieve_error_handler_ref
        - sieve_extensions_get_count
        - sieve_extensions_get_preloaded
        - sieve_interpreter_free
        - sieve_runtime_error
        - sieve_runtime_trace_begin
        - sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:125,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-interpreter.c:126,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-interpreter.c:126,11'
          Dst:             p_malloc
        - Src:             'sieve-interpreter.c:131,2'
          Dst:             sieve_error_handler_ref
        - Src:             'sieve-interpreter.c:138,2'
          Dst:             sieve_binary_ref
        - Src:             'sieve-interpreter.c:140,25'
          Dst:             event_create
        - Src:             'sieve-interpreter.c:141,2'
          Dst:             event_add_category
        - Src:             'sieve-interpreter.c:143,9'
          Dst:             sieve_binary_script_name
        - Src:             'sieve-interpreter.c:142,2'
          Dst:             event_add_str
        - Src:             'sieve-interpreter.c:145,9'
          Dst:             sieve_binary_script_location
        - Src:             'sieve-interpreter.c:144,2'
          Dst:             event_add_str
        - Src:             'sieve-interpreter.c:147,9'
          Dst:             sieve_binary_path
        - Src:             'sieve-interpreter.c:146,2'
          Dst:             event_add_str
        - Src:             'sieve-interpreter.c:149,11'
          Dst:             sieve_binary_svinst
        - Src:             'sieve-interpreter.c:159,27'
          Dst:             sieve_binary_script
        - Src:             'sieve-interpreter.c:166,2'
          Dst:             sieve_runtime_trace_begin
        - Src:             'sieve-interpreter.c:168,2'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-interpreter.c:168,2'
          Dst:             array_create_i
        - Src:             'sieve-interpreter.c:172,24'
          Dst:             array_is_created_i
        - Src:             'sieve-interpreter.c:174,4'
          Dst:             array_count_i
        - Src:             'sieve-interpreter.c:178,18'
          Dst:             sieve_extensions_get_preloaded
        - Src:             'sieve-interpreter.c:191,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-interpreter.c:193,4'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-interpreter.c:196,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-interpreter.c:202,5'
          Dst:             sieve_binary_debug_reader_init
        - Src:             'sieve-interpreter.c:207,17'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-interpreter.c:215,9'
          Dst:             sieve_binary_read_extension
        - Src:             'sieve-interpreter.c:217,9'
          Dst:             sieve_binary_read_byte
        - Src:             'sieve-interpreter.c:224,11'
          Dst:             array_idx_get_space_i
        - Src:             'sieve-interpreter.c:233,6'
          Dst:             sieve_runtime_error
        - Src:             'sieve-interpreter.c:254,3'
          Dst:             sieve_interpreter_free
    - functionName:    sieve_interpreter_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-interpreter.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_interpreter_create
        - sieve_binary_block_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-interpreter.c:271,16'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-interpreter.c:275,9'
          Dst:             _sieve_interpreter_create
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    _sieve_runtime_trace_sep
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _trace_line_print_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:159,2'
          Dst:             _trace_line_print_empty
    - functionName:    _trace_line_print_empty
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_trace_log_write_line
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:45,2'
          Dst:             sieve_trace_log_write_line
    - functionName:    _sieve_runtime_trace_end
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_printf
        - _trace_line_print_empty
        - sieve_binary_path
        - sieve_script_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:148,8'
          Dst:             sieve_script_name
        - Src:             'sieve-runtime-trace.c:149,8'
          Dst:             sieve_binary_path
        - Src:             'sieve-runtime-trace.c:151,2'
          Dst:             _sieve_runtime_trace_printf
        - Src:             'sieve-runtime-trace.c:154,2'
          Dst:             _trace_line_print_empty
    - functionName:    _sieve_runtime_trace_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_runtime_trace_vprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:107,2'
          Dst:             _sieve_runtime_trace_vprintf
    - functionName:    _sieve_runtime_trace_vprintf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _trace_line_new
        - _trace_line_print
        - str_vprintfa
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:92,21'
          Dst:             _trace_line_new
        - Src:             'sieve-runtime-trace.c:94,2'
          Dst:             str_vprintfa
        - Src:             'sieve-runtime-trace.c:96,2'
          Dst:             _trace_line_print
    - functionName:    _trace_line_new
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - str_append
        - str_printfa
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:22,11'
          Dst:             t_str_new
        - Src:             'sieve-runtime-trace.c:24,3'
          Dst:             str_printfa
        - Src:             'sieve-runtime-trace.c:26,3'
          Dst:             str_printfa
        - Src:             'sieve-runtime-trace.c:28,3'
          Dst:             str_append
        - Src:             'sieve-runtime-trace.c:31,3'
          Dst:             str_append
    - functionName:    _trace_line_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_trace_log_write_line
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:39,2'
          Dst:             sieve_trace_log_write_line
    - functionName:    _sieve_runtime_trace_begin
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_printf
        - _trace_line_print_empty
        - sieve_binary_path
        - sieve_script_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:136,8'
          Dst:             sieve_script_name
        - Src:             'sieve-runtime-trace.c:137,8'
          Dst:             sieve_binary_path
        - Src:             'sieve-runtime-trace.c:139,2'
          Dst:             _trace_line_print_empty
        - Src:             'sieve-runtime-trace.c:140,2'
          Dst:             _sieve_runtime_trace_printf
    - functionName:    _sieve_runtime_trace_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_runtime_trace_vprintf
        - sieve_runtime_get_source_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:125,18'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-runtime-trace.c:124,2'
          Dst:             _sieve_runtime_trace_vprintf
    - functionName:    _sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_runtime_trace_vprintf
        - sieve_runtime_get_command_location
      functionUses:    69
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:116,10'
          Dst:             sieve_runtime_get_command_location
        - Src:             'sieve-runtime-trace.c:115,2'
          Dst:             _sieve_runtime_trace_vprintf
    - functionName:    _sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _trace_line_new
        - _trace_line_print
        - sieve_runtime_get_source_location
        - str_printfa
        - str_vprintfa
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:70,3'
          Dst:             sieve_runtime_get_source_location
        - Src:             'sieve-runtime-trace.c:68,21'
          Dst:             _trace_line_new
        - Src:             'sieve-runtime-trace.c:72,2'
          Dst:             str_printfa
        - Src:             'sieve-runtime-trace.c:76,3'
          Dst:             str_printfa
        - Src:             'sieve-runtime-trace.c:78,2'
          Dst:             str_vprintfa
        - Src:             'sieve-runtime-trace.c:80,2'
          Dst:             _trace_line_print
    - functionName:    _sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-runtime-trace.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _trace_line_new
        - _trace_line_print
        - str_printfa
        - str_vprintfa
      functionUses:    41
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-runtime-trace.c:55,21'
          Dst:             _trace_line_new
        - Src:             'sieve-runtime-trace.c:57,2'
          Dst:             str_printfa
        - Src:             'sieve-runtime-trace.c:59,2'
          Dst:             str_vprintfa
        - Src:             'sieve-runtime-trace.c:61,2'
          Dst:             _trace_line_print
    - 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:    sieve_code_dumper_print_operation
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          115
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_code_dumpf
        - sieve_code_line_mark
        - sieve_operation_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:219,2'
          Dst:             sieve_code_line_mark
        - Src:             'sieve-code-dumper.c:222,6'
          Dst:             sieve_operation_read
        - Src:             'sieve-code-dumper.c:225,3'
          Dst:             i_panic
        - Src:             'sieve-code-dumper.c:229,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:236,2'
          Dst:             sieve_code_dumpf
    - functionName:    sieve_code_line_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_debug_read_line
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:177,30'
          Dst:             sieve_binary_debug_read_line
    - functionName:    sieve_code_dumpf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          120
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - o_stream_nsend
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_printfa
        - str_vprintfa
        - t_str_new
      functionUses:    127
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:144,21'
          Dst:             t_str_new
        - Src:             'sieve-code-dumper.c:148,2'
          Dst:             str_printfa
        - Src:             'sieve-code-dumper.c:154,3'
          Dst:             str_printfa
        - Src:             'sieve-code-dumper.c:157,3'
          Dst:             str_append
        - Src:             'sieve-code-dumper.c:161,3'
          Dst:             str_append
        - Src:             'sieve-code-dumper.c:165,2'
          Dst:             str_vprintfa
        - Src:             'sieve-code-dumper.c:166,2'
          Dst:             str_append_c
        - Src:             'sieve-code-dumper.c:169,31'
          Dst:             str_data
        - Src:             'sieve-code-dumper.c:169,49'
          Dst:             str_len
        - Src:             'sieve-code-dumper.c:169,2'
          Dst:             o_stream_nsend
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_code_dumper_print_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_binary_read_byte
        - sieve_binary_read_extension
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:249,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code-dumper.c:251,7'
          Dst:             sieve_binary_read_extension
        - Src:             'sieve-code-dumper.c:252,7'
          Dst:             sieve_binary_read_byte
        - Src:             'sieve-code-dumper.c:257,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:259,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:263,4'
          Dst:             sieve_code_descend
        - Src:             'sieve-code-dumper.c:266,4'
          Dst:             sieve_code_ascend
    - functionName:    sieve_code_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_line_mark
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:185,2'
          Dst:             sieve_code_line_mark
    - functionName:    sieve_code_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    65
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_code_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_code_dumper_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          239
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - o_stream_nsend_str
        - sieve_binary_block_get
        - sieve_binary_block_get_size
        - sieve_binary_debug_reader_init
        - sieve_binary_read_unsigned
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumper_print_extension
        - sieve_code_dumper_print_operation
        - sieve_code_dumpf
        - sieve_code_mark
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:286,2'
          Dst:             o_stream_nsend_str
        - Src:             'sieve-code-dumper.c:289,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code-dumper.c:291,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code-dumper.c:293,4'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-code-dumper.c:296,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:302,5'
          Dst:             sieve_binary_debug_reader_init
        - Src:             'sieve-code-dumper.c:305,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:309,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:314,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code-dumper.c:317,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code-dumper.c:320,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:321,3'
          Dst:             sieve_code_descend
        - Src:             'sieve-code-dumper.c:323,48'
          Dst:             t_push
        - Src:             'sieve-code-dumper.c:325,5'
          Dst:             sieve_code_dumper_print_extension
        - Src:             'sieve-code-dumper.c:326,5'
          Dst:             t_pop
        - Src:             'sieve-code-dumper.c:326,5'
          Dst:             i_panic
        - Src:             'sieve-code-dumper.c:328,3'
          Dst:             sieve_code_ascend
        - Src:             'sieve-code-dumper.c:334,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:338,20'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-code-dumper.c:340,3'
          Dst:             t_push
        - Src:             'sieve-code-dumper.c:341,14'
          Dst:             sieve_code_dumper_print_operation
        - Src:             'sieve-code-dumper.c:342,5'
          Dst:             t_pop
        - Src:             'sieve-code-dumper.c:342,5'
          Dst:             i_panic
        - Src:             'sieve-code-dumper.c:345,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code-dumper.c:352,26'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-code-dumper.c:353,2'
          Dst:             sieve_code_dumpf
    - functionName:    sieve_code_mark_specific
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_line_mark
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:192,2'
          Dst:             sieve_code_line_mark
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_dump_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:129,24'
          Dst:             array_count_i
        - Src:             'sieve-code-dumper.c:132,8'
          Dst:             array_idx_i
    - functionName:    sieve_dump_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:119,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_dump_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:104,8'
          Dst:             array_idx_get_space_i
    - functionName:    sieve_code_dumper_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 90
      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:    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:    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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_code_dumper_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - pool_unref
        - sieve_binary_debug_reader_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:75,2'
          Dst:             sieve_binary_debug_reader_deinit
        - Src:             'sieve-code-dumper.c:78,10'
          Dst:             array_get_i
        - Src:             'sieve-code-dumper.c:84,2'
          Dst:             pool_unref
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_code_dumper_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_extensions_get_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code-dumper.c:57,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-code-dumper.c:58,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-code-dumper.c:58,12'
          Dst:             p_malloc
        - Src:             'sieve-code-dumper.c:63,2'
          Dst:             sieve_extensions_get_count
        - Src:             'sieve-code-dumper.c:63,2'
          Dst:             array_create_i
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_dumper_hexdump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          310
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - buffer_get_data
        - o_stream_nsend
        - sieve_binary_block_count
        - sieve_binary_block_get
        - sieve_binary_block_get_buffer
        - sieve_binary_block_get_size
        - sieve_binary_dump_sectionf
        - sieve_binary_dumpf
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:257,10'
          Dst:             sieve_binary_block_count
        - Src:             'sieve-binary-dumper.c:261,2'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:265,4'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-dumper.c:271,11'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-binary-dumper.c:270,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:278,4'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-dumper.c:279,24'
          Dst:             sieve_binary_block_get_buffer
        - Src:             'sieve-binary-dumper.c:285,10'
          Dst:             buffer_get_data
        - Src:             'sieve-binary-dumper.c:288,3'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:292,10'
          Dst:             t_str_new
        - Src:             'sieve-binary-dumper.c:299,4'
          Dst:             str_printfa
        - Src:             'sieve-binary-dumper.c:303,5'
          Dst:             str_printfa
        - Src:             'sieve-binary-dumper.c:305,6'
          Dst:             str_append_c
        - Src:             'sieve-binary-dumper.c:310,6'
          Dst:             str_append_c
        - Src:             'sieve-binary-dumper.c:313,6'
          Dst:             str_append
        - Src:             'sieve-binary-dumper.c:316,4'
          Dst:             str_append
        - Src:             'sieve-binary-dumper.c:322,6'
          Dst:             str_append_c
        - Src:             'sieve-binary-dumper.c:324,6'
          Dst:             str_append_c
        - Src:             'sieve-binary-dumper.c:327,4'
          Dst:             str_append
        - Src:             'sieve-binary-dumper.c:328,27'
          Dst:             str_data
        - Src:             'sieve-binary-dumper.c:328,43'
          Dst:             str_len
        - Src:             'sieve-binary-dumper.c:328,4'
          Dst:             o_stream_nsend
        - Src:             'sieve-binary-dumper.c:329,4'
          Dst:             str_truncate
        - Src:             'sieve-binary-dumper.c:333,3'
          Dst:             str_printfa
        - Src:             'sieve-binary-dumper.c:334,26'
          Dst:             str_data
        - Src:             'sieve-binary-dumper.c:334,42'
          Dst:             str_len
        - Src:             'sieve-binary-dumper.c:334,3'
          Dst:             o_stream_nsend
    - functionName:    sieve_binary_dump_sectionf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - str_data
        - str_len
        - str_printfa
        - str_vprintfa
        - t_str_new
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:80,21'
          Dst:             t_str_new
        - Src:             'sieve-binary-dumper.c:84,2'
          Dst:             str_printfa
        - Src:             'sieve-binary-dumper.c:85,2'
          Dst:             str_vprintfa
        - Src:             'sieve-binary-dumper.c:86,2'
          Dst:             str_printfa
        - Src:             'sieve-binary-dumper.c:89,31'
          Dst:             str_data
        - Src:             'sieve-binary-dumper.c:89,49'
          Dst:             str_len
        - Src:             'sieve-binary-dumper.c:89,2'
          Dst:             o_stream_nsend
    - functionName:    sieve_binary_dumpf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - str_data
        - str_len
        - str_vprintfa
        - t_str_new
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:67,21'
          Dst:             t_str_new
        - Src:             'sieve-binary-dumper.c:71,2'
          Dst:             str_vprintfa
        - Src:             'sieve-binary-dumper.c:74,31'
          Dst:             str_data
        - Src:             'sieve-binary-dumper.c:74,49'
          Dst:             str_len
        - Src:             'sieve-binary-dumper.c:74,2'
          Dst:             o_stream_nsend
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_dumper_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          420
      EdgeCount:       77
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - sieve_binary_block_count
        - sieve_binary_block_get
        - sieve_binary_block_get_id
        - sieve_binary_block_get_size
        - sieve_binary_dump_sectionf
        - sieve_binary_dumpf
        - sieve_binary_extension_get_block
        - sieve_binary_extension_get_by_index
        - sieve_binary_extensions_count
        - sieve_binary_script
        - sieve_code_dumper_create
        - sieve_code_dumper_free
        - sieve_code_dumper_run
        - sieve_script_binary_dump_metadata
        - t_pop
        - t_push
        - t_strflocaltime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:100,32'
          Dst:             sieve_binary_script
        - Src:             'sieve-binary-dumper.c:112,2'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:114,2'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:126,4'
          Dst:             t_strflocaltime
        - Src:             'sieve-binary-dumper.c:122,3'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:134,11'
          Dst:             sieve_binary_block_count
        - Src:             'sieve-binary-dumper.c:136,3'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:141,5'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-dumper.c:148,8'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-binary-dumper.c:146,4'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:154,2'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:156,11'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-dumper.c:160,2'
          Dst:             t_push
        - Src:             'sieve-binary-dumper.c:162,13'
          Dst:             sieve_script_binary_dump_metadata
        - Src:             'sieve-binary-dumper.c:164,4'
          Dst:             t_pop
        - Src:             'sieve-binary-dumper.c:164,4'
          Dst:             i_panic
        - Src:             'sieve-binary-dumper.c:171,10'
          Dst:             sieve_binary_extensions_count
        - Src:             'sieve-binary-dumper.c:173,3'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:179,5'
          Dst:             sieve_binary_extension_get_by_index
        - Src:             'sieve-binary-dumper.c:181,13'
          Dst:             sieve_binary_extension_get_block
        - Src:             'sieve-binary-dumper.c:184,5'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:191,6'
          Dst:             sieve_binary_block_get_id
        - Src:             'sieve-binary-dumper.c:188,5'
          Dst:             sieve_binary_dumpf
        - Src:             'sieve-binary-dumper.c:198,10'
          Dst:             sieve_binary_extensions_count
        - Src:             'sieve-binary-dumper.c:203,4'
          Dst:             t_push
        - Src:             'sieve-binary-dumper.c:205,6'
          Dst:             sieve_binary_extension_get_by_index
        - Src:             'sieve-binary-dumper.c:213,6'
          Dst:             t_pop
        - Src:             'sieve-binary-dumper.c:213,6'
          Dst:             i_panic
        - Src:             'sieve-binary-dumper.c:222,2'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'sieve-binary-dumper.c:226,3'
          Dst:             sieve_binary_block_get
        - Src:             'sieve-binary-dumper.c:230,28'
          Dst:             sieve_code_dumper_create
        - Src:             'sieve-binary-dumper.c:233,3'
          Dst:             sieve_code_dumper_run
        - Src:             'sieve-binary-dumper.c:235,3'
          Dst:             sieve_code_dumper_free
        - Src:             'sieve-binary-dumper.c:239,2'
          Dst:             sieve_binary_dumpf
    - functionName:    sieve_binary_dumper_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      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:    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:    sieve_binary_dumper_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
        - sieve_binary_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:49,2'
          Dst:             sieve_binary_unref
        - Src:             'sieve-binary-dumper.c:50,2'
          Dst:             pool_unref
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_binary_dumper_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-dumper.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_binary_ref
        - sieve_binary_svinst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-dumper.c:34,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-binary-dumper.c:35,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary-dumper.c:35,11'
          Dst:             p_malloc
        - Src:             'sieve-binary-dumper.c:40,2'
          Dst:             sieve_binary_ref
        - Src:             'sieve-binary-dumper.c:42,27'
          Dst:             sieve_binary_svinst
    - functionName:    sieve_result_action_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1369
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          136
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_action_execution_pre
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1357,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1357,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1357,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1359,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1359,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1359,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1365,3'
          Dst:             sieve_action_execution_pre
        - Src:             'sieve-result.c:1367,3'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_action_execution_pre
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          52
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_action_execution_post
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1075
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_side_effect_post_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:996,2'
          Dst:             i_panic
    - functionName:    sieve_result_action_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          168
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_action_execution_pre
        - sieve_result_side_effect_post_commit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1211,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1211,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1211,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1213,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1213,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1213,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1218,2'
          Dst:             sieve_action_execution_pre
        - Src:             'sieve-result.c:1230,3'
          Dst:             sieve_result_side_effect_post_commit
        - Src:             'sieve-result.c:1235,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_action_commit_or_rollback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          300
      EdgeCount:       69
      CyclomaticComplexity: 18
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_execution_exitcode_to_str
        - sieve_result_action_commit
        - sieve_result_action_rollback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1288,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1288,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1288,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1288,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1288,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1288,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1294,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1294,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1294,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1294,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1294,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1294,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1314,13'
          Dst:             sieve_result_action_commit
        - Src:             'sieve-result.c:1332,3'
          Dst:             sieve_result_action_rollback
    - functionName:    sieve_result_action_rollback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_action_execution_pre
        - sieve_result_side_effect_rollback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1249,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1249,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1249,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1251,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1251,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1251,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1256,2'
          Dst:             sieve_action_execution_pre
        - Src:             'sieve-result.c:1266,3'
          Dst:             sieve_result_side_effect_rollback
        - Src:             'sieve-result.c:1270,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_side_effect_rollback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1013,2'
          Dst:             i_panic
    - functionName:    sieve_result_side_effect_post_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:978,2'
          Dst:             i_panic
    - functionName:    sieve_result_side_effect_pre_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:961,2'
          Dst:             i_panic
    - functionName:    sieve_result_action_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1199
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          528
      EdgeCount:       122
      CyclomaticComplexity: 30
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_action_execution_post
        - sieve_action_execution_pre
        - sieve_execution_exitcode_to_str
        - sieve_result_side_effect_post_execute
        - sieve_result_side_effect_pre_execute
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1127,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:1129,4'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1129,4'
          Dst:             e_debug
        - Src:             'sieve-result.c:1129,4'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1138,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1138,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1138,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1140,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1140,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1140,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1145,2'
          Dst:             sieve_action_execution_pre
        - Src:             'sieve-result.c:1150,12'
          Dst:             sieve_result_side_effect_pre_execute
        - Src:             'sieve-result.c:1168,12'
          Dst:             sieve_result_side_effect_post_execute
        - Src:             'sieve-result.c:1174,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1174,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1174,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1174,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1178,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1178,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1178,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1178,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1195,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_action_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_action_execution_post
        - sieve_action_execution_pre
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1096,3'
          Dst:             sieve_action_execution_pre
        - Src:             'sieve-result.c:1100,3'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_action_execution_add_side_effect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1036,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:1036,11'
          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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_action_execution_add_side_effects
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_execution_add_side_effect
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1051,3'
          Dst:             sieve_action_execution_add_side_effect
    - functionName:    sieve_result_action_abort
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1379
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          129
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_result_action_rollback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1377,3'
          Dst:             sieve_result_action_rollback
    - functionName:    sieve_result_execution_add_action
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1434
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_action_execution_add_side_effects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1426,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:1426,10'
          Dst:             p_malloc
        - Src:             'sieve-result.c:1433,2'
          Dst:             sieve_action_execution_add_side_effects
    - functionName:    sieve_action_execution_update
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1411
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - sieve_action_execution_add_side_effects
        - sieve_result_action_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1398,3'
          Dst:             sieve_result_action_abort
        - Src:             'sieve-result.c:1403,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:1410,2'
          Dst:             sieve_action_execution_add_side_effects
    - functionName:    sieve_result_init_action_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_add_str
        - event_create
        - event_set_append_log_prefix
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:262,18'
          Dst:             event_create
        - Src:             'sieve-result.c:265,19'
          Dst:             t_strconcat
        - Src:             'sieve-result.c:264,3'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve-result.c:267,2'
          Dst:             event_add_str
        - Src:             'sieve-result.c:268,2'
          Dst:             event_add_str
    - functionName:    sieve_result_side_effects_merge
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          374
      EdgeCount:       85
      CyclomaticComplexity: 21
      functionsReached:
        - i_panic
        - sieve_side_effects_list_add
        - sieve_side_effects_list_create
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:323,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:358,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:383,8'
          Dst:             sieve_side_effects_list_create
        - Src:             'sieve-result.c:389,6'
          Dst:             sieve_side_effects_list_add
    - functionName:    sieve_side_effects_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2142
      functionLinenumberEnd: 2150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2144,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:2144,3'
          Dst:             p_malloc
    - functionName:    sieve_side_effects_list_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2155
      functionLinenumberEnd: 2205
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          207
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2165,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:2166,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:2170,4'
          Dst:             i_panic
        - Src:             'sieve-result.c:2182,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:2182,12'
          Dst:             p_malloc
    - functionName:    sieve_result_action_detach
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      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:    sieve_result_mail_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2442
      functionLinenumberEnd: 2454
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_last_internal_error
        - sieve_result_critical
        - t_strdup_vprintf
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2446,14'
          Dst:             mailbox_get_last_internal_error
        - Src:             'sieve-result.c:2449,16'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-result.c:2450,2'
          Dst:             sieve_result_critical
    - functionName:    sieve_result_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2415
      functionLinenumberEnd: 2435
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_criticalv
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2429,2'
          Dst:             t_push
        - Src:             'sieve-result.c:2430,3'
          Dst:             sieve_criticalv
        - Src:             'sieve-result.c:2432,4'
          Dst:             t_pop
        - Src:             'sieve-result.c:2432,4'
          Dst:             i_panic
    - functionName:    sieve_result_event_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2391
      functionLinenumberEnd: 2408
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          68
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_logv
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2406,2'
          Dst:             sieve_global_logv
    - functionName:    sieve_result_global_log_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2368
      functionLinenumberEnd: 2384
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_info_logv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2381,2'
          Dst:             sieve_global_info_logv
    - functionName:    sieve_result_global_log_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2345
      functionLinenumberEnd: 2361
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_info_logv
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2358,2'
          Dst:             sieve_global_info_logv
    - functionName:    sieve_result_global_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2321
      functionLinenumberEnd: 2338
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          68
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_logv
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2336,2'
          Dst:             sieve_global_logv
    - functionName:    sieve_result_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2315
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          65
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_logv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2313,2'
          Dst:             sieve_logv
    - functionName:    sieve_result_global_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2277
      functionLinenumberEnd: 2292
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_logv
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2290,2'
          Dst:             sieve_global_logv
    - functionName:    sieve_result_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2256
      functionLinenumberEnd: 2270
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_logv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2268,2'
          Dst:             sieve_logv
    - functionName:    sieve_result_global_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2235
      functionLinenumberEnd: 2250
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_global_logv
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2248,2'
          Dst:             sieve_global_logv
    - functionName:    sieve_result_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2215
      functionLinenumberEnd: 2229
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_logv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2227,2'
          Dst:             sieve_logv
    - functionName:    sieve_result_iterate_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_result_action_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2129,2'
          Dst:             sieve_result_action_deinit
    - functionName:    sieve_result_action_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:159,2'
          Dst:             event_unref
    - functionName:    sieve_result_iterate_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2087
      functionLinenumberEnd: 2104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_iterate_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 2073
      functionLinenumberEnd: 2081
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:2075,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:2075,3'
          Dst:             t_malloc0
    - functionName:    sieve_result_transaction_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1877
      functionLinenumberEnd: 1888
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_result_action_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1880,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1880,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1880,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1884,3'
          Dst:             sieve_result_action_finish
        - Src:             'sieve-result.c:1887,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_implicit_keep_finalize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1634
      functionLinenumberEnd: 1736
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         75
      ICount:          448
      EdgeCount:       91
      CyclomaticComplexity: 18
      functionsReached:
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - sieve_action_execution_post
        - sieve_execution_exitcode_to_str
        - sieve_result_action_commit_or_rollback
        - sieve_result_action_finish
        - sieve_result_action_rollback
        - sieve_result_implicit_keep_execute
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-result.c:1643,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-result.c:1650,4'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1650,4'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1650,4'
          Dst:             e_debug
        - Src:             'sieve-result.c:1650,4'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1660,4'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1660,4'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1660,4'
          Dst:             e_debug
        - Src:             'sieve-result.c:1660,4'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1676,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1676,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1676,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1687,3'
          Dst:             sieve_result_implicit_keep_execute
        - Src:             'sieve-result.c:1690,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1690,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1690,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1693,3'
          Dst:             sieve_result_action_rollback
        - Src:             'sieve-result.c:1695,3'
          Dst:             event_unref
        - Src:             'sieve-result.c:1699,3'
          Dst:             sieve_result_implicit_keep_execute
        - Src:             'sieve-result.c:1708,3'
          Dst:             i_panic
        - Src:             'sieve-result.c:1711,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1711,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1711,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1717,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1717,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1717,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1717,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1720,2'
          Dst:             i_panic
        - Src:             'sieve-result.c:1723,23'
          Dst:             sieve_result_action_commit_or_rollback
        - Src:             'sieve-result.c:1727,2'
          Dst:             sieve_result_action_finish
        - Src:             'sieve-result.c:1730,2'
          Dst:             sieve_action_execution_post
        - Src:             'sieve-result.c:1731,2'
          Dst:             event_unref
    - functionName:    sieve_result_implicit_keep_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1630
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         112
      ICount:          694
      EdgeCount:       143
      CyclomaticComplexity: 33
      functionsReached:
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - hash_table_lookup
        - sieve_action_execution_add_side_effects
        - sieve_action_execution_post
        - sieve_execution_exitcode_to_str
        - sieve_message_get_mail
        - sieve_result_action_execute
        - sieve_result_action_start
        - sieve_result_init_action_event
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve-result.c:1490,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-result.c:1497,4'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1497,4'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1497,4'
          Dst:             e_debug
        - Src:             'sieve-result.c:1497,4'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1507,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1507,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1507,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1507,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1517,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1517,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1517,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1528,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1528,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1528,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1532,2'
          Dst:             event_unref
        - Src:             'sieve-result.c:1543,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1543,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1543,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1557,4'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1557,4'
          Dst:             e_debug
        - Src:             'sieve-result.c:1557,4'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1583,21'
          Dst:             sieve_message_get_mail
        - Src:             'sieve-result.c:1585,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1585,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1585,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1601,13'
          Dst:             hash_table_lookup
        - Src:             'sieve-result.c:1609,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1609,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1609,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1609,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1613,2'
          Dst:             sieve_action_execution_add_side_effects
        - Src:             'sieve-result.c:1616,2'
          Dst:             sieve_result_init_action_event
        - Src:             'sieve-result.c:1619,11'
          Dst:             sieve_result_action_start
        - Src:             'sieve-result.c:1623,12'
          Dst:             sieve_result_action_execute
        - Src:             'sieve-result.c:1629,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_transaction_commit_or_rollback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1813
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          222
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_execution_exitcode_to_str
        - sieve_result_action_commit_or_rollback
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-result.c:1817,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-result.c:1826,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1826,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1826,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1840,12'
          Dst:             sieve_result_action_commit_or_rollback
        - Src:             'sieve-result.c:1858,12'
          Dst:             sieve_result_action_commit_or_rollback
        - Src:             'sieve-result.c:1864,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1864,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1864,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1864,2'
          Dst:             event_send_abort
    - functionName:    sieve_result_transaction_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1773
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          201
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_execution_exitcode_to_str
        - sieve_result_action_execute
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1777,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1777,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1777,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1782,12'
          Dst:             sieve_result_action_execute
        - Src:             'sieve-result.c:1786,2'
          Dst:             sieve_action_execution_post
        - Src:             'sieve-result.c:1801,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1801,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1801,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1801,2'
          Dst:             event_send_abort
    - functionName:    sieve_result_transaction_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1754
      functionLinenumberEnd: 1767
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_result_action_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1758,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1758,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1758,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1762,12'
          Dst:             sieve_result_action_start
        - Src:             'sieve-result.c:1765,2'
          Dst:             sieve_action_execution_post
    - functionName:    sieve_result_execute_update_status
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve-result.c:1894,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-result.c:1901,3'
          Dst:             i_unreached
    - functionName:    sieve_result_execution_update
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1916
      functionLinenumberEnd: 1935
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_execution_update
        - sieve_result_execution_add_action
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1926,3'
          Dst:             sieve_action_execution_update
        - Src:             'sieve-result.c:1932,3'
          Dst:             sieve_result_execution_add_action
    - functionName:    sieve_result_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 2059
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          464
      EdgeCount:       86
      CyclomaticComplexity: 19
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_execution_post
        - sieve_execution_exitcode_to_str
        - sieve_result_execute_update_status
        - sieve_result_execution_update
        - sieve_result_implicit_keep_execute
        - sieve_result_implicit_keep_finalize
        - sieve_result_mark_executed
        - sieve_result_transaction_commit_or_rollback
        - sieve_result_transaction_execute
        - sieve_result_transaction_finish
        - sieve_result_transaction_start
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-result.c:2016,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-result.c:1945,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1945,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1945,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:1945,2'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:1951,2'
          Dst:             sieve_result_mark_executed
        - Src:             'sieve-result.c:1959,2'
          Dst:             sieve_result_execution_update
        - Src:             'sieve-result.c:1964,3'
          Dst:             sieve_result_execute_update_status
        - Src:             'sieve-result.c:1968,12'
          Dst:             sieve_result_transaction_start
        - Src:             'sieve-result.c:1972,12'
          Dst:             sieve_result_transaction_execute
        - Src:             'sieve-result.c:1973,3'
          Dst:             sieve_result_execute_update_status
        - Src:             'sieve-result.c:1977,3'
          Dst:             sieve_action_execution_post
        - Src:             'sieve-result.c:1986,3'
          Dst:             event_want_level
        - Src:             'sieve-result.c:1986,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:1986,3'
          Dst:             e_debug
        - Src:             'sieve-result.c:1986,3'
          Dst:             event_send_abort
        - Src:             'sieve-result.c:2000,3'
          Dst:             sieve_result_implicit_keep_execute
        - Src:             'sieve-result.c:2004,11'
          Dst:             sieve_result_transaction_commit_or_rollback
        - Src:             'sieve-result.c:2005,2'
          Dst:             sieve_result_execute_update_status
        - Src:             'sieve-result.c:2015,9'
          Dst:             sieve_result_implicit_keep_finalize
        - Src:             'sieve-result.c:2037,2'
          Dst:             sieve_result_transaction_finish
        - Src:             'sieve-result.c:2039,2'
          Dst:             sieve_action_execution_post
        - Src:             'sieve-result.c:2051,2'
          Dst:             event_want_level
        - Src:             'sieve-result.c:2051,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve-result.c:2051,2'
          Dst:             e_debug
        - Src:             'sieve-result.c:2051,2'
          Dst:             event_send_abort
    - functionName:    sieve_result_mark_executed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 949
      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:    sieve_result_executed_delivery
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1749
      functionLinenumberEnd: 1750
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_committed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1744
      functionLinenumberEnd: 1745
      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:    sieve_result_executed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1739
      functionLinenumberEnd: 1740
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_execution_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1475
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
        - sieve_result_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1473,2'
          Dst:             sieve_result_unref
        - Src:             'sieve-result.c:1474,2'
          Dst:             pool_unref
    - functionName:    sieve_result_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - event_unref
        - hash_table_destroy
        - i_panic
        - pool_unref
        - sieve_message_context_unref
        - sieve_result_action_deinit
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:171,2'
          Dst:             i_panic
        - Src:             'sieve-result.c:175,2'
          Dst:             sieve_message_context_unref
        - Src:             'sieve-result.c:177,2'
          Dst:             hash_table_destroy
        - Src:             'sieve-result.c:181,3'
          Dst:             sieve_result_action_deinit
        - Src:             'sieve-result.c:184,2'
          Dst:             event_unref
        - Src:             'sieve-result.c:186,2'
          Dst:             pool_unref
    - 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:    sieve_result_execution_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1460
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          90
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - sieve_result_ref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:1443,2'
          Dst:             pool_ref
        - Src:             'sieve-result.c:1444,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:1444,10'
          Dst:             p_malloc
        - Src:             'sieve-result.c:1457,2'
          Dst:             sieve_result_ref
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 154
      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:             'sieve-result.c:152,2'
          Dst:             i_panic
    - functionName:    sieve_result_print_implicit_side_effects
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_lookup
        - sieve_result_print_side_effects
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:778,12'
          Dst:             hash_table_lookup
        - Src:             'sieve-result.c:782,4'
          Dst:             sieve_result_print_side_effects
    - functionName:    sieve_result_print_side_effects
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:757,3'
          Dst:             i_panic
    - functionName:    sieve_result_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          343
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - sieve_action_is_executed
        - sieve_result_action_printf
        - sieve_result_print_implicit_side_effects
        - sieve_result_print_side_effects
        - sieve_result_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:807,2'
          Dst:             sieve_result_printf
        - Src:             'sieve-result.c:826,5'
          Dst:             sieve_result_action_printf
        - Src:             'sieve-result.c:831,5'
          Dst:             sieve_result_action_printf
        - Src:             'sieve-result.c:834,5'
          Dst:             sieve_result_action_printf
        - Src:             'sieve-result.c:840,3'
          Dst:             sieve_result_print_side_effects
        - Src:             'sieve-result.c:848,3'
          Dst:             sieve_result_printf
        - Src:             'sieve-result.c:853,2'
          Dst:             sieve_result_printf
        - Src:             'sieve-result.c:859,4'
          Dst:             sieve_result_action_printf
        - Src:             'sieve-result.c:861,4'
          Dst:             sieve_result_print_implicit_side_effects
        - Src:             'sieve-result.c:869,9'
          Dst:             sieve_action_is_executed
        - Src:             'sieve-result.c:877,5'
          Dst:             sieve_result_printf
        - Src:             'sieve-result.c:882,5'
          Dst:             sieve_result_print_implicit_side_effects
        - Src:             'sieve-result.c:886,3'
          Dst:             sieve_result_printf
        - Src:             'sieve-result.c:889,2'
          Dst:             sieve_result_printf
    - functionName:    sieve_result_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_vprintf
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:710,2'
          Dst:             sieve_result_vprintf
    - functionName:    sieve_result_action_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_vprintfa
        - t_str_new
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:717,21'
          Dst:             t_str_new
        - Src:             'sieve-result.c:721,2'
          Dst:             str_append
        - Src:             'sieve-result.c:722,2'
          Dst:             str_vprintfa
        - Src:             'sieve-result.c:723,2'
          Dst:             str_append_c
        - Src:             'sieve-result.c:726,31'
          Dst:             str_data
        - Src:             'sieve-result.c:726,49'
          Dst:             str_len
        - Src:             'sieve-result.c:726,2'
          Dst:             o_stream_nsend
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:    3
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_vprintf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - str_data
        - str_len
        - str_vprintfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:697,21'
          Dst:             t_str_new
        - Src:             'sieve-result.c:699,2'
          Dst:             str_vprintfa
        - Src:             'sieve-result.c:701,31'
          Dst:             str_data
        - Src:             'sieve-result.c:701,49'
          Dst:             str_len
        - Src:             'sieve-result.c:701,2'
          Dst:             o_stream_nsend
    - functionName:    sieve_result_seffect_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_vprintfa
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:732,21'
          Dst:             t_str_new
        - Src:             'sieve-result.c:736,2'
          Dst:             str_append
        - Src:             'sieve-result.c:737,2'
          Dst:             str_vprintfa
        - Src:             'sieve-result.c:738,2'
          Dst:             str_append_c
        - Src:             'sieve-result.c:741,31'
          Dst:             str_data
        - Src:             'sieve-result.c:741,49'
          Dst:             str_len
        - Src:             'sieve-result.c:741,2'
          Dst:             o_stream_nsend
    - functionName:    sieve_result_set_failure_action
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_set_keep_action
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_add_keep
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_result_add_action
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:669,9'
          Dst:             _sieve_result_add_action
    - functionName:    _sieve_result_add_action
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         126
      ICount:          847
      EdgeCount:       169
      CyclomaticComplexity: 45
      functionsReached:
        - hash_table_lookup
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_message_get_mail
        - sieve_message_snapshot
        - sieve_result_action_detach
        - sieve_result_init_action_event
        - sieve_result_side_effects_merge
        - sieve_runtime_error
        - sieve_runtime_get_full_command_location
        - sieve_side_effects_list_add
        - sieve_side_effects_list_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:437,2'
          Dst:             i_panic
        - Src:             'sieve-result.c:441,20'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'sieve-result.c:457,5'
          Dst:             sieve_result_action_detach
        - Src:             'sieve-result.c:463,16'
          Dst:             sieve_result_side_effects_merge
        - Src:             'sieve-result.c:468,12'
          Dst:             sieve_result_side_effects_merge
        - Src:             'sieve-result.c:488,18'
          Dst:             sieve_result_side_effects_merge
        - Src:             'sieve-result.c:495,9'
          Dst:             p_strdup
        - Src:             'sieve-result.c:504,8'
          Dst:             sieve_result_action_detach
        - Src:             'sieve-result.c:506,19'
          Dst:             sieve_result_side_effects_merge
        - Src:             'sieve-result.c:514,14'
          Dst:             sieve_result_side_effects_merge
        - Src:             'sieve-result.c:545,4'
          Dst:             sieve_runtime_error
        - Src:             'sieve-result.c:556,4'
          Dst:             sieve_runtime_error
        - Src:             'sieve-result.c:566,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:566,13'
          Dst:             p_malloc
        - Src:             'sieve-result.c:572,5'
          Dst:             p_strdup
        - Src:             'sieve-result.c:576,29'
          Dst:             p_strdup
        - Src:             'sieve-result.c:601,13'
          Dst:             hash_table_lookup
        - Src:             'sieve-result.c:629,8'
          Dst:             sieve_side_effects_list_create
        - Src:             'sieve-result.c:634,7'
          Dst:             sieve_side_effects_list_add
        - Src:             'sieve-result.c:644,26'
          Dst:             sieve_message_get_mail
        - Src:             'sieve-result.c:645,3'
          Dst:             sieve_message_snapshot
        - Src:             'sieve-result.c:650,2'
          Dst:             sieve_result_init_action_event
    - functionName:    sieve_result_add_action
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_result_add_action
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:661,9'
          Dst:             _sieve_result_add_action
    - functionName:    sieve_result_add_implicit_side_effect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          118
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_create_direct
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - sieve_side_effects_list_add
        - sieve_side_effects_list_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:282,3'
          Dst:             hash_table_create_direct
        - Src:             'sieve-result.c:285,12'
          Dst:             hash_table_lookup
        - Src:             'sieve-result.c:289,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:289,12'
          Dst:             p_malloc
        - Src:             'sieve-result.c:292,22'
          Dst:             sieve_side_effects_list_create
        - Src:             'sieve-result.c:294,3'
          Dst:             hash_table_insert
        - Src:             'sieve-result.c:302,2'
          Dst:             sieve_side_effects_list_add
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:    sieve_result_extension_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:241,38'
          Dst:             array_count_i
        - Src:             'sieve-result.c:244,8'
          Dst:             array_idx_i
    - functionName:    sieve_result_extension_set_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:232,2'
          Dst:             array_idx_set_i
    - functionName:    sieve_result_get_exec_seq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      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:    sieve_result_get_message_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 213
      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:    sieve_result_get_message_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_get_script_env
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_result_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_result_event_log_message
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:106,2'
          Dst:             i_panic
    - functionName:    sieve_result_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          118
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - event_add_category
        - event_create
        - event_set_log_message_callback
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - sieve_message_context_create
        - sieve_result_event_log_message
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-result.c:118,2'
          Dst:             pool_ref
        - Src:             'sieve-result.c:120,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-result.c:120,11'
          Dst:             p_malloc
        - Src:             'sieve-result.c:125,18'
          Dst:             event_create
        - Src:             'sieve-result.c:126,2'
          Dst:             event_add_category
        - Src:             'sieve-result.c:128,3'
          Dst:             event_set_log_message_callback
        - Src:             'sieve-result.c:128,3'
          Dst:             sieve_result_event_log_message
        - Src:             'sieve-result.c:132,2'
          Dst:             array_create_i
        - Src:             'sieve-result.c:136,3'
          Dst:             sieve_message_context_create
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_logfile_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_logfile_write
        - t_strdup_vprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:878,41'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-error.c:878,2'
          Dst:             sieve_logfile_write
    - functionName:    sieve_logfile_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - i_panic
        - o_stream_send
        - sieve_error_params_add_prefix
        - str_append
        - str_data
        - str_len
        - t_pop
        - t_push
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:835,2'
          Dst:             t_push
        - Src:             'sieve-error.c:836,12'
          Dst:             t_str_new
        - Src:             'sieve-error.c:837,3'
          Dst:             sieve_error_params_add_prefix
        - Src:             'sieve-error.c:839,3'
          Dst:             str_append
        - Src:             'sieve-error.c:840,3'
          Dst:             str_append
        - Src:             'sieve-error.c:842,12'
          Dst:             str_len
        - Src:             'sieve-error.c:843,25'
          Dst:             str_data
        - Src:             'sieve-error.c:846,15'
          Dst:             o_stream_send
        - Src:             'sieve-error.c:853,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:853,4'
          Dst:             i_panic
        - Src:             'sieve-error.c:856,3'
          Dst:             e_error
    - functionName:    sieve_error_params_add_prefix
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - str_append
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve-error.c:681,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-error.c:677,3'
          Dst:             str_append
        - Src:             'sieve-error.c:678,3'
          Dst:             str_append
        - Src:             'sieve-error.c:683,3'
          Dst:             str_append
        - Src:             'sieve-error.c:686,3'
          Dst:             str_append
        - Src:             'sieve-error.c:689,3'
          Dst:             str_append
        - Src:             'sieve-error.c:692,3'
          Dst:             str_append
        - Src:             'sieve-error.c:695,3'
          Dst:             i_unreached
    - 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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_logfile_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 1005
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          300
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - close
        - e_error
        - eacces_error_get_creating
        - fstat
        - localtime
        - o_stream_create_fd
        - open
        - rename
        - sieve_logfile_printf
        - strftime
        - t_strconcat
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:895,7'
          Dst:             open
        - Src:             'sieve-error.c:897,7'
          Dst:             __errno_location
        - Src:             'sieve-error.c:898,4'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-error.c:898,4'
          Dst:             e_error
        - Src:             'sieve-error.c:904,4'
          Dst:             e_error
        - Src:             'sieve-error.c:913,7'
          Dst:             fstat
        - Src:             'sieve-error.c:914,4'
          Dst:             e_error
        - Src:             'sieve-error.c:918,8'
          Dst:             close
        - Src:             'sieve-error.c:919,5'
          Dst:             e_error
        - Src:             'sieve-error.c:933,8'
          Dst:             close
        - Src:             'sieve-error.c:934,5'
          Dst:             e_error
        - Src:             'sieve-error.c:941,14'
          Dst:             t_strconcat
        - Src:             'sieve-error.c:942,8'
          Dst:             rename
        - Src:             'sieve-error.c:943,8'
          Dst:             __errno_location
        - Src:             'sieve-error.c:944,9'
          Dst:             __errno_location
        - Src:             'sieve-error.c:946,7'
          Dst:             t_strconcat
        - Src:             'sieve-error.c:948,6'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-error.c:948,6'
          Dst:             e_error
        - Src:             'sieve-error.c:953,6'
          Dst:             e_error
        - Src:             'sieve-error.c:961,9'
          Dst:             open
        - Src:             'sieve-error.c:964,9'
          Dst:             __errno_location
        - Src:             'sieve-error.c:965,6'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-error.c:965,6'
          Dst:             e_error
        - Src:             'sieve-error.c:971,6'
          Dst:             e_error
        - Src:             'sieve-error.c:982,12'
          Dst:             o_stream_create_fd
        - Src:             'sieve-error.c:985,3'
          Dst:             e_error
        - Src:             'sieve-error.c:997,9'
          Dst:             time
        - Src:             'sieve-error.c:998,8'
          Dst:             localtime
        - Src:             'sieve-error.c:1000,7'
          Dst:             strftime
        - Src:             'sieve-error.c:1001,4'
          Dst:             sieve_logfile_printf
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    34
      BranchProfiles:  []
      Callsites:       []
    - 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:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_logfile_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - e_error
        - o_stream_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:1028,3'
          Dst:             o_stream_destroy
        - Src:             'sieve-error.c:1030,8'
          Dst:             close
        - Src:             'sieve-error.c:1031,5'
          Dst:             e_error
    - functionName:    sieve_logfile_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_logfile_start
        - sieve_logfile_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:1017,3'
          Dst:             sieve_logfile_start
        - Src:             'sieve-error.c:1019,2'
          Dst:             sieve_logfile_write
    - functionName:    sieve_logfile_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          57
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:1047,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-error.c:1048,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-error.c:1048,13'
          Dst:             p_malloc
        - Src:             'sieve-error.c:1049,2'
          Dst:             sieve_error_handler_init
        - Src:             'sieve-error.c:1057,22'
          Dst:             p_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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_error_handler_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_strbuf_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_params_add_prefix
        - str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:780,2'
          Dst:             sieve_error_params_add_prefix
        - Src:             'sieve-error.c:781,2'
          Dst:             str_append
        - Src:             'sieve-error.c:784,3'
          Dst:             str_append
        - Src:             'sieve-error.c:786,3'
          Dst:             str_append
    - functionName:    sieve_strbuf_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:796,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-error.c:797,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-error.c:797,13'
          Dst:             p_malloc
        - Src:             'sieve-error.c:800,2'
          Dst:             sieve_error_handler_init
    - functionName:    sieve_stderr_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fprintf
        - sieve_error_params_add_prefix
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:733,21'
          Dst:             t_str_new
        - Src:             'sieve-error.c:735,2'
          Dst:             sieve_error_params_add_prefix
        - Src:             'sieve-error.c:737,29'
          Dst:             str_c
        - Src:             'sieve-error.c:737,2'
          Dst:             fprintf
    - functionName:    sieve_stderr_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:750,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-error.c:752,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-error.c:752,13'
          Dst:             p_malloc
        - Src:             'sieve-error.c:753,2'
          Dst:             sieve_error_handler_init
    - functionName:    sieve_master_ehandler_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:712,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-error.c:713,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-error.c:713,13'
          Dst:             p_malloc
        - Src:             'sieve-error.c:714,2'
          Dst:             sieve_error_handler_init
    - functionName:    sieve_error_handler_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_error_handler_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - pool_unref
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:646,2'
          Dst:             i_panic
        - Src:             'sieve-error.c:654,2'
          Dst:             pool_unref
    - functionName:    sieve_error_handler_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          32
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_error_handler_accept_debuglog
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_error_handler_accept_infolog
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_warnings
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_errors
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_critical
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_criticalv
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:563,2'
          Dst:             t_push
        - Src:             'sieve-error.c:564,3'
          Dst:             sieve_criticalv
        - Src:             'sieve-error.c:566,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:566,4'
          Dst:             i_panic
    - functionName:    sieve_criticalv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_direct_master_log
        - sieve_internal_error_params
        - t_strdup_vprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:448,5'
          Dst:             t_strdup_vprintf
        - Src:             'sieve-error.c:447,2'
          Dst:             sieve_direct_master_log
        - Src:             'sieve-error.c:449,2'
          Dst:             sieve_internal_error_params
    - functionName:    sieve_direct_master_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          115
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_log
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:105,5'
          Dst:             t_strconcat
        - Src:             'sieve-error.c:108,2'
          Dst:             event_log
    - functionName:    sieve_internal_error_params
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - localtime
        - sieve_direct_log
        - strftime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:358,7'
          Dst:             localtime
        - Src:             'sieve-error.c:359,9'
          Dst:             strftime
        - Src:             'sieve-error.c:363,3'
          Dst:             sieve_direct_log
        - Src:             'sieve-error.c:366,3'
          Dst:             sieve_direct_log
    - functionName:    sieve_direct_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-error-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_direct_logv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-error-private.h:63,2'
          Dst:             sieve_direct_logv
    - functionName:    sieve_direct_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          386
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - event_logv
        - i_unreached
        - sieve_errors_more_allowed
        - str_c
        - t_str_new
        - t_strconcat
      functionUses:    5
      BranchProfiles:
        - Branch String:   'sieve-error.c:130,3'
          Branch Sides:    []
        - Branch String:   'sieve-error.c:185,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-error.c:132,19'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-error.c:147,4'
          Dst:             i_unreached
        - Src:             'sieve-error.c:166,5'
          Dst:             t_strconcat
        - Src:             'sieve-error.c:173,32'
          Dst:             t_str_new
        - Src:             'sieve-error.c:177,3'
          Dst:             event_logv
        - Src:             'sieve-error.c:181,10'
          Dst:             str_c
    - functionName:    sieve_errors_more_allowed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_debug
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:537,2'
          Dst:             t_push
        - Src:             'sieve-error.c:538,3'
          Dst:             sieve_logv
        - Src:             'sieve-error.c:539,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:539,4'
          Dst:             i_panic
    - functionName:    sieve_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_direct_logv
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:395,2'
          Dst:             sieve_direct_logv
    - functionName:    sieve_info
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:514,2'
          Dst:             t_push
        - Src:             'sieve-error.c:515,3'
          Dst:             sieve_logv
        - Src:             'sieve-error.c:516,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:516,4'
          Dst:             i_panic
    - functionName:    sieve_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:491,2'
          Dst:             t_push
        - Src:             'sieve-error.c:492,3'
          Dst:             sieve_logv
        - Src:             'sieve-error.c:493,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:493,4'
          Dst:             i_panic
    - functionName:    sieve_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:468,2'
          Dst:             t_push
        - Src:             'sieve-error.c:469,3'
          Dst:             sieve_logv
        - Src:             'sieve-error.c:470,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:470,4'
          Dst:             i_panic
    - functionName:    sieve_event_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_event_logv
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:432,2'
          Dst:             sieve_event_logv
    - functionName:    sieve_event_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_direct_logv
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:415,2'
          Dst:             t_push
        - Src:             'sieve-error.c:416,3'
          Dst:             sieve_direct_logv
        - Src:             'sieve-error.c:417,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:417,4'
          Dst:             i_panic
    - functionName:    sieve_internal_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_internal_error_params
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:386,2'
          Dst:             sieve_internal_error_params
    - functionName:    sieve_global_info_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_global_info_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:336,2'
          Dst:             t_push
        - Src:             'sieve-error.c:337,3'
          Dst:             sieve_global_info_logv
        - Src:             'sieve-error.c:338,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:338,4'
          Dst:             i_panic
    - functionName:    sieve_global_info_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_direct_logv
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:216,2'
          Dst:             sieve_direct_logv
    - functionName:    sieve_global_info_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_global_info_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:311,2'
          Dst:             t_push
        - Src:             'sieve-error.c:312,3'
          Dst:             sieve_global_info_logv
        - Src:             'sieve-error.c:313,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:313,4'
          Dst:             i_panic
    - functionName:    sieve_global_info
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_global_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:286,2'
          Dst:             t_push
        - Src:             'sieve-error.c:287,3'
          Dst:             sieve_global_logv
        - Src:             'sieve-error.c:288,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:288,4'
          Dst:             i_panic
    - functionName:    sieve_global_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_direct_logv
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:207,2'
          Dst:             sieve_direct_logv
    - functionName:    sieve_global_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_global_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:262,2'
          Dst:             t_push
        - Src:             'sieve-error.c:263,3'
          Dst:             sieve_global_logv
        - Src:             'sieve-error.c:264,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:264,4'
          Dst:             i_panic
    - functionName:    sieve_global_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_global_logv
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:238,2'
          Dst:             t_push
        - Src:             'sieve-error.c:239,3'
          Dst:             sieve_global_logv
        - Src:             'sieve-error.c:240,4'
          Dst:             t_pop
        - Src:             'sieve-error.c:240,4'
          Dst:             i_panic
    - functionName:    sieve_errors_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 82
      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:    sieve_errors_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      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:    sieve_error_from_external
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_noconst
        - tolower
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:64,12'
          Dst:             t_strdup_noconst
        - Src:             'sieve-error.c:65,15'
          Dst:             tolower
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_error_script_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_script_name
        - t_strdup_printf
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-error.c:42,35'
          Dst:             sieve_script_name
        - Src:             'sieve-error.c:48,10'
          Dst:             t_strdup_printf
        - Src:             'sieve-error.c:54,9'
          Dst:             t_strdup_printf
    - functionName:    sieve_opr_object_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_read
        - sieve_opr_object_read_data
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-objects.c:87,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-objects.c:89,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-objects.c:92,7'
          Dst:             sieve_opr_object_read_data
        - Src:             'sieve-objects.c:101,2'
          Dst:             sieve_code_dumpf
    - functionName:    sieve_opr_object_read_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          128
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_binary_read_byte
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-objects.c:44,8'
          Dst:             sieve_binary_read_byte
    - functionName:    sieve_opr_object_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_read
        - sieve_opr_object_read_data
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-objects.c:69,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-objects.c:72,9'
          Dst:             sieve_opr_object_read_data
    - functionName:    sieve_opr_object_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-objects.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_operand_emit
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-objects.c:23,8'
          Dst:             sieve_operand_emit
        - Src:             'sieve-objects.c:25,9'
          Dst:             sieve_binary_emit_byte
    - functionName:    sieve_opr_comparator_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:126,2'
          Dst:             sieve_opr_object_emit
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_comparator_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _get_object_registry
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:78,3'
          Dst:             _get_object_registry
        - Src:             'sieve-comparators.c:82,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'sieve-comparators.c:85,8'
          Dst:             sieve_ast_pool
        - Src:             'sieve-comparators.c:85,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-comparators.c:85,8'
          Dst:             p_malloc
    - functionName:    _get_object_registry
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_comparator_extension
        - sieve_validator_object_registry_get
        - sieve_validator_svinst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:58,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-comparators.c:59,13'
          Dst:             sieve_get_comparator_extension
        - Src:             'sieve-comparators.c:60,9'
          Dst:             sieve_validator_object_registry_get
    - functionName:    sieve_comparator_octet_skip
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_comparator_tag_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tag_comparator_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          126
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_comparator_create
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:146,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'sieve-comparators.c:155,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-comparators.c:164,11'
          Dst:             str_c
        - Src:             'sieve-comparators.c:163,8'
          Dst:             sieve_comparator_create
        - Src:             'sieve-comparators.c:166,3'
          Dst:             str_c
        - Src:             'sieve-comparators.c:166,3'
          Dst:             str_sanitize
        - Src:             'sieve-comparators.c:166,3'
          Dst:             sieve_validator_error
        - Src:             'sieve-comparators.c:175,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tag_comparator_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_comparator_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:191,2'
          Dst:             sieve_opr_comparator_emit
    - functionName:    sieve_comparator_tag_is
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_comparators_link_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     externalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_comparator_extension
        - sieve_validator_register_tag
        - sieve_validator_svinst
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:204,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-comparators.c:205,13'
          Dst:             sieve_get_comparator_extension
        - Src:             'sieve-comparators.c:207,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_comparator_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:68,3'
          Dst:             _get_object_registry
        - Src:             'sieve-comparators.c:70,2'
          Dst:             sieve_validator_object_registry_add
    - functionName:    cmp_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-comparators.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_object_registry_add
        - sieve_validator_object_registry_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-comparators.c:96,3'
          Dst:             sieve_validator_object_registry_init
        - Src:             'sieve-comparators.c:101,3'
          Dst:             sieve_validator_object_registry_add
    - functionName:    sieve_opr_match_type_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:204,2'
          Dst:             sieve_opr_object_emit
    - functionName:    sieve_match_type_create_instance
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _get_object_registry
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:100,3'
          Dst:             _get_object_registry
        - Src:             'sieve-match-types.c:104,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'sieve-match-types.c:107,9'
          Dst:             sieve_ast_pool
        - Src:             'sieve-match-types.c:107,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match-types.c:107,9'
          Dst:             p_malloc
    - functionName:    _get_object_registry
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_match_type_extension
        - sieve_validator_object_registry_get
        - sieve_validator_svinst
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:70,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-match-types.c:71,13'
          Dst:             sieve_get_match_type_extension
        - Src:             'sieve-match-types.c:72,9'
          Dst:             sieve_validator_object_registry_get
    - 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:             'dovecot/src/lib/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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_match_type_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:89,3'
          Dst:             _get_object_registry
        - Src:             'sieve-match-types.c:91,9'
          Dst:             sieve_validator_object_registry_find
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:    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:    sieve_match_substring_validate_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:580,3'
          Dst:             sieve_validator_error
    - functionName:    sieve_match_type_arguments_remove
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_argument_is_comparator
        - sieve_argument_is_match_type
        - sieve_ast_arguments_detach
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:534,7'
          Dst:             sieve_argument_is_comparator
        - Src:             'sieve-match-types.c:535,10'
          Dst:             sieve_ast_arguments_detach
        - Src:             'sieve-match-types.c:539,7'
          Dst:             sieve_argument_is_match_type
        - Src:             'sieve-match-types.c:540,10'
          Dst:             sieve_ast_arguments_detach
    - functionName:    sieve_argument_is_comparator
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_argument_is_match_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tag_match_type_is_instance_of
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_type_create_instance
        - sieve_match_type_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:391,10'
          Dst:             sieve_match_type_exists
        - Src:             'sieve-match-types.c:393,14'
          Dst:             sieve_match_type_create_instance
    - functionName:    tag_match_type_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          101
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:410,10'
          Dst:             sieve_ast_pool
        - Src:             'sieve-match-types.c:410,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match-types.c:410,10'
          Dst:             p_malloc
    - functionName:    tag_match_type_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_match_type_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:443,8'
          Dst:             sieve_opr_match_type_emit
    - functionName:    sieve_comparator_copy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:81,33'
          Dst:             malloc_multiply_check
        - Src:             './sieve-comparators.h:81,33'
          Dst:             p_malloc
    - functionName:    sieve_match_type_copy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:91,33'
          Dst:             malloc_multiply_check
        - Src:             './sieve-match-types.h:91,33'
          Dst:             p_malloc
    - functionName:    sieve_match_type_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          260
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - malloc_multiply_check
        - sieve_argument_is_comparator
        - sieve_argument_is_match_type
        - sieve_ast_pool
        - sieve_comparator_copy
        - sieve_comparator_tag_get
        - sieve_match_type_copy
        - t_malloc0
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:479,7'
          Dst:             sieve_argument_is_comparator
        - Src:             'sieve-match-types.c:480,10'
          Dst:             sieve_comparator_tag_get
        - Src:             'sieve-match-types.c:485,7'
          Dst:             sieve_argument_is_match_type
        - Src:             'sieve-match-types.c:496,32'
          Dst:             sieve_ast_pool
        - Src:             'sieve-match-types.c:496,10'
          Dst:             sieve_match_type_copy
        - Src:             'sieve-match-types.c:498,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match-types.c:498,11'
          Dst:             t_malloc0
        - Src:             'sieve-match-types.c:511,31'
          Dst:             sieve_ast_pool
        - Src:             'sieve-match-types.c:511,9'
          Dst:             sieve_comparator_copy
    - functionName:    sieve_match_types_link_tags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_comparator_extension
        - sieve_validator_register_tag
        - sieve_validator_svinst
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:454,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-match-types.c:455,13'
          Dst:             sieve_get_comparator_extension
        - Src:             'sieve-match-types.c:457,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_match_values_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - get_interpreter_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:332,3'
          Dst:             get_interpreter_context
        - Src:             'sieve-match-types.c:341,14'
          Dst:             array_count_i
        - Src:             'sieve-match-types.c:342,28'
          Dst:             array_idx_i
    - functionName:    get_interpreter_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_get_match_type_extension
        - sieve_interpreter_extension_get_context
        - sieve_interpreter_extension_register
        - sieve_interpreter_pool
        - sieve_interpreter_svinst
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:162,11'
          Dst:             sieve_interpreter_svinst
        - Src:             'sieve-match-types.c:163,13'
          Dst:             sieve_get_match_type_extension
        - Src:             'sieve-match-types.c:166,3'
          Dst:             sieve_interpreter_extension_get_context
        - Src:             'sieve-match-types.c:168,17'
          Dst:             sieve_interpreter_pool
        - Src:             'sieve-match-types.c:169,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match-types.c:169,9'
          Dst:             p_malloc
        - Src:             'sieve-match-types.c:171,3'
          Dst:             sieve_interpreter_extension_register
    - 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_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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    mtch_interpreter_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:146,3'
          Dst:             pool_unref
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mtch_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_object_registry_add
        - sieve_validator_object_registry_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:118,3'
          Dst:             sieve_validator_object_registry_init
        - Src:             'sieve-match-types.c:123,3'
          Dst:             sieve_validator_object_registry_add
    - functionName:    sieve_match_values_abort
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:324,2'
          Dst:             pool_unref
    - functionName:    sieve_match_values_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - get_interpreter_context
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:306,8'
          Dst:             get_interpreter_context
        - Src:             'sieve-match-types.c:311,3'
          Dst:             pool_unref
    - functionName:    sieve_match_values_skip
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_match_values_add_entry
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:295,9'
          Dst:             sieve_match_values_add_entry
    - functionName:    sieve_match_values_add_entry
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_count_i
        - array_idx_i
        - str_new
        - str_truncate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:236,24'
          Dst:             array_count_i
        - Src:             'sieve-match-types.c:237,11'
          Dst:             str_new
        - Src:             'sieve-match-types.c:238,3'
          Dst:             array_append_i
        - Src:             'sieve-match-types.c:241,4'
          Dst:             array_idx_i
        - Src:             'sieve-match-types.c:243,3'
          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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    sieve_match_values_add_char
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_match_values_add_entry
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:284,20'
          Dst:             sieve_match_values_add_entry
        - Src:             'sieve-match-types.c:287,3'
          Dst:             str_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_match_values_add_cstr
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_values_add_entry
        - str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:276,20'
          Dst:             sieve_match_values_add_entry
        - Src:             'sieve-match-types.c:279,3'
          Dst:             str_append
    - functionName:    sieve_match_values_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_values_add_entry
        - str_append_str
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:267,20'
          Dst:             sieve_match_values_add_entry
        - Src:             'sieve-match-types.c:270,3'
          Dst:             str_append_str
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    sieve_match_values_set
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - str_append_str
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:253,33'
          Dst:             array_count_i
        - Src:             'sieve-match-types.c:254,25'
          Dst:             array_idx_i
        - Src:             'sieve-match-types.c:258,4'
          Dst:             str_truncate
        - Src:             'sieve-match-types.c:259,4'
          Dst:             str_append_str
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_match_values_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - get_interpreter_context
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:209,3'
          Dst:             get_interpreter_context
        - Src:             'sieve-match-types.c:215,16'
          Dst:             pool_alloconly_create
        - Src:             'sieve-match-types.c:217,17'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match-types.c:217,17'
          Dst:             p_malloc
        - Src:             'sieve-match-types.c:221,2'
          Dst:             array_create_i
    - functionName:    sieve_match_values_are_enabled
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_interpreter_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:200,3'
          Dst:             get_interpreter_context
    - functionName:    sieve_match_values_set_enabled
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_interpreter_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:186,3'
          Dst:             get_interpreter_context
    - functionName:    sieve_match_type_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match-types.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match-types.c:80,3'
          Dst:             _get_object_registry
        - Src:             'sieve-match-types.c:82,2'
          Dst:             sieve_validator_object_registry_add
    - functionName:    sieve_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_address_list_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address.h:44,2'
          Dst:             sieve_stringlist_set_trace
    - functionName:    sieve_address_list_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address.h:38,9'
          Dst:             sieve_stringlist_get_length
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_address_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address.h:32,2'
          Dst:             sieve_stringlist_reset
    - 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:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_address_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_address_part_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address-parts.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address-parts.h:88,2'
          Dst:             sieve_opr_object_emit
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_address_part_create_instance
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _get_object_registry
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:93,3'
          Dst:             _get_object_registry
        - Src:             'sieve-address-parts.c:97,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'sieve-address-parts.c:100,10'
          Dst:             sieve_ast_pool
        - Src:             'sieve-address-parts.c:100,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-address-parts.c:100,10'
          Dst:             p_malloc
    - functionName:    _get_object_registry
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_address_part_extension
        - sieve_validator_object_registry_get
        - sieve_validator_svinst
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:62,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-address-parts.c:63,13'
          Dst:             sieve_get_address_part_extension
        - Src:             'sieve-address-parts.c:64,9'
          Dst:             sieve_validator_object_registry_get
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_address_part_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:82,3'
          Dst:             _get_object_registry
        - Src:             'sieve-address-parts.c:84,9'
          Dst:             sieve_validator_object_registry_find
    - functionName:    addrp_domain_extract_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    addrp_localpart_extract_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    addrp_all_extract_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_address_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:490,9'
          Dst:             smtp_address_encode
    - functionName:    sieve_opr_address_part_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address-parts.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address-parts.h:104,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_opr_match_type_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:219,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_opr_comparator_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:140,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_addrmatch_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          231
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - sieve_opr_address_part_read
        - sieve_opr_comparator_read
        - sieve_opr_match_type_read
        - sieve_opr_optional_read
        - sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-address-parts.c:431,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-address-parts.c:424,14'
          Dst:             sieve_opr_optional_read
        - Src:             'sieve-address-parts.c:434,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-address-parts.c:440,13'
          Dst:             sieve_opr_comparator_read
        - Src:             'sieve-address-parts.c:444,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-address-parts.c:450,13'
          Dst:             sieve_opr_match_type_read
        - Src:             'sieve-address-parts.c:454,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-address-parts.c:460,13'
          Dst:             sieve_opr_address_part_read
        - Src:             'sieve-address-parts.c:465,5'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_address_part_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-address-parts.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-address-parts.h:95,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_opr_match_type_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:211,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_opr_comparator_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:132,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    sieve_addrmatch_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_opr_address_part_dump
        - sieve_opr_comparator_dump
        - sieve_opr_match_type_dump
        - sieve_opr_optional_dump
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-address-parts.c:384,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-address-parts.c:380,14'
          Dst:             sieve_opr_optional_dump
        - Src:             'sieve-address-parts.c:386,11'
          Dst:             sieve_opr_comparator_dump
        - Src:             'sieve-address-parts.c:389,11'
          Dst:             sieve_opr_match_type_dump
        - Src:             'sieve-address-parts.c:392,11'
          Dst:             sieve_opr_address_part_dump
    - functionName:    sieve_address_part_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_list_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:358,2'
          Dst:             sieve_address_list_set_trace
    - functionName:    sieve_address_part_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_list_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:348,9'
          Dst:             sieve_address_list_get_length
    - functionName:    sieve_address_part_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_list_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:339,2'
          Dst:             sieve_address_list_reset
    - functionName:    sieve_address_part_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          206
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - sieve_address_list_next_item
        - sieve_runtime_trace
        - smtp_address_encode_path
        - str_c
        - str_len
        - str_sanitize
        - strlen
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:291,14'
          Dst:             sieve_address_list_next_item
        - Src:             'sieve-address-parts.c:302,20'
          Dst:             str_c
        - Src:             'sieve-address-parts.c:302,7'
          Dst:             str_sanitize
        - Src:             'sieve-address-parts.c:298,6'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address-parts.c:305,9'
          Dst:             str_len
        - Src:             'sieve-address-parts.c:318,6'
          Dst:             smtp_address_encode_path
        - Src:             'sieve-address-parts.c:314,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address-parts.c:326,36'
          Dst:             strlen
        - Src:             'sieve-address-parts.c:326,14'
          Dst:             t_str_new_const
    - functionName:    sieve_address_part_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:265,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-address-parts.c:265,12'
          Dst:             t_malloc0
    - functionName:    tag_address_part_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_address_part_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:215,2'
          Dst:             sieve_opr_address_part_emit
    - functionName:    tag_address_part_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tag_address_part_is_instance_of
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_address_part_create_instance
        - sieve_address_part_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:178,10'
          Dst:             sieve_address_part_exists
        - Src:             'sieve-address-parts.c:180,15'
          Dst:             sieve_address_part_create_instance
    - functionName:    sieve_address_parts_link_tags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_get_address_part_extension
        - sieve_validator_register_tag
        - sieve_validator_svinst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:131,11'
          Dst:             sieve_validator_svinst
        - Src:             'sieve-address-parts.c:132,13'
          Dst:             sieve_get_address_part_extension
        - Src:             'sieve-address-parts.c:134,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_address_part_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_object_registry
        - sieve_validator_object_registry_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:72,3'
          Dst:             _get_object_registry
        - Src:             'sieve-address-parts.c:74,2'
          Dst:             sieve_validator_object_registry_add
    - functionName:    addrp_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_object_registry_add
        - sieve_validator_object_registry_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-parts.c:112,3'
          Dst:             sieve_validator_object_registry_init
        - Src:             'sieve-address-parts.c:117,3'
          Dst:             sieve_validator_object_registry_add
    - functionName:    sieve_address_source_get_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-source.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          160
      EdgeCount:       28
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_get_postmaster_smtp
        - sieve_message_get_final_recipient
        - sieve_message_get_orig_recipient
        - sieve_message_get_sender
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-address-source.c:64,3'
          Branch Sides:    []
        - Branch String:   'sieve-address-source.c:76,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-address-source.c:78,13'
          Dst:             sieve_message_get_sender
        - Src:             'sieve-address-source.c:81,13'
          Dst:             sieve_message_get_final_recipient
        - Src:             'sieve-address-source.c:84,13'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'sieve-address-source.c:90,13'
          Dst:             sieve_get_postmaster_smtp
    - functionName:    sieve_address_source_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address-source.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          146
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - pool_datastack_create
        - smtp_address_clone
        - smtp_address_parse_path
        - strcmp
        - strlen
        - t_str_lcase
        - t_str_trim
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address-source.c:21,10'
          Dst:             t_str_trim
        - Src:             'sieve-address-source.c:22,10'
          Dst:             t_str_lcase
        - Src:             'sieve-address-source.c:23,12'
          Dst:             strlen
        - Src:             'sieve-address-source.c:25,7'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:27,14'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:29,14'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:31,14'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:33,14'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:35,14'
          Dst:             strcmp
        - Src:             'sieve-address-source.c:38,4'
          Dst:             pool_datastack_create
        - Src:             'sieve-address-source.c:37,14'
          Dst:             smtp_address_parse_path
        - Src:             'sieve-address-source.c:42,20'
          Dst:             smtp_address_clone
    - functionName:    sieve_opr_match_type_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:219,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_opr_comparator_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:140,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_match_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          200
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - sieve_opr_comparator_read
        - sieve_opr_match_type_read
        - sieve_opr_optional_read
        - sieve_runtime_trace_error
      functionUses:    10
      BranchProfiles:
        - Branch String:   'sieve-match.c:261,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-match.c:254,14'
          Dst:             sieve_opr_optional_read
        - Src:             'sieve-match.c:264,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-match.c:270,13'
          Dst:             sieve_opr_comparator_read
        - Src:             'sieve-match.c:274,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'sieve-match.c:280,13'
          Dst:             sieve_opr_match_type_read
        - Src:             'sieve-match.c:284,5'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_match_type_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-match-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-match-types.h:211,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_opr_comparator_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-comparators.h'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-comparators.h:132,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    sieve_match_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_opr_comparator_dump
        - sieve_opr_match_type_dump
        - sieve_opr_optional_dump
      functionUses:    10
      BranchProfiles:
        - Branch String:   'sieve-match.c:219,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-match.c:215,14'
          Dst:             sieve_opr_optional_dump
        - Src:             'sieve-match.c:221,11'
          Dst:             sieve_opr_comparator_dump
        - Src:             'sieve-match.c:224,11'
          Dst:             sieve_opr_match_type_dump
    - functionName:    sieve_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          144
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_match_begin
        - sieve_match_end
        - sieve_match_value
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
        - sieve_stringlist_set_trace
        - str_c
        - str_len
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match.c:162,14'
          Dst:             sieve_match_begin
        - Src:             'sieve-match.c:167,2'
          Dst:             sieve_stringlist_reset
        - Src:             'sieve-match.c:169,3'
          Dst:             sieve_stringlist_set_trace
        - Src:             'sieve-match.c:179,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-match.c:183,11'
          Dst:             str_c
        - Src:             'sieve-match.c:183,30'
          Dst:             str_len
        - Src:             'sieve-match.c:182,12'
          Dst:             sieve_match_value
        - Src:             'sieve-match.c:193,8'
          Dst:             sieve_match_end
    - functionName:    sieve_match_begin
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          171
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match.c:42,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-match.c:43,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-match.c:43,9'
          Dst:             p_malloc
        - Src:             'sieve-match.c:49,16'
          Dst:             sieve_runtime_trace_active
        - Src:             'sieve-match.c:53,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'sieve-match.c:54,3'
          Dst:             sieve_runtime_trace
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    sieve_match_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          245
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
        - sieve_stringlist_set_trace
        - str_c
        - str_len
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match.c:77,9'
          Dst:             str_sanitize
        - Src:             'sieve-match.c:76,3'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-match.c:82,2'
          Dst:             sieve_stringlist_reset
        - Src:             'sieve-match.c:85,3'
          Dst:             sieve_stringlist_set_trace
        - Src:             'sieve-match.c:87,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'sieve-match.c:99,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-match.c:100,32'
          Dst:             t_push
        - Src:             'sieve-match.c:103,5'
          Dst:             str_c
        - Src:             'sieve-match.c:103,22'
          Dst:             str_len
        - Src:             'sieve-match.c:107,19'
          Dst:             str_c
        - Src:             'sieve-match.c:107,6'
          Dst:             str_sanitize
        - Src:             'sieve-match.c:105,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-match.c:110,5'
          Dst:             t_pop
        - Src:             'sieve-match.c:110,5'
          Dst:             i_panic
        - Src:             'sieve-match.c:118,2'
          Dst:             sieve_runtime_trace_ascend
    - functionName:    sieve_match_end
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - pool_unref
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-match.c:141,2'
          Dst:             pool_unref
        - Src:             'sieve-match.c:143,2'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-match.c:147,2'
          Dst:             sieve_runtime_trace_ascend
    - 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:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit_string_list_operand
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_generate_argument
        - sieve_opr_stringlist_emit_end
        - sieve_opr_stringlist_emit_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:105,2'
          Dst:             sieve_opr_stringlist_emit_start
        - Src:             'sieve-commands.c:111,8'
          Dst:             sieve_generate_argument
        - Src:             'sieve-commands.c:117,2'
          Dst:             sieve_opr_stringlist_emit_end
    - functionName:    _verify_header_name_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - rfc2822_header_field_name_verify
        - sieve_validator_warning
        - str_c
        - str_len
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:397,40'
          Dst:             str_c
        - Src:             'sieve-commands.c:397,53'
          Dst:             str_len
        - Src:             'sieve-commands.c:397,7'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'sieve-commands.c:398,3'
          Dst:             str_c
        - Src:             'sieve-commands.c:398,3'
          Dst:             str_sanitize
        - Src:             'sieve-commands.c:398,3'
          Dst:             sieve_validator_warning
    - functionName:    arg_string_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_string_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:75,2'
          Dst:             sieve_opr_string_emit
    - functionName:    sieve_command_verify_headers_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _verify_header_name_item
        - sieve_ast_stringlist_map
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:410,10'
          Dst:             sieve_ast_stringlist_map
        - Src:             'sieve-commands.c:410,10'
          Dst:             _verify_header_name_item
    - functionName:    sieve_command_block_exits_unconditionally
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 381
      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:    sieve_command_exit_block_unconditionally
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_command_parent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:372,33'
          Dst:             sieve_command_parent
    - functionName:    sieve_command_parent
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_command_find_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_command_add_dynamic_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_argument_create
        - sieve_ast_argument_tag_create
        - sieve_ast_argument_tag_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:334,9'
          Dst:             sieve_ast_argument_tag_insert
        - Src:             'sieve-commands.c:338,9'
          Dst:             sieve_ast_argument_tag_create
        - Src:             'sieve-commands.c:343,18'
          Dst:             sieve_argument_create
    - functionName:    sieve_argument_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:220,9'
          Dst:             sieve_ast_pool
        - Src:             'sieve-commands.c:221,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-commands.c:221,8'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_command_type_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    33
      BranchProfiles:
        - Branch String:   'sieve-commands.c:308,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sieve_command_def_type_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-commands.c:291,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sieve_command_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:277,8'
          Dst:             sieve_ast_pool
        - Src:             'sieve-commands.c:277,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-commands.c:277,8'
          Dst:             p_malloc
    - functionName:    sieve_command_prev
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_arg_catenated_string_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          167
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_generate_argument
        - sieve_opr_catenated_string_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:192,3'
          Dst:             sieve_generate_argument
        - Src:             'sieve-commands.c:194,3'
          Dst:             sieve_opr_catenated_string_emit
        - Src:             'sieve-commands.c:199,9'
          Dst:             sieve_generate_argument
    - functionName:    sieve_arg_catenated_string_add_element
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_ast_arg_list_add
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:175,2'
          Dst:             i_panic
        - Src:             'sieve-commands.c:176,2'
          Dst:             sieve_ast_arg_list_add
    - functionName:    sieve_arg_catenated_string_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_arg_list_create
        - sieve_ast_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:158,16'
          Dst:             sieve_ast_pool
        - Src:             'sieve-commands.c:162,12'
          Dst:             sieve_ast_arg_list_create
        - Src:             'sieve-commands.c:164,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve-commands.c:164,11'
          Dst:             p_malloc
    - functionName:    arg_string_list_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          140
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - emit_string_list_operand
        - i_panic
        - sieve_generate_argument
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:127,10'
          Dst:             sieve_generate_argument
        - Src:             'sieve-commands.c:132,11'
          Dst:             sieve_generate_argument
        - Src:             'sieve-commands.c:134,10'
          Dst:             t_push
        - Src:             'sieve-commands.c:135,13'
          Dst:             emit_string_list_operand
        - Src:             'sieve-commands.c:136,5'
          Dst:             t_pop
        - Src:             'sieve-commands.c:136,5'
          Dst:             i_panic
    - functionName:    arg_string_list_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:88,8'
          Dst:             sieve_validator_argument_activate
    - functionName:    arg_number_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-commands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_number_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-commands.c:66,2'
          Dst:             sieve_opr_number_emit
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    7
      BranchProfiles:  []
      Callsites:       []
    - 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:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    sieve_code_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_code_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 106
      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:    sieve_code_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_opr_string_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:88,13'
          Dst:             sieve_opr_string_read
    - functionName:    sieve_opr_string_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_runtime_read
        - sieve_opr_string_read_data
      functionUses:    48
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:598,13'
          Dst:             sieve_operand_runtime_read
        - Src:             'sieve-code.c:602,9'
          Dst:             sieve_opr_string_read_data
    - functionName:    sieve_operand_runtime_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_read
        - sieve_runtime_trace_operand_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:57,7'
          Dst:             sieve_operand_read
        - Src:             './sieve-code.h:58,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_opr_string_read_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_operand_is_string
        - sieve_runtime_trace_operand_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:573,7'
          Dst:             sieve_operand_is_string
        - Src:             'sieve-code.c:574,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:583,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_is_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_extension
        - sieve_binary_read_extension_object
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:209,7'
          Dst:             sieve_binary_read_extension
        - Src:             'sieve-code.c:223,3'
          Dst:             sieve_binary_read_extension_object
    - functionName:    opr_catenated_string_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_unsigned
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:955,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code.c:959,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:962,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:965,2'
          Dst:             sieve_code_descend
        - Src:             'sieve-code.c:967,8'
          Dst:             sieve_opr_string_dump
        - Src:             'sieve-code.c:970,2'
          Dst:             sieve_code_ascend
    - functionName:    opr_catenated_string_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          145
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - sieve_binary_read_unsigned
        - sieve_opr_string_read
        - sieve_runtime_trace_operand_error
        - str_append_str
        - str_len
        - str_truncate
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:984,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code.c:985,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:996,15'
          Dst:             sieve_opr_string_read
        - Src:             'sieve-code.c:1004,10'
          Dst:             t_str_new
        - Src:             'sieve-code.c:1007,15'
          Dst:             sieve_opr_string_read
        - Src:             'sieve-code.c:1012,5'
          Dst:             str_append_str
        - Src:             'sieve-code.c:1014,9'
          Dst:             str_len
        - Src:             'sieve-code.c:1015,6'
          Dst:             str_truncate
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_opr_string_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_read
        - sieve_opr_string_dump_data
      functionUses:    50
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:532,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code.c:534,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-code.c:535,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:539,9'
          Dst:             sieve_opr_string_dump_data
    - functionName:    sieve_opr_string_dump_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_dumpf
        - sieve_operand_is_string
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:512,7'
          Dst:             sieve_operand_is_string
        - Src:             'sieve-code.c:513,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:520,3'
          Dst:             sieve_code_dumpf
    - functionName:    opr_stringlist_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_offset
        - sieve_binary_read_unsigned
        - sieve_code_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:891,7'
          Dst:             sieve_binary_read_offset
        - Src:             'sieve-code.c:896,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code.c:899,9'
          Dst:             sieve_code_stringlist_dump
    - functionName:    opr_stringlist_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_offset
        - sieve_binary_read_unsigned
        - sieve_code_stringlist_create
        - sieve_runtime_trace_operand_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:913,7'
          Dst:             sieve_binary_read_offset
        - Src:             'sieve-code.c:914,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:921,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-code.c:922,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:928,16'
          Dst:             sieve_code_stringlist_create
    - functionName:    sieve_code_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          86
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - sieve_binary_block_get_size
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:52,12'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-code.c:55,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-code.c:55,12'
          Dst:             t_malloc0
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_code_stringlist_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - sieve_binary_block_get_size
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:123,12'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-code.c:127,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:130,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:134,2'
          Dst:             sieve_code_descend
        - Src:             'sieve-code.c:139,3'
          Dst:             t_push
        - Src:             'sieve-code.c:140,14'
          Dst:             sieve_opr_string_dump
        - Src:             'sieve-code.c:141,5'
          Dst:             t_pop
        - Src:             'sieve-code.c:141,5'
          Dst:             i_panic
        - Src:             'sieve-code.c:150,2'
          Dst:             sieve_code_ascend
    - functionName:    opr_string_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _dump_string
        - sieve_binary_read_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:661,6'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-code.c:662,3'
          Dst:             _dump_string
    - functionName:    opr_string_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_string
        - sieve_runtime_trace_operand_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:673,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-code.c:674,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    _dump_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_dumpf
        - str_c
        - str_len
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:633,6'
          Dst:             str_len
        - Src:             'sieve-code.c:636,25'
          Dst:             str_len
        - Src:             'sieve-code.c:637,20'
          Dst:             str_c
        - Src:             'sieve-code.c:637,7'
          Dst:             str_sanitize
        - Src:             'sieve-code.c:635,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:640,13'
          Dst:             str_len
        - Src:             'sieve-code.c:641,20'
          Dst:             str_c
        - Src:             'sieve-code.c:641,7'
          Dst:             str_sanitize
        - Src:             'sieve-code.c:639,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:646,25'
          Dst:             str_len
        - Src:             'sieve-code.c:647,20'
          Dst:             str_c
        - Src:             'sieve-code.c:647,7'
          Dst:             str_sanitize
        - Src:             'sieve-code.c:645,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:650,13'
          Dst:             str_len
        - Src:             'sieve-code.c:651,20'
          Dst:             str_c
        - Src:             'sieve-code.c:651,7'
          Dst:             str_sanitize
        - Src:             'sieve-code.c:649,4'
          Dst:             sieve_code_dumpf
    - functionName:    opr_number_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:469,6'
          Dst:             sieve_binary_read_integer
        - Src:             'sieve-code.c:471,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:475,4'
          Dst:             sieve_code_dumpf
    - functionName:    opr_number_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_integer
        - sieve_runtime_trace_operand_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:488,7'
          Dst:             sieve_binary_read_integer
        - Src:             'sieve-code.c:489,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operation_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1147
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_extension
        - sieve_binary_read_extension_object
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1134,7'
          Dst:             sieve_binary_read_extension
        - Src:             'sieve-code.c:1144,3'
          Dst:             sieve_binary_read_extension_object
    - functionName:    opc_jmp_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1157
      functionLinenumberEnd: 1171
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_offset
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1162,6'
          Dst:             sieve_binary_read_offset
        - Src:             'sieve-code.c:1163,3'
          Dst:             sieve_code_dumpf
    - functionName:    opc_jmpfalse_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_get_test_result
        - sieve_interpreter_program_jump
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1199,16'
          Dst:             sieve_interpreter_get_test_result
        - Src:             'sieve-code.c:1201,2'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-code.c:1203,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'sieve-code.c:1205,9'
          Dst:             sieve_interpreter_program_jump
    - functionName:    opc_jmptrue_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_get_test_result
        - sieve_interpreter_program_jump
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1186,16'
          Dst:             sieve_interpreter_get_test_result
        - Src:             'sieve-code.c:1188,2'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-code.c:1190,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'sieve-code.c:1192,9'
          Dst:             sieve_interpreter_program_jump
    - functionName:    opc_jmp_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_program_jump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1179,9'
          Dst:             sieve_interpreter_program_jump
    - functionName:    sieve_operation_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_emit_byte
        - sieve_binary_emit_extension
        - sieve_binary_emit_extension_object
      functionUses:    79
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:1112,3'
          Dst:             i_panic
        - Src:             'sieve-code.c:1113,13'
          Dst:             sieve_binary_emit_extension
        - Src:             'sieve-code.c:1116,3'
          Dst:             sieve_binary_emit_extension_object
        - Src:             'sieve-code.c:1121,2'
          Dst:             i_panic
        - Src:             'sieve-code.c:1122,9'
          Dst:             sieve_binary_emit_byte
    - functionName:    sieve_opr_catenated_string_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_unsigned
        - sieve_operand_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:943,8'
          Dst:             sieve_operand_emit
        - Src:             'sieve-code.c:944,8'
          Dst:             sieve_binary_emit_unsigned
    - functionName:    sieve_operand_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_binary_emit_extension
        - sieve_binary_emit_extension_object
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:186,13'
          Dst:             sieve_binary_emit_extension
        - Src:             'sieve-code.c:189,3'
          Dst:             sieve_binary_emit_extension_object
        - Src:             'sieve-code.c:195,9'
          Dst:             sieve_binary_emit_byte
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    sieve_opr_stringlist_read_ex
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_operand_is_omitted
        - sieve_operand_runtime_read
        - sieve_opr_stringlist_read_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:869,13'
          Dst:             sieve_operand_runtime_read
        - Src:             'sieve-code.c:873,18'
          Dst:             sieve_operand_is_omitted
        - Src:             'sieve-code.c:878,9'
          Dst:             sieve_opr_stringlist_read_data
    - functionName:    sieve_operand_is_omitted
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_stringlist_read_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          208
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - sieve_runtime_trace_operand_error
        - sieve_single_stringlist_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:800,4'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:817,4'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:833,17'
          Dst:             sieve_single_stringlist_create
        - Src:             'sieve-code.c:839,2'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_opr_stringlist_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 859
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_runtime_read
        - sieve_opr_stringlist_read_data
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:853,13'
          Dst:             sieve_operand_runtime_read
        - Src:             'sieve-code.c:857,9'
          Dst:             sieve_opr_stringlist_read_data
    - functionName:    sieve_opr_stringlist_dump_ex
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_is_omitted
        - sieve_operand_read
        - sieve_opr_stringlist_dump_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:765,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code.c:767,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-code.c:770,31'
          Dst:             sieve_operand_is_omitted
        - Src:             'sieve-code.c:772,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:778,9'
          Dst:             sieve_opr_stringlist_dump_data
    - functionName:    sieve_opr_stringlist_dump_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          125
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_stringlist_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark
        - sieve_operand_read
        - sieve_opr_stringlist_dump_data
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:749,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code.c:751,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-code.c:755,9'
          Dst:             sieve_opr_stringlist_dump_data
    - functionName:    sieve_opr_stringlist_emit_end
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_resolve_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:711,8'
          Dst:             sieve_binary_resolve_offset
    - functionName:    sieve_opr_stringlist_emit_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_string_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:703,8'
          Dst:             sieve_opr_string_emit
    - functionName:    sieve_opr_string_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_string
        - sieve_operand_emit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:500,8'
          Dst:             sieve_operand_emit
        - Src:             'sieve-code.c:501,8'
          Dst:             sieve_binary_emit_string
    - functionName:    sieve_opr_stringlist_emit_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - sieve_binary_emit_offset
        - sieve_binary_emit_unsigned
        - sieve_operand_emit
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:687,29'
          Dst:             malloc_multiply_check
        - Src:             'sieve-code.c:687,29'
          Dst:             t_malloc0
        - Src:             'sieve-code.c:690,8'
          Dst:             sieve_operand_emit
        - Src:             'sieve-code.c:693,16'
          Dst:             sieve_binary_emit_offset
        - Src:             'sieve-code.c:697,8'
          Dst:             sieve_binary_emit_unsigned
    - functionName:    sieve_operand_is_string_literal
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_string_read_ex
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_operand_is_omitted
        - sieve_operand_is_string_literal
        - sieve_operand_runtime_read
        - sieve_opr_string_read_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:613,13'
          Dst:             sieve_operand_runtime_read
        - Src:             'sieve-code.c:617,18'
          Dst:             sieve_operand_is_omitted
        - Src:             'sieve-code.c:623,16'
          Dst:             sieve_operand_is_string_literal
        - Src:             'sieve-code.c:625,9'
          Dst:             sieve_opr_string_read_data
    - functionName:    sieve_opr_string_dump_ex
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_is_omitted
        - sieve_operand_read
        - sieve_opr_string_dump_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:548,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code.c:549,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-code.c:550,3'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:554,31'
          Dst:             sieve_operand_is_omitted
        - Src:             'sieve-code.c:556,4'
          Dst:             sieve_code_dumpf
        - Src:             'sieve-code.c:561,9'
          Dst:             sieve_opr_string_dump_data
    - functionName:    sieve_opr_number_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_runtime_read
        - sieve_opr_number_read_data
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:455,13'
          Dst:             sieve_operand_runtime_read
        - Src:             'sieve-code.c:459,9'
          Dst:             sieve_opr_number_read_data
    - functionName:    sieve_opr_number_read_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_operand_is_number
        - sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:429,7'
          Dst:             sieve_operand_is_number
        - Src:             'sieve-code.c:430,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'sieve-code.c:439,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_is_number
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_opr_number_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark
        - sieve_operand_read
        - sieve_opr_number_dump_data
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:412,2'
          Dst:             sieve_code_mark
        - Src:             'sieve-code.c:414,7'
          Dst:             sieve_operand_read
        - Src:             'sieve-code.c:417,9'
          Dst:             sieve_opr_number_dump_data
    - functionName:    sieve_opr_number_dump_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          64
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_operand_is_number
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:397,7'
          Dst:             sieve_operand_is_number
    - functionName:    sieve_opr_number_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
        - sieve_operand_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:385,8'
          Dst:             sieve_operand_emit
        - Src:             'sieve-code.c:386,8'
          Dst:             sieve_binary_emit_integer
    - functionName:    sieve_opr_omitted_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operand_emit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:377,8'
          Dst:             sieve_operand_emit
    - functionName:    sieve_opr_optional_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-code.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_byte
        - sieve_binary_read_code
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-code.c:241,8'
          Dst:             sieve_binary_read_byte
        - Src:             'sieve-code.c:249,7'
          Dst:             sieve_binary_read_code
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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_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:    2
      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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/../../src/lib-sieve/util/rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/util/rfc2822.h:33,8'
          Dst:             rfc2822_header_append
    - functionName:    act_store_cleanup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_free
        - mailbox_transaction_rollback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:792,3'
          Dst:             mailbox_transaction_rollback
        - Src:             'sieve-actions.c:794,3'
          Dst:             mailbox_free
    - functionName:    act_store_log_status
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          255
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mailbox_get_vname
        - sieve_act_store_get_storage_error
        - sieve_action_create_finish_event
        - sieve_result_error
        - sieve_result_event_log
        - sieve_result_global_error
        - sieve_result_global_log
        - sieve_result_global_log_error
        - str_sanitize
        - strcmp
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:723,44'
          Dst:             mailbox_get_vname
        - Src:             'sieve-actions.c:723,31'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:725,7'
          Dst:             strcmp
        - Src:             'sieve-actions.c:728,5'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:726,25'
          Dst:             t_strdup_printf
        - Src:             'sieve-actions.c:734,3'
          Dst:             sieve_result_global_log
        - Src:             'sieve-actions.c:738,3'
          Dst:             sieve_result_global_log
        - Src:             'sieve-actions.c:746,4'
          Dst:             sieve_act_store_get_storage_error
        - Src:             'sieve-actions.c:753,4'
          Dst:             sieve_result_global_log_error
        - Src:             'sieve-actions.c:759,4'
          Dst:             sieve_result_error
        - Src:             'sieve-actions.c:763,4'
          Dst:             sieve_result_global_error
        - Src:             'sieve-actions.c:770,4'
          Dst:             sieve_result_global_log
        - Src:             'sieve-actions.c:774,4'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:774,4'
          Dst:             e_debug
        - Src:             'sieve-actions.c:774,4'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:780,4'
          Dst:             sieve_action_create_finish_event
        - Src:             'sieve-actions.c:783,3'
          Dst:             sieve_result_event_log
    - functionName:    sieve_act_store_get_storage_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_last_internal_error
        - p_strdup
        - sieve_result_pool
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:366,16'
          Dst:             sieve_result_pool
        - Src:             'sieve-actions.c:369,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'sieve-actions.c:368,17'
          Dst:             p_strdup
    - functionName:    sieve_action_create_finish_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create_passthrough
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:38,3'
          Dst:             event_create_passthrough
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/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:    have_equal_keywords
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_idx_i
        - mail_get_keyword_indexes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:531,3'
          Dst:             mail_get_keyword_indexes
        - Src:             'sieve-actions.c:535,6'
          Dst:             array_count_i
        - Src:             'sieve-actions.c:540,11'
          Dst:             array_idx_i
    - functionName:    act_store_keywords_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_idx_i
        - array_is_created_i
        - mailbox_keyword_is_valid
        - mailbox_keywords_create
        - pool_datastack_create
        - sieve_error_from_external
        - sieve_result_error
        - sieve_result_warning
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:492,7'
          Dst:             array_is_created_i
        - Src:             'sieve-actions.c:492,37'
          Dst:             array_count_i
        - Src:             'sieve-actions.c:500,10'
          Dst:             array_get_i
        - Src:             'sieve-actions.c:501,3'
          Dst:             pool_datastack_create
        - Src:             'sieve-actions.c:501,3'
          Dst:             array_create_i
        - Src:             'sieve-actions.c:504,8'
          Dst:             mailbox_keyword_is_valid
        - Src:             'sieve-actions.c:505,5'
          Dst:             array_append_i
        - Src:             'sieve-actions.c:509,4'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:509,4'
          Dst:             sieve_error_from_external
        - Src:             'sieve-actions.c:509,4'
          Dst:             sieve_result_warning
        - Src:             'sieve-actions.c:515,3'
          Dst:             array_append_space_i
        - Src:             'sieve-actions.c:516,10'
          Dst:             array_idx_i
        - Src:             'sieve-actions.c:519,6'
          Dst:             mailbox_keywords_create
        - Src:             'sieve-actions.c:520,3'
          Dst:             sieve_result_error
    - 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:    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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:    act_store_mailbox_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_alloc_for_user
        - mailbox_get_storage
        - t_strdup_printf
        - uni_utf8_str_is_valid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:387,7'
          Dst:             uni_utf8_str_is_valid
        - Src:             'sieve-actions.c:391,14'
          Dst:             t_strdup_printf
        - Src:             'sieve-actions.c:401,17'
          Dst:             mailbox_alloc_for_user
        - Src:             'sieve-actions.c:403,13'
          Dst:             mailbox_get_storage
    - functionName:    sieve_mailbox_check_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1091
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uni_utf8_str_is_valid
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:1086,7'
          Dst:             uni_utf8_str_is_valid
    - functionName:    sieve_action_do_reject_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          268
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_create_header_filter
        - i_stream_unref
        - mail_get_hdr_stream
        - message_date_create
        - o_stream_nsend
        - o_stream_nsend_istream
        - rfc2822_header_printf
        - rfc2822_header_write
        - sieve_get_postmaster_address
        - sieve_message_get_new_id
        - sieve_message_get_sender
        - sieve_result_global_error
        - sieve_result_global_log_error
        - sieve_result_global_warning
        - sieve_smtp_finish
        - sieve_smtp_start_single
        - smtp_address_encode
        - str_append
        - str_data
        - str_len
        - str_printfa
        - str_sanitize
        - str_truncate
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:946,11'
          Dst:             sieve_message_get_sender
        - Src:             'sieve-actions.c:949,9'
          Dst:             sieve_smtp_start_single
        - Src:             'sieve-actions.c:953,3'
          Dst:             sieve_result_global_warning
        - Src:             'sieve-actions.c:958,14'
          Dst:             sieve_message_get_new_id
        - Src:             'sieve-actions.c:959,13'
          Dst:             t_strdup_printf
        - Src:             'sieve-actions.c:961,8'
          Dst:             t_str_new
        - Src:             'sieve-actions.c:962,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:963,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:964,36'
          Dst:             message_date_create
        - Src:             'sieve-actions.c:964,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:965,36'
          Dst:             sieve_get_postmaster_address
        - Src:             'sieve-actions.c:965,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:966,43'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:966,2'
          Dst:             rfc2822_header_printf
        - Src:             'sieve-actions.c:967,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:968,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:969,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:971,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:972,2'
          Dst:             rfc2822_header_printf
        - Src:             'sieve-actions.c:977,2'
          Dst:             str_append
        - Src:             'sieve-actions.c:980,2'
          Dst:             str_printfa
        - Src:             'sieve-actions.c:981,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:982,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:983,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:986,17'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:985,2'
          Dst:             str_printfa
        - Src:             'sieve-actions.c:989,2'
          Dst:             str_printfa
        - Src:             'sieve-actions.c:990,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:992,2'
          Dst:             str_append
        - Src:             'sieve-actions.c:993,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:998,11'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:997,3'
          Dst:             rfc2822_header_printf
        - Src:             'sieve-actions.c:1001,10'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:1000,2'
          Dst:             rfc2822_header_printf
        - Src:             'sieve-actions.c:1004,3'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:1005,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:1007,2'
          Dst:             str_append
        - Src:             'sieve-actions.c:1010,2'
          Dst:             str_printfa
        - Src:             'sieve-actions.c:1011,2'
          Dst:             rfc2822_header_write
        - Src:             'sieve-actions.c:1012,2'
          Dst:             str_append
        - Src:             'sieve-actions.c:1013,25'
          Dst:             str_data
        - Src:             'sieve-actions.c:1013,40'
          Dst:             str_len
        - Src:             'sieve-actions.c:1013,2'
          Dst:             o_stream_nsend
        - Src:             'sieve-actions.c:1015,6'
          Dst:             mail_get_hdr_stream
        - Src:             'sieve-actions.c:1025,11'
          Dst:             i_stream_create_header_filter
        - Src:             'sieve-actions.c:1030,3'
          Dst:             o_stream_nsend_istream
        - Src:             'sieve-actions.c:1031,3'
          Dst:             i_stream_unref
        - Src:             'sieve-actions.c:1034,2'
          Dst:             str_truncate
        - Src:             'sieve-actions.c:1035,2'
          Dst:             str_printfa
        - Src:             'sieve-actions.c:1036,25'
          Dst:             str_data
        - Src:             'sieve-actions.c:1036,40'
          Dst:             str_len
        - Src:             'sieve-actions.c:1036,2'
          Dst:             o_stream_nsend
        - Src:             'sieve-actions.c:1038,13'
          Dst:             sieve_smtp_finish
        - Src:             'sieve-actions.c:1040,4'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:1040,4'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:1040,4'
          Dst:             sieve_result_global_error
        - Src:             'sieve-actions.c:1046,4'
          Dst:             smtp_address_encode
        - Src:             'sieve-actions.c:1046,4'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:1046,4'
          Dst:             sieve_result_global_log_error
    - functionName:    sieve_action_reject_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_action_do_reject_mail
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:1066,2'
          Dst:             t_push
        - Src:             'sieve-actions.c:1072,13'
          Dst:             sieve_action_do_reject_mail
        - Src:             'sieve-actions.c:1075,4'
          Dst:             t_pop
        - Src:             'sieve-actions.c:1075,4'
          Dst:             i_panic
    - functionName:    sieve_act_redirect_add_to_result
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_result_add_action
        - sieve_result_pool
        - smtp_address_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:911,9'
          Dst:             sieve_result_pool
        - Src:             'sieve-actions.c:912,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-actions.c:912,8'
          Dst:             p_malloc
        - Src:             'sieve-actions.c:913,20'
          Dst:             smtp_address_clone
        - Src:             'sieve-actions.c:915,6'
          Dst:             sieve_result_add_action
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_act_store_add_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - sieve_result_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:273,2'
          Dst:             i_panic
        - Src:             'sieve-actions.c:279,8'
          Dst:             array_is_created_i
        - Src:             'sieve-actions.c:280,18'
          Dst:             sieve_result_pool
        - Src:             'sieve-actions.c:281,4'
          Dst:             array_create_i
        - Src:             'sieve-actions.c:286,4'
          Dst:             array_append_i
    - functionName:    sieve_act_store_add_to_result
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_result_add_action
        - sieve_result_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:258,9'
          Dst:             sieve_result_pool
        - Src:             'sieve-actions.c:259,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-actions.c:259,8'
          Dst:             p_malloc
        - Src:             'sieve-actions.c:260,17'
          Dst:             p_strdup
        - Src:             'sieve-actions.c:262,9'
          Dst:             sieve_result_add_action
    - functionName:    act_store_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          165
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:322,6'
          Dst:             strcmp
        - Src:             'sieve-actions.c:325,10'
          Dst:             strcasecmp
        - Src:             'sieve-actions.c:326,3'
          Dst:             strcasecmp
    - functionName:    act_store_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - act_store_equals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:338,10'
          Dst:             act_store_equals
    - functionName:    act_store_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_result_action_printf
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:356,8'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:355,2'
          Dst:             sieve_result_action_printf
    - functionName:    act_store_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          264
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - act_store_mailbox_alloc
        - e_debug
        - event_send_abort
        - event_want_level
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - p_strdup_printf
        - sieve_result_pool
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-actions.c:472,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-actions.c:418,16'
          Dst:             sieve_result_pool
        - Src:             'sieve-actions.c:427,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-actions.c:427,9'
          Dst:             p_malloc
        - Src:             'sieve-actions.c:429,4'
          Dst:             p_strdup
        - Src:             'sieve-actions.c:432,2'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:432,2'
          Dst:             e_debug
        - Src:             'sieve-actions.c:432,2'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:441,8'
          Dst:             act_store_mailbox_alloc
        - Src:             'sieve-actions.c:449,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-actions.c:449,10'
          Dst:             p_malloc
        - Src:             'sieve-actions.c:457,33'
          Dst:             str_sanitize
        - Src:             'sieve-actions.c:457,3'
          Dst:             p_strdup_printf
        - Src:             'sieve-actions.c:462,18'
          Dst:             p_strdup
        - Src:             'sieve-actions.c:464,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:464,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:464,3'
          Dst:             event_send_abort
    - functionName:    act_store_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          696
      EdgeCount:       145
      CyclomaticComplexity: 34
      functionsReached:
        - act_store_keywords_create
        - e_debug
        - event_send_abort
        - event_want_level
        - have_equal_keywords
        - mail_get_backend_mail
        - mail_get_flags
        - mail_update_flags
        - mail_update_keywords
        - mailbox_backends_equal
        - mailbox_get_storage
        - mailbox_is_readonly
        - mailbox_keywords_unref
        - mailbox_open
        - mailbox_save_alloc
        - mailbox_save_copy_flags
        - mailbox_save_set_flags
        - mailbox_save_using_mail
        - mailbox_transaction_begin
        - sieve_act_store_get_storage_error
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-actions.c:604,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-actions.c:576,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:576,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:576,3'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:586,2'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:586,2'
          Dst:             e_debug
        - Src:             'sieve-actions.c:586,2'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:592,36'
          Dst:             mailbox_get_storage
        - Src:             'sieve-actions.c:596,7'
          Dst:             mailbox_open
        - Src:             'sieve-actions.c:597,4'
          Dst:             sieve_act_store_get_storage_error
        - Src:             'sieve-actions.c:598,4'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:598,4'
          Dst:             e_debug
        - Src:             'sieve-actions.c:598,4'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:616,6'
          Dst:             mailbox_backends_equal
        - Src:             'sieve-actions.c:621,7'
          Dst:             mail_get_backend_mail
        - Src:             'sieve-actions.c:624,7'
          Dst:             mailbox_backends_equal
        - Src:             'sieve-actions.c:630,32'
          Dst:             mailbox_is_readonly
        - Src:             'sieve-actions.c:631,15'
          Dst:             act_store_keywords_create
        - Src:             'sieve-actions.c:635,10'
          Dst:             have_equal_keywords
        - Src:             'sieve-actions.c:637,6'
          Dst:             mail_update_keywords
        - Src:             'sieve-actions.c:639,5'
          Dst:             mailbox_keywords_unref
        - Src:             'sieve-actions.c:642,9'
          Dst:             mail_get_flags
        - Src:             'sieve-actions.c:644,5'
          Dst:             mail_update_flags
        - Src:             'sieve-actions.c:647,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:647,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:647,3'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:657,6'
          Dst:             mailbox_is_readonly
        - Src:             'sieve-actions.c:658,7'
          Dst:             mailbox_backends_equal
        - Src:             'sieve-actions.c:659,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:659,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:659,3'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:667,6'
          Dst:             strcmp
        - Src:             'sieve-actions.c:672,22'
          Dst:             mailbox_transaction_begin
        - Src:             'sieve-actions.c:676,13'
          Dst:             mailbox_save_alloc
        - Src:             'sieve-actions.c:680,14'
          Dst:             act_store_keywords_create
        - Src:             'sieve-actions.c:685,4'
          Dst:             mailbox_save_set_flags
        - Src:             'sieve-actions.c:688,3'
          Dst:             mailbox_save_copy_flags
        - Src:             'sieve-actions.c:691,6'
          Dst:             mailbox_save_using_mail
        - Src:             'sieve-actions.c:692,3'
          Dst:             sieve_act_store_get_storage_error
        - Src:             'sieve-actions.c:693,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:693,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:693,3'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:699,3'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:699,3'
          Dst:             e_debug
        - Src:             'sieve-actions.c:699,3'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:706,4'
          Dst:             mailbox_keywords_unref
    - functionName:    act_store_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          257
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - act_store_cleanup
        - act_store_log_status
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mailbox_get_storage
        - mailbox_transaction_commit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:810,2'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:810,2'
          Dst:             e_debug
        - Src:             'sieve-actions.c:810,2'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:833,3'
          Dst:             act_store_log_status
        - Src:             'sieve-actions.c:834,3'
          Dst:             act_store_cleanup
        - Src:             'sieve-actions.c:838,2'
          Dst:             i_panic
        - Src:             'sieve-actions.c:839,2'
          Dst:             i_panic
        - Src:             'sieve-actions.c:844,36'
          Dst:             mailbox_get_storage
        - Src:             'sieve-actions.c:847,12'
          Dst:             mailbox_transaction_commit
        - Src:             'sieve-actions.c:856,2'
          Dst:             act_store_log_status
        - Src:             'sieve-actions.c:859,2'
          Dst:             act_store_cleanup
    - functionName:    act_store_rollback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - act_store_cleanup
        - act_store_log_status
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mailbox_get_storage
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:879,2'
          Dst:             event_want_level
        - Src:             'sieve-actions.c:879,2'
          Dst:             e_debug
        - Src:             'sieve-actions.c:879,2'
          Dst:             event_send_abort
        - Src:             'sieve-actions.c:882,2'
          Dst:             i_panic
        - Src:             'sieve-actions.c:886,4'
          Dst:             mailbox_get_storage
        - Src:             'sieve-actions.c:891,2'
          Dst:             act_store_log_status
        - Src:             'sieve-actions.c:894,2'
          Dst:             act_store_cleanup
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_action_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          186
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - sieve_opr_optional_read
        - sieve_opr_side_effect_read
        - sieve_runtime_trace_error
        - sieve_side_effects_list_add
        - sieve_side_effects_list_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:160,9'
          Dst:             sieve_opr_optional_read
        - Src:             'sieve-actions.c:170,4'
          Dst:             i_panic
        - Src:             'sieve-actions.c:172,10'
          Dst:             sieve_opr_side_effect_read
        - Src:             'sieve-actions.c:181,13'
          Dst:             sieve_side_effects_list_create
        - Src:             'sieve-actions.c:185,4'
          Dst:             sieve_side_effects_list_add
        - Src:             'sieve-actions.c:188,5'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_side_effect_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_opr_object_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:95,7'
          Dst:             sieve_opr_object_read
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    sieve_action_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_opr_optional_dump
        - sieve_opr_side_effect_dump
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:127,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'sieve-actions.c:132,11'
          Dst:             sieve_opr_side_effect_dump
    - functionName:    sieve_opr_side_effect_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:70,7'
          Dst:             sieve_opr_object_dump
        - Src:             'sieve-actions.c:78,3'
          Dst:             sieve_code_descend
        - Src:             'sieve-actions.c:81,3'
          Dst:             sieve_code_ascend
    - functionName:    sieve_action_is_executed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-actions.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_result_get_exec_seq
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-actions.c:51,30'
          Dst:             sieve_result_get_exec_seq
        - Src:             'sieve-actions.c:53,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:             'dovecot/src/lib/lib.h:75,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:    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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    sieve_extension_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - array_count_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:354,16'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:357,9'
          Dst:             array_append_space_i
        - Src:             'sieve-extensions.c:358,16'
          Dst:             malloc_multiply_check
        - Src:             'sieve-extensions.c:358,16'
          Dst:             p_malloc
    - 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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,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:    sieve_extension_capabilities_get_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - hash_table_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:945,3'
          Dst:             hash_table_lookup
    - functionName:    sieve_extension_capabilities_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:910,8'
          Dst:             hash_table_lookup
        - Src:             'sieve-extensions.c:916,8'
          Dst:             malloc_multiply_check
        - Src:             'sieve-extensions.c:916,8'
          Dst:             p_malloc
        - Src:             'sieve-extensions.c:920,2'
          Dst:             hash_table_insert
    - functionName:    sieve_enable_debug_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:870,8'
          Dst:             sieve_extension_register
        - Src:             'sieve-extensions.c:872,2'
          Dst:             i_panic
    - functionName:    sieve_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_extension_register_const
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:435,9'
          Dst:             _sieve_extension_register_const
    - functionName:    _sieve_extension_register_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _sieve_extension_register
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:420,6'
          Dst:             _sieve_extension_register
    - functionName:    _sieve_extension_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          241
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - _sieve_extension_load
        - hash_table_insert
        - i_panic
        - sieve_extension_alloc
        - sieve_extension_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:375,8'
          Dst:             sieve_extension_lookup
        - Src:             'sieve-extensions.c:379,9'
          Dst:             sieve_extension_alloc
        - Src:             'sieve-extensions.c:380,3'
          Dst:             hash_table_insert
        - Src:             'sieve-extensions.c:384,9'
          Dst:             sieve_extension_alloc
        - Src:             'sieve-extensions.c:389,3'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:399,8'
          Dst:             _sieve_extension_load
    - functionName:    sieve_extension_lookup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:343,9'
          Dst:             hash_table_lookup
    - functionName:    _sieve_extension_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - _sieve_extension_unload
        - e_error
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:286,3'
          Dst:             _sieve_extension_unload
        - Src:             'sieve-extensions.c:293,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:294,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:297,3'
          Dst:             e_error
    - functionName:    _sieve_extension_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_address_part_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_comparator_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_match_type_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_extension_set_implicit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_extension_set_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:643,9'
          Dst:             sieve_extension_set_enabled
    - functionName:    sieve_extension_set_enabled
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_extension_load
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:612,10'
          Dst:             _sieve_extension_load
    - functionName:    sieve_extension_set_global
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_extension_set_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:628,9'
          Dst:             sieve_extension_set_enabled
    - 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:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    sieve_extensions_set_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          545
      EdgeCount:       126
      CyclomaticComplexity: 32
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_get_modifiable_i
        - e_warning
        - hash_table_lookup
        - i_panic
        - pool_datastack_create
        - sieve_extension_set_enabled
        - sieve_extension_set_global
        - sieve_extension_set_implicit
        - t_pop
        - t_push
        - t_strsplit_spaces
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:720,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-extensions.c:723,8'
          Dst:             sieve_extension_set_enabled
        - Src:             'sieve-extensions.c:730,2'
          Dst:             t_push
        - Src:             'sieve-extensions.c:731,3'
          Dst:             pool_datastack_create
        - Src:             'sieve-extensions.c:731,3'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:731,3'
          Dst:             array_create_i
        - Src:             'sieve-extensions.c:733,3'
          Dst:             pool_datastack_create
        - Src:             'sieve-extensions.c:733,3'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:733,3'
          Dst:             array_create_i
        - Src:             'sieve-extensions.c:736,15'
          Dst:             t_strsplit_spaces
        - Src:             'sieve-extensions.c:756,12'
          Dst:             hash_table_lookup
        - Src:             'sieve-extensions.c:761,6'
          Dst:             e_warning
        - Src:             'sieve-extensions.c:768,6'
          Dst:             array_append_i
        - Src:             'sieve-extensions.c:771,6'
          Dst:             array_append_i
        - Src:             'sieve-extensions.c:777,10'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-extensions.c:778,17'
          Dst:             array_get_i
        - Src:             'sieve-extensions.c:779,18'
          Dst:             array_get_i
        - Src:             'sieve-extensions.c:823,9'
          Dst:             sieve_extension_set_global
        - Src:             'sieve-extensions.c:829,9'
          Dst:             sieve_extension_set_implicit
        - Src:             'sieve-extensions.c:835,9'
          Dst:             sieve_extension_set_enabled
        - Src:             'sieve-extensions.c:842,4'
          Dst:             t_pop
        - Src:             'sieve-extensions.c:842,4'
          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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    _sieve_extension_listable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_extensions_get_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - _sieve_extension_listable
        - array_get_i
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:574,21'
          Dst:             t_str_new
        - Src:             'sieve-extensions.c:578,9'
          Dst:             array_get_i
        - Src:             'sieve-extensions.c:583,28'
          Dst:             _sieve_extension_listable
        - Src:             'sieve-extensions.c:588,4'
          Dst:             str_append
        - Src:             'sieve-extensions.c:593,9'
          Dst:             _sieve_extension_listable
        - Src:             'sieve-extensions.c:594,6'
          Dst:             str_append_c
        - Src:             'sieve-extensions.c:595,6'
          Dst:             str_append
        - Src:             'sieve-extensions.c:600,9'
          Dst:             str_c
    - functionName:    sieve_extension_get_by_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          89
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_extension_lookup
        - strlen
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:554,6'
          Dst:             strlen
        - Src:             'sieve-extensions.c:557,8'
          Dst:             sieve_extension_lookup
    - functionName:    sieve_extension_get_by_id
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:537,15'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:538,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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    sieve_extensions_get_all
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:528,3'
          Dst:             array_get_i
    - functionName:    sieve_extensions_get_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:519,9'
          Dst:             array_count_i
    - functionName:    sieve_extension_override
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - hash_table_update
        - i_panic
        - sieve_extension_lookup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:501,12'
          Dst:             sieve_extension_lookup
        - Src:             'sieve-extensions.c:504,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:506,2'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:506,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:508,12'
          Dst:             array_idx_i
        - Src:             'sieve-extensions.c:510,2'
          Dst:             hash_table_update
    - functionName:    sieve_extension_replace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_extension_lookup
        - sieve_extension_register
        - sieve_extension_unregister
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:487,8'
          Dst:             sieve_extension_lookup
        - Src:             'sieve-extensions.c:489,3'
          Dst:             sieve_extension_unregister
        - Src:             'sieve-extensions.c:491,9'
          Dst:             sieve_extension_register
    - functionName:    sieve_extension_unregister
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - _sieve_extension_unload
        - array_count_i
        - array_idx_i
        - sieve_extension_capabilities_unregister
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:448,36'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:449,13'
          Dst:             array_idx_i
        - Src:             'sieve-extensions.c:451,3'
          Dst:             sieve_extension_capabilities_unregister
        - Src:             'sieve-extensions.c:452,3'
          Dst:             _sieve_extension_unload
    - functionName:    sieve_extension_capabilities_unregister
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - hash_table_try_remove
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:930,10'
          Dst:             hash_table_iterate_init
        - Src:             'sieve-extensions.c:931,9'
          Dst:             hash_table_iterate
        - Src:             'sieve-extensions.c:934,4'
          Dst:             hash_table_try_remove
        - Src:             'sieve-extensions.c:934,4'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:936,2'
          Dst:             hash_table_iterate_deinit
    - functionName:    sieve_extension_reload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_extension_load
        - array_count_i
        - array_idx_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:474,2'
          Dst:             array_count_i
        - Src:             'sieve-extensions.c:474,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:477,12'
          Dst:             array_idx_i
        - Src:             'sieve-extensions.c:478,9'
          Dst:             _sieve_extension_load
    - functionName:    sieve_extension_require
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _sieve_extension_register_const
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:463,9'
          Dst:             _sieve_extension_register_const
    - functionName:    sieve_extensions_get_preloaded
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:271,9'
          Dst:             array_get_i
    - functionName:    sieve_capability_registry_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:899,2'
          Dst:             hash_table_destroy
    - functionName:    sieve_extension_registry_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_extension_unload
        - array_get_modifiable_i
        - hash_table_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:331,9'
          Dst:             array_get_modifiable_i
        - Src:             'sieve-extensions.c:333,3'
          Dst:             _sieve_extension_unload
        - Src:             'sieve-extensions.c:335,2'
          Dst:             hash_table_destroy
    - functionName:    sieve_extensions_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_capability_registry_deinit
        - sieve_extension_registry_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:257,2'
          Dst:             sieve_extension_registry_deinit
        - Src:             'sieve-extensions.c:258,2'
          Dst:             sieve_capability_registry_deinit
    - functionName:    sieve_extensions_set_array
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          208
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - array_is_created_i
        - e_warning
        - hash_table_lookup
        - i_memcpy
        - sieve_extension_set_enabled
        - sieve_extension_set_global
        - sieve_extension_set_implicit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:660,6'
          Dst:             array_is_created_i
        - Src:             'sieve-extensions.c:664,2'
          Dst:             i_memcpy
        - Src:             'sieve-extensions.c:667,9'
          Dst:             hash_table_lookup
        - Src:             'sieve-extensions.c:670,4'
          Dst:             e_warning
        - Src:             'sieve-extensions.c:681,8'
          Dst:             sieve_extension_set_global
        - Src:             'sieve-extensions.c:686,8'
          Dst:             sieve_extension_set_implicit
        - Src:             'sieve-extensions.c:691,8'
          Dst:             sieve_extension_set_enabled
    - functionName:    sieve_extensions_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_extensions_set_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:237,6'
          Dst:             sieve_extensions_set_array
        - Src:             'sieve-extensions.c:242,6'
          Dst:             sieve_extensions_set_array
        - Src:             'sieve-extensions.c:247,6'
          Dst:             sieve_extensions_set_array
    - functionName:    sieve_capability_registry_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_create
        - str_hash
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:888,2'
          Dst:             hash_table_create
        - Src:             'sieve-extensions.c:888,2'
          Dst:             str_hash
        - Src:             'sieve-extensions.c:888,2'
          Dst:             strcmp
    - functionName:    sieve_extension_registry_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create
        - str_hash
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:317,2'
          Dst:             array_create_i
        - Src:             'sieve-extensions.c:318,2'
          Dst:             hash_table_create
        - Src:             'sieve-extensions.c:318,2'
          Dst:             str_hash
        - Src:             'sieve-extensions.c:318,2'
          Dst:             strcmp
    - functionName:    sieve_extensions_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-extensions.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          188
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - _sieve_extension_register
        - array_append_i
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sieve_capability_registry_init
        - sieve_extension_register
        - sieve_extension_registry_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-extensions.c:186,3'
          Dst:             malloc_multiply_check
        - Src:             'sieve-extensions.c:186,3'
          Dst:             p_malloc
        - Src:             'sieve-extensions.c:191,2'
          Dst:             sieve_extension_registry_init
        - Src:             'sieve-extensions.c:192,2'
          Dst:             sieve_capability_registry_init
        - Src:             'sieve-extensions.c:195,8'
          Dst:             sieve_extension_register
        - Src:             'sieve-extensions.c:197,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:198,8'
          Dst:             sieve_extension_register
        - Src:             'sieve-extensions.c:200,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:201,8'
          Dst:             sieve_extension_register
        - Src:             'sieve-extensions.c:203,2'
          Dst:             i_panic
        - Src:             'sieve-extensions.c:205,2'
          Dst:             array_create_i
        - Src:             'sieve-extensions.c:206,2'
          Dst:             array_append_i
        - Src:             'sieve-extensions.c:208,2'
          Dst:             array_append_i
        - Src:             'sieve-extensions.c:210,2'
          Dst:             array_append_i
        - Src:             'sieve-extensions.c:217,7'
          Dst:             _sieve_extension_register
        - Src:             'sieve-extensions.c:225,7'
          Dst:             sieve_extension_register
    - functionName:    cmp_i_octet_char_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-octet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmp_i_octet_compare
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-octet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-octet.c:57,10'
          Dst:             memcmp
        - Src:             'cmp-i-octet.c:60,12'
          Dst:             memcmp
        - Src:             'cmp-i-octet.c:67,11'
          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:    61
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmp_i_ascii_casemap_char_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-ascii-casemap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - tolower
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-ascii-casemap.c:70,9'
          Dst:             tolower
        - Src:             'cmp-i-ascii-casemap.c:70,29'
          Dst:             tolower
    - functionName:    cmp_i_ascii_casemap_compare
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-ascii-casemap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-ascii-casemap.c:56,12'
          Dst:             strncasecmp
    - 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:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmp_i_unicode_casemap_char_skip
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-unicode-casemap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uni_utf8_char_bytes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-unicode-casemap.c:80,21'
          Dst:             uni_utf8_char_bytes
    - functionName:    cmp_i_unicode_casemap_char_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-unicode-casemap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          162
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - uni_ucs4_to_titlecase
        - uni_utf8_char_bytes
        - uni_utf8_get_char
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-unicode-casemap.c:43,26'
          Dst:             uni_utf8_char_bytes
        - Src:             'cmp-i-unicode-casemap.c:44,26'
          Dst:             uni_utf8_char_bytes
        - Src:             'cmp-i-unicode-casemap.c:47,3'
          Dst:             uni_utf8_get_char
        - Src:             'cmp-i-unicode-casemap.c:48,3'
          Dst:             uni_utf8_get_char
        - Src:             'cmp-i-unicode-casemap.c:51,13'
          Dst:             uni_ucs4_to_titlecase
        - Src:             'cmp-i-unicode-casemap.c:52,13'
          Dst:             uni_ucs4_to_titlecase
        - Src:             'cmp-i-unicode-casemap.c:60,2'
          Dst:             i_panic
        - Src:             'cmp-i-unicode-casemap.c:61,2'
          Dst:             i_panic
    - functionName:    cmp_i_unicode_casemap_compare
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmp-i-unicode-casemap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_c
        - strcmp
        - t_str_new
        - uni_utf8_to_decomposed_titlecase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmp-i-unicode-casemap.c:22,22'
          Dst:             t_str_new
        - Src:             'cmp-i-unicode-casemap.c:23,22'
          Dst:             t_str_new
        - Src:             'cmp-i-unicode-casemap.c:25,2'
          Dst:             uni_utf8_to_decomposed_titlecase
        - Src:             'cmp-i-unicode-casemap.c:26,2'
          Dst:             uni_utf8_to_decomposed_titlecase
        - Src:             'cmp-i-unicode-casemap.c:28,9'
          Dst:             str_c
        - Src:             'cmp-i-unicode-casemap.c:29,9'
          Dst:             str_c
        - Src:             'cmp-i-unicode-casemap.c:31,9'
          Dst:             strcmp
    - functionName:    mcht_is_match_key
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/mcht-is.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mcht_contains_match_key
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/mcht-contains.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          166
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - sieve_runtime_cpu_limit_exceeded
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-contains.c:74,9'
          Dst:             sieve_runtime_cpu_limit_exceeded
        - Src:             'mcht-contains.c:75,5'
          Dst:             sieve_runtime_error
    - 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_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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    _string_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/mcht-matches.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_runtime_cpu_limit_exceeded
        - sieve_runtime_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-matches.c:70,8'
          Dst:             sieve_runtime_cpu_limit_exceeded
        - Src:             'mcht-matches.c:71,5'
          Dst:             sieve_runtime_error
    - 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:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _scan_key_section
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/mcht-matches.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - str_append_c
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-matches.c:88,2'
          Dst:             str_truncate
        - Src:             'mcht-matches.c:93,5'
          Dst:             str_append_c
        - Src:             'mcht-matches.c:97,3'
          Dst:             str_append_c
        - Src:             'mcht-matches.c:106,2'
          Dst:             i_panic
    - functionName:    mcht_matches_match_key
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/mcht-matches.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         177
      ICount:          1010
      EdgeCount:       235
      CyclomaticComplexity: 60
      functionsReached:
        - _scan_key_section
        - _string_find
        - i_panic
        - pool_datastack_create
        - sieve_match_values_abort
        - sieve_match_values_add
        - sieve_match_values_add_char
        - sieve_match_values_commit
        - sieve_match_values_set
        - sieve_match_values_start
        - sieve_runtime_cpu_limit_exceeded
        - sieve_runtime_error
        - str_append_c
        - str_append_data
        - str_c
        - str_data
        - str_len
        - str_new_const
        - str_truncate
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-matches.c:131,12'
          Dst:             t_str_new
        - Src:             'mcht-matches.c:132,15'
          Dst:             t_str_new
        - Src:             'mcht-matches.c:144,17'
          Dst:             sieve_match_values_start
        - Src:             'mcht-matches.c:146,3'
          Dst:             sieve_match_values_add
        - Src:             'mcht-matches.c:148,12'
          Dst:             t_str_new
        - Src:             'mcht-matches.c:149,12'
          Dst:             t_str_new
        - Src:             'mcht-matches.c:169,8'
          Dst:             sieve_runtime_cpu_limit_exceeded
        - Src:             'mcht-matches.c:170,5'
          Dst:             sieve_runtime_error
        - Src:             'mcht-matches.c:175,5'
          Dst:             sieve_match_values_abort
        - Src:             'mcht-matches.c:189,6'
          Dst:             _scan_key_section
        - Src:             'mcht-matches.c:191,26'
          Dst:             str_len
        - Src:             'mcht-matches.c:207,5'
          Dst:             str_truncate
        - Src:             'mcht-matches.c:215,12'
          Dst:             str_c
        - Src:             'mcht-matches.c:216,10'
          Dst:             str_len
        - Src:             'mcht-matches.c:255,12'
          Dst:             str_len
        - Src:             'mcht-matches.c:279,6'
          Dst:             i_panic
        - Src:             'mcht-matches.c:280,6'
          Dst:             str_append_data
        - Src:             'mcht-matches.c:283,6'
          Dst:             sieve_match_values_add
        - Src:             'mcht-matches.c:288,7'
          Dst:             sieve_match_values_add_char
        - Src:             'mcht-matches.c:314,5'
          Dst:             str_truncate
        - Src:             'mcht-matches.c:345,16'
          Dst:             _string_find
        - Src:             'mcht-matches.c:348,6'
          Dst:             sieve_match_values_abort
        - Src:             'mcht-matches.c:356,16'
          Dst:             str_len
        - Src:             'mcht-matches.c:362,30'
          Dst:             str_len
        - Src:             'mcht-matches.c:366,6'
          Dst:             str_append_data
        - Src:             'mcht-matches.c:372,7'
          Dst:             str_append_c
        - Src:             'mcht-matches.c:389,5'
          Dst:             i_panic
        - Src:             'mcht-matches.c:395,7'
          Dst:             str_append_c
        - Src:             'mcht-matches.c:400,19'
          Dst:             _scan_key_section
        - Src:             'mcht-matches.c:406,15'
          Dst:             str_c
        - Src:             'mcht-matches.c:407,22'
          Dst:             str_len
        - Src:             'mcht-matches.c:437,8'
          Dst:             str_append_c
        - Src:             'mcht-matches.c:470,7'
          Dst:             sieve_match_values_add
        - Src:             'mcht-matches.c:472,29'
          Dst:             str_data
        - Src:             'mcht-matches.c:474,22'
          Dst:             str_len
        - Src:             'mcht-matches.c:475,7'
          Dst:             sieve_match_values_add_char
        - Src:             'mcht-matches.c:491,5'
          Dst:             str_truncate
        - Src:             'mcht-matches.c:492,5'
          Dst:             i_panic
        - Src:             'mcht-matches.c:493,5'
          Dst:             str_append_data
        - Src:             'mcht-matches.c:494,5'
          Dst:             sieve_match_values_add
        - Src:             'mcht-matches.c:528,5'
          Dst:             pool_datastack_create
        - Src:             'mcht-matches.c:527,24'
          Dst:             str_new_const
        - Src:             'mcht-matches.c:529,4'
          Dst:             sieve_match_values_set
        - Src:             'mcht-matches.c:532,4'
          Dst:             sieve_match_values_commit
        - Src:             'mcht-matches.c:538,2'
          Dst:             sieve_match_values_abort
    - functionName:    tst_true_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-truefalse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_offset
        - sieve_jumplist_add
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-truefalse.c:101,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-truefalse.c:103,11'
          Dst:             sieve_binary_emit_offset
        - Src:             'tst-truefalse.c:102,3'
          Dst:             sieve_jumplist_add
    - functionName:    tst_true_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-truefalse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_false_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-truefalse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_offset
        - sieve_jumplist_add
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-truefalse.c:88,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-truefalse.c:90,11'
          Dst:             sieve_binary_emit_offset
        - Src:             'tst-truefalse.c:89,3'
          Dst:             sieve_jumplist_add
    - functionName:    tst_false_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-truefalse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_not_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-not.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_test
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-not.c:67,9'
          Dst:             sieve_generate_test
    - functionName:    tst_not_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-not.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_anyof_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-anyof.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          201
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sieve_binary_emit_offset
        - sieve_generate_test
        - sieve_jumplist_add
        - sieve_jumplist_init_temp
        - sieve_jumplist_resolve
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-anyof.c:73,4'
          Dst:             sieve_jumplist_init_temp
        - Src:             'tst-anyof.c:87,14'
          Dst:             sieve_generate_test
        - Src:             'tst-anyof.c:90,14'
          Dst:             sieve_generate_test
        - Src:             'tst-anyof.c:102,4'
          Dst:             sieve_operation_emit
        - Src:             'tst-anyof.c:105,12'
          Dst:             sieve_binary_emit_offset
        - Src:             'tst-anyof.c:104,4'
          Dst:             sieve_jumplist_add
        - Src:             'tst-anyof.c:108,4'
          Dst:             sieve_jumplist_resolve
        - Src:             'tst-anyof.c:114,3'
          Dst:             sieve_generate_test
    - functionName:    tst_anyof_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-anyof.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_allof_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-allof.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          203
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sieve_binary_emit_offset
        - sieve_generate_test
        - sieve_jumplist_add
        - sieve_jumplist_init_temp
        - sieve_jumplist_resolve
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-allof.c:73,4'
          Dst:             sieve_jumplist_init_temp
        - Src:             'tst-allof.c:87,14'
          Dst:             sieve_generate_test
        - Src:             'tst-allof.c:90,14'
          Dst:             sieve_generate_test
        - Src:             'tst-allof.c:102,4'
          Dst:             sieve_operation_emit
        - Src:             'tst-allof.c:105,12'
          Dst:             sieve_binary_emit_offset
        - Src:             'tst-allof.c:104,4'
          Dst:             sieve_jumplist_add
        - Src:             'tst-allof.c:108,4'
          Dst:             sieve_jumplist_resolve
        - Src:             'tst-allof.c:114,3'
          Dst:             sieve_generate_test
    - functionName:    tst_allof_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-allof.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    _header_is_allowed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:132,24'
          Dst:             str_c
        - Src:             'tst-address.c:136,8'
          Dst:             strcasecmp
    - functionName:    tst_address_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          123
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_address_part_stringlist_create
        - sieve_header_address_list_create
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_message_get_header_fields
        - sieve_message_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:249,6'
          Dst:             sieve_message_opr_optional_read
        - Src:             'tst-address.c:254,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-address.c:259,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-address.c:263,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-address.c:266,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-address.c:267,13'
          Dst:             sieve_message_get_header_fields
        - Src:             'tst-address.c:270,2'
          Dst:             sieve_runtime_trace_ascend
        - Src:             'tst-address.c:273,14'
          Dst:             sieve_header_address_list_create
        - Src:             'tst-address.c:274,15'
          Dst:             sieve_address_part_stringlist_create
        - Src:             'tst-address.c:278,15'
          Dst:             sieve_match
        - Src:             'tst-address.c:283,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_address_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_message_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:216,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-address.c:217,2'
          Dst:             sieve_code_descend
        - Src:             'tst-address.c:220,6'
          Dst:             sieve_message_opr_optional_dump
        - Src:             'tst-address.c:223,10'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-address.c:224,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_address_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:202,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-address.c:205,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_address_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          135
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - _header_is_allowed
        - i_panic
        - sieve_ast_stringlist_map
        - sieve_command_verify_headers_argument
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:155,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-address.c:159,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-address.c:162,7'
          Dst:             sieve_command_verify_headers_argument
        - Src:             'tst-address.c:169,6'
          Dst:             sieve_ast_stringlist_map
        - Src:             'tst-address.c:169,6'
          Dst:             _header_is_allowed
        - Src:             'tst-address.c:170,3'
          Dst:             i_panic
        - Src:             'tst-address.c:171,3'
          Dst:             str_c
        - Src:             'tst-address.c:171,3'
          Dst:             str_sanitize
        - Src:             'tst-address.c:171,3'
          Dst:             sieve_validator_error
        - Src:             'tst-address.c:182,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-address.c:186,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-address.c:190,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_address_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_parts_link_tags
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-address.c:81,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-address.c:83,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-address.c:85,2'
          Dst:             sieve_address_parts_link_tags
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_header_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_message_get_header_fields
        - sieve_message_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-header.c:176,6'
          Dst:             sieve_message_opr_optional_read
        - Src:             'tst-header.c:181,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-header.c:186,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-header.c:194,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-header.c:197,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-header.c:198,13'
          Dst:             sieve_message_get_header_fields
        - Src:             'tst-header.c:201,2'
          Dst:             sieve_runtime_trace_ascend
        - Src:             'tst-header.c:204,15'
          Dst:             sieve_match
        - Src:             'tst-header.c:209,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_header_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_message_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-header.c:143,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-header.c:144,2'
          Dst:             sieve_code_descend
        - Src:             'tst-header.c:147,6'
          Dst:             sieve_message_opr_optional_dump
        - Src:             'tst-header.c:150,10'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-header.c:151,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_header_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-header.c:129,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-header.c:132,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_header_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_command_verify_headers_argument
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-header.c:97,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-header.c:102,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-header.c:104,7'
          Dst:             sieve_command_verify_headers_argument
        - Src:             'tst-header.c:109,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-header.c:113,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-header.c:117,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_header_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-header.c:76,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-header.c:78,2'
          Dst:             sieve_match_types_link_tags
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_exists_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          169
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_message_get_header_fields
        - sieve_message_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_single_stringlist_create
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-exists.c:130,6'
          Dst:             sieve_message_opr_optional_read
        - Src:             'tst-exists.c:135,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-exists.c:143,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-exists.c:144,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-exists.c:151,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-exists.c:156,17'
          Dst:             sieve_single_stringlist_create
        - Src:             'tst-exists.c:157,9'
          Dst:             sieve_message_get_header_fields
        - Src:             'tst-exists.c:162,9'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-exists.c:170,35'
          Dst:             str_c
        - Src:             'tst-exists.c:170,22'
          Dst:             str_sanitize
        - Src:             'tst-exists.c:168,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-exists.c:175,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-exists.c:178,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-exists.c:184,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-exists.c:188,2'
          Dst:             sieve_runtime_trace_error
    - functionName:    tst_exists_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_message_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-exists.c:100,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-exists.c:101,2'
          Dst:             sieve_code_descend
        - Src:             'tst-exists.c:104,6'
          Dst:             sieve_message_opr_optional_dump
        - Src:             'tst-exists.c:107,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_exists_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-exists.c:86,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-exists.c:89,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_exists_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_command_verify_headers_argument
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-exists.c:67,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-exists.c:72,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-exists.c:75,9'
          Dst:             sieve_command_verify_headers_argument
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_size_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_get_physical_size
        - sieve_message_get_mail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:245,22'
          Dst:             sieve_message_get_mail
        - Src:             'tst-size.c:248,6'
          Dst:             mail_get_physical_size
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    tst_size_validate_under_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:120,3'
          Dst:             sieve_validator_error
        - Src:             'tst-size.c:128,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tst_size_validate_over_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:98,3'
          Dst:             sieve_validator_error
        - Src:             'tst-size.c:106,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tst_size_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - sieve_interpreter_set_test_result
        - sieve_opr_number_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - tst_size_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:267,13'
          Dst:             sieve_opr_number_read
        - Src:             'tst-size.c:275,7'
          Dst:             tst_size_get
        - Src:             'tst-size.c:277,3'
          Dst:             e_error
        - Src:             'tst-size.c:283,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:285,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-size.c:286,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-size.c:288,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:291,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:296,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-size.c:299,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:302,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-size.c:303,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-size.c:305,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:308,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-size.c:313,3'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_size_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:232,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-size.c:233,2'
          Dst:             sieve_code_descend
        - Src:             'tst-size.c:235,9'
          Dst:             sieve_opr_number_dump
    - functionName:    tst_size_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:210,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-size.c:213,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-size.c:218,7'
          Dst:             sieve_generate_arguments
    - functionName:    tst_size_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:186,3'
          Dst:             sieve_validator_error
        - Src:             'tst-size.c:192,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-size.c:196,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    tst_size_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:170,13'
          Dst:             sieve_ast_pool
        - Src:             'tst-size.c:170,13'
          Dst:             malloc_multiply_check
        - Src:             'tst-size.c:170,13'
          Dst:             p_malloc
    - functionName:    tst_size_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/tst-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-size.c:153,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-size.c:154,2'
          Dst:             sieve_validator_register_tag
    - functionName:    cmd_require_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-require.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          229
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - sieve_ast_argument_type_name
        - sieve_command_prev
        - sieve_validator_error
        - sieve_validator_extension_load_by_name
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-require.c:40,31'
          Dst:             sieve_command_prev
        - Src:             'cmd-require.c:47,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-require.c:61,23'
          Dst:             str_c
        - Src:             'cmd-require.c:60,4'
          Dst:             sieve_validator_extension_load_by_name
        - Src:             'cmd-require.c:74,6'
          Dst:             str_c
        - Src:             'cmd-require.c:72,5'
          Dst:             sieve_validator_extension_load_by_name
        - Src:             'cmd-require.c:82,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'cmd-require.c:82,3'
          Dst:             sieve_validator_error
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    opc_stop_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-stop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_interrupt
        - sieve_runtime_trace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-stop.c:80,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-stop.c:83,2'
          Dst:             sieve_interpreter_interrupt
    - functionName:    cmd_stop_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-stop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-stop.c:67,2'
          Dst:             sieve_operation_emit
    - functionName:    cmd_stop_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-stop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_command_exit_block_unconditionally
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-stop.c:54,2'
          Dst:             sieve_command_exit_block_unconditionally
    - functionName:    cmd_if_resolve_exit_jumps
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_resolve_offset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:210,4'
          Dst:             sieve_binary_resolve_offset
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_if_initialize_context_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:103,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-if.c:103,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-if.c:103,13'
          Dst:             p_malloc
    - functionName:    cmd_else_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - cmd_if_resolve_exit_jumps
        - sieve_generate_block
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:278,8'
          Dst:             sieve_generate_block
        - Src:             'cmd-if.c:282,3'
          Dst:             cmd_if_resolve_exit_jumps
    - functionName:    cmd_elsif_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - cmd_if_initialize_context_data
        - i_panic
        - sieve_command_prev
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:147,2'
          Dst:             i_panic
        - Src:             'cmd-if.c:148,9'
          Dst:             sieve_command_prev
        - Src:             'cmd-if.c:155,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-if.c:164,2'
          Dst:             cmd_if_initialize_context_data
    - functionName:    cmd_if_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_if_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          176
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - cmd_if_resolve_exit_jumps
        - sieve_binary_emit_offset
        - sieve_command_block_exits_unconditionally
        - sieve_generate_block
        - sieve_generate_test
        - sieve_jumplist_init_temp
        - sieve_jumplist_resolve
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:228,3'
          Dst:             sieve_jumplist_init_temp
        - Src:             'cmd-if.c:231,8'
          Dst:             sieve_generate_test
        - Src:             'cmd-if.c:237,8'
          Dst:             sieve_generate_block
        - Src:             'cmd-if.c:244,3'
          Dst:             cmd_if_resolve_exit_jumps
        - Src:             'cmd-if.c:251,8'
          Dst:             sieve_command_block_exits_unconditionally
        - Src:             'cmd-if.c:252,4'
          Dst:             sieve_operation_emit
        - Src:             'cmd-if.c:255,5'
          Dst:             sieve_binary_emit_offset
        - Src:             'cmd-if.c:263,3'
          Dst:             sieve_jumplist_resolve
    - functionName:    cmd_if_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cmd_if_initialize_context_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-if.c:137,2'
          Dst:             cmd_if_initialize_context_data
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    cmd_keep_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-keep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_opr_optional_read
        - sieve_result_add_keep
        - sieve_runtime_trace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-keep.c:100,6'
          Dst:             sieve_action_opr_optional_read
        - Src:             'cmd-keep.c:108,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-keep.c:112,6'
          Dst:             sieve_result_add_keep
    - functionName:    cmd_keep_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-keep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_action_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-keep.c:78,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-keep.c:79,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-keep.c:81,10'
          Dst:             sieve_action_opr_optional_dump
    - functionName:    cmd_keep_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-keep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-keep.c:64,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-keep.c:67,9'
          Dst:             sieve_generate_arguments
    - 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_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:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/../../src/lib-sieve/util/rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-sieve/util/rfc2822.h:33,8'
          Dst:             rfc2822_header_append
    - functionName:    sieve_action_duplicate_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_mark
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-actions.h:291,9'
          Dst:             sieve_execute_duplicate_mark
    - functionName:    act_redirect_send
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          323
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - i_stream_create_header_filter
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_unref
        - mail_get_stream
        - o_stream_nsend
        - o_stream_nsend_istream
        - rfc2822_header_append
        - rfc2822_header_write
        - sieve_address_source_get_address
        - sieve_get_user_email
        - sieve_message_get_final_recipient
        - sieve_message_get_sender
        - sieve_result_critical
        - sieve_result_global_error
        - sieve_result_global_log_error
        - sieve_result_global_warning
        - sieve_result_mail_error
        - sieve_smtp_abort
        - sieve_smtp_available
        - sieve_smtp_finish
        - sieve_smtp_start_single
        - smtp_address_encode
        - str_data
        - str_len
        - str_sanitize
        - t_pop
        - t_push
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:321,7'
          Dst:             sieve_smtp_available
        - Src:             'cmd-redirect.c:322,3'
          Dst:             sieve_result_global_warning
        - Src:             'cmd-redirect.c:326,6'
          Dst:             mail_get_stream
        - Src:             'cmd-redirect.c:327,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-redirect.c:346,12'
          Dst:             sieve_message_get_sender
        - Src:             'cmd-redirect.c:348,7'
          Dst:             sieve_address_source_get_address
        - Src:             'cmd-redirect.c:354,9'
          Dst:             sieve_address_source_get_address
        - Src:             'cmd-redirect.c:364,9'
          Dst:             sieve_smtp_start_single
        - Src:             'cmd-redirect.c:367,10'
          Dst:             i_stream_create_header_filter
        - Src:             'cmd-redirect.c:372,2'
          Dst:             t_push
        - Src:             'cmd-redirect.c:373,19'
          Dst:             t_str_new
        - Src:             'cmd-redirect.c:377,3'
          Dst:             rfc2822_header_append
        - Src:             'cmd-redirect.c:381,17'
          Dst:             sieve_message_get_final_recipient
        - Src:             'cmd-redirect.c:383,17'
          Dst:             sieve_get_user_email
        - Src:             'cmd-redirect.c:386,12'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:385,4'
          Dst:             rfc2822_header_append
        - Src:             'cmd-redirect.c:392,4'
          Dst:             rfc2822_header_write
        - Src:             'cmd-redirect.c:394,26'
          Dst:             str_data
        - Src:             'cmd-redirect.c:394,41'
          Dst:             str_len
        - Src:             'cmd-redirect.c:394,3'
          Dst:             o_stream_nsend
        - Src:             'cmd-redirect.c:395,4'
          Dst:             t_pop
        - Src:             'cmd-redirect.c:395,4'
          Dst:             i_panic
        - Src:             'cmd-redirect.c:397,2'
          Dst:             o_stream_nsend_istream
        - Src:             'cmd-redirect.c:400,3'
          Dst:             i_stream_get_name
        - Src:             'cmd-redirect.c:400,3'
          Dst:             i_stream_get_error
        - Src:             'cmd-redirect.c:400,3'
          Dst:             sieve_result_critical
        - Src:             'cmd-redirect.c:404,3'
          Dst:             i_stream_unref
        - Src:             'cmd-redirect.c:405,3'
          Dst:             sieve_smtp_abort
        - Src:             'cmd-redirect.c:408,2'
          Dst:             i_stream_unref
        - Src:             'cmd-redirect.c:411,13'
          Dst:             sieve_smtp_finish
        - Src:             'cmd-redirect.c:413,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:413,4'
          Dst:             str_sanitize
        - Src:             'cmd-redirect.c:413,4'
          Dst:             sieve_result_global_error
        - Src:             'cmd-redirect.c:421,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:421,3'
          Dst:             str_sanitize
        - Src:             'cmd-redirect.c:421,3'
          Dst:             sieve_result_global_log_error
    - functionName:    act_redirect_check_loop_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          176
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - mail_get_headers
        - sieve_get_user_email
        - sieve_message_get_final_recipient
        - sieve_result_mail_error
        - smtp_address_encode
        - strcmp
        - t_str_trim
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:499,8'
          Dst:             mail_get_headers
        - Src:             'cmd-redirect.c:501,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-redirect.c:511,10'
          Dst:             sieve_message_get_final_recipient
        - Src:             'cmd-redirect.c:513,16'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:515,9'
          Dst:             sieve_get_user_email
        - Src:             'cmd-redirect.c:517,16'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:520,24'
          Dst:             t_str_trim
        - Src:             'cmd-redirect.c:521,28'
          Dst:             strcmp
        - Src:             'cmd-redirect.c:525,29'
          Dst:             strcmp
    - functionName:    sieve_action_duplicate_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-actions.h:281,9'
          Dst:             sieve_execute_duplicate_check
    - functionName:    act_redirect_get_duplicate_id
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          176
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - mail_get_first_header
        - p_strdup_printf
        - sieve_get_user_email
        - sieve_message_get_orig_recipient
        - sieve_result_mail_error
        - sieve_result_pool
        - smtp_address_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:445,6'
          Dst:             mail_get_first_header
        - Src:             'cmd-redirect.c:446,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-redirect.c:451,6'
          Dst:             mail_get_first_header
        - Src:             'cmd-redirect.c:452,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-redirect.c:456,6'
          Dst:             mail_get_first_header
        - Src:             'cmd-redirect.c:457,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-redirect.c:463,15'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'cmd-redirect.c:465,15'
          Dst:             sieve_get_user_email
        - Src:             'cmd-redirect.c:467,16'
          Dst:             sieve_result_pool
        - Src:             'cmd-redirect.c:479,24'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:480,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:477,14'
          Dst:             p_strdup_printf
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    smtp_address_equals
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-smtp/smtp-address.h:191,10'
          Dst:             smtp_address_cmp
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    act_redirect_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          159
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - act_redirect_send
        - sieve_action_create_finish_event
        - sieve_action_duplicate_mark
        - sieve_message_get_mail
        - sieve_result_event_log
        - smtp_address_encode
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:640,24'
          Dst:             sieve_message_get_mail
        - Src:             'cmd-redirect.c:651,8'
          Dst:             act_redirect_send
        - Src:             'cmd-redirect.c:656,25'
          Dst:             strlen
        - Src:             'cmd-redirect.c:655,3'
          Dst:             sieve_action_duplicate_mark
        - Src:             'cmd-redirect.c:662,4'
          Dst:             sieve_action_create_finish_event
        - Src:             'cmd-redirect.c:664,5'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:666,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:666,3'
          Dst:             sieve_result_event_log
    - functionName:    act_redirect_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          262
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - act_redirect_check_loop_header
        - act_redirect_get_duplicate_id
        - i_panic
        - mail_get_message_id_no_validation
        - p_strdup
        - sieve_action_duplicate_check
        - sieve_message_get_mail
        - sieve_message_get_new_id
        - sieve_result_critical
        - sieve_result_global_log
        - sieve_result_pool
        - smtp_address_encode
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:560,24'
          Dst:             sieve_message_get_mail
        - Src:             'cmd-redirect.c:572,17'
          Dst:             sieve_result_pool
        - Src:             'cmd-redirect.c:574,7'
          Dst:             mail_get_message_id_no_validation
        - Src:             'cmd-redirect.c:575,20'
          Dst:             p_strdup
        - Src:             'cmd-redirect.c:577,13'
          Dst:             sieve_message_get_new_id
        - Src:             'cmd-redirect.c:578,40'
          Dst:             p_strdup
        - Src:             'cmd-redirect.c:583,8'
          Dst:             act_redirect_get_duplicate_id
        - Src:             'cmd-redirect.c:587,2'
          Dst:             i_panic
        - Src:             'cmd-redirect.c:591,9'
          Dst:             strlen
        - Src:             'cmd-redirect.c:590,8'
          Dst:             sieve_action_duplicate_check
        - Src:             'cmd-redirect.c:594,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:594,3'
          Dst:             sieve_result_critical
        - Src:             'cmd-redirect.c:603,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:603,3'
          Dst:             sieve_result_global_log
        - Src:             'cmd-redirect.c:612,8'
          Dst:             act_redirect_check_loop_header
        - Src:             'cmd-redirect.c:616,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-redirect.c:616,3'
          Dst:             sieve_result_global_log
    - functionName:    act_redirect_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_result_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:539,16'
          Dst:             sieve_result_pool
        - Src:             'cmd-redirect.c:542,10'
          Dst:             malloc_multiply_check
        - Src:             'cmd-redirect.c:542,10'
          Dst:             p_malloc
    - functionName:    act_redirect_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_action_printf
        - smtp_address_encode_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:297,8'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-redirect.c:296,2'
          Dst:             sieve_result_action_printf
    - functionName:    act_redirect_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - act_redirect_equals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:286,10'
          Dst:             act_redirect_equals
    - functionName:    act_redirect_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:276,10'
          Dst:             smtp_address_equals
    - functionName:    cmd_redirect_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_act_redirect_add_to_result
        - sieve_action_opr_optional_read
        - sieve_address_parse_str
        - sieve_opr_string_read
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - smtp_address_encode_path
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:213,6'
          Dst:             sieve_action_opr_optional_read
        - Src:             'cmd-redirect.c:218,13'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-redirect.c:227,15'
          Dst:             sieve_address_parse_str
        - Src:             'cmd-redirect.c:229,3'
          Dst:             str_c
        - Src:             'cmd-redirect.c:229,3'
          Dst:             str_sanitize
        - Src:             'cmd-redirect.c:229,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-redirect.c:236,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-redirect.c:241,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-redirect.c:242,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-redirect.c:243,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-redirect.c:245,4'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-redirect.c:244,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-redirect.c:250,9'
          Dst:             sieve_act_redirect_add_to_result
    - functionName:    cmd_redirect_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_action_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:183,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-redirect.c:184,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-redirect.c:186,6'
          Dst:             sieve_action_opr_optional_dump
        - Src:             'cmd-redirect.c:189,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_redirect_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:169,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-redirect.c:172,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_redirect_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          154
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - sieve_address_validate_str
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - sieve_validator_svinst
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-redirect.c:117,34'
          Dst:             sieve_validator_svinst
        - Src:             'cmd-redirect.c:122,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-redirect.c:126,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-redirect.c:138,3'
          Dst:             t_push
        - Src:             'cmd-redirect.c:140,13'
          Dst:             sieve_address_validate_str
        - Src:             'cmd-redirect.c:142,5'
          Dst:             str_c
        - Src:             'cmd-redirect.c:142,5'
          Dst:             str_sanitize
        - Src:             'cmd-redirect.c:142,5'
          Dst:             sieve_validator_error
        - Src:             'cmd-redirect.c:148,5'
          Dst:             t_pop
        - Src:             'cmd-redirect.c:148,5'
          Dst:             i_panic
        - Src:             'cmd-redirect.c:154,3'
          Dst:             sieve_validator_error
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    act_discard_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_action_create_finish_event
        - sieve_result_event_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-discard.c:163,32'
          Dst:             sieve_action_create_finish_event
        - Src:             'cmd-discard.c:165,2'
          Dst:             sieve_result_event_log
    - functionName:    act_discard_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_action_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-discard.c:150,2'
          Dst:             sieve_result_action_printf
    - functionName:    act_discard_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    act_discard_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_discard_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_result_add_action
        - sieve_runtime_trace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-discard.c:117,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-discard.c:120,6'
          Dst:             sieve_result_add_action
    - functionName:    cmd_discard_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_action_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-discard.c:103,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-discard.c:104,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-discard.c:106,10'
          Dst:             sieve_action_opr_optional_dump
    - functionName:    cmd_discard_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/cmd-discard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-discard.c:90,2'
          Dst:             sieve_operation_emit
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_fileinto_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-fileinto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-fileinto.c:144,2'
          Dst:             sieve_operation_emit
        - Src:             'ext-fileinto.c:147,9'
          Dst:             sieve_generate_arguments
    - functionName:    ext_fileinto_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-fileinto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_action_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-fileinto.c:158,2'
          Dst:             sieve_code_dumpf
        - Src:             'ext-fileinto.c:159,2'
          Dst:             sieve_code_descend
        - Src:             'ext-fileinto.c:161,6'
          Dst:             sieve_action_opr_optional_dump
        - Src:             'ext-fileinto.c:164,9'
          Dst:             sieve_opr_string_dump
    - functionName:    ext_fileinto_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-fileinto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_act_store_add_to_result
        - sieve_action_opr_optional_read
        - sieve_mailbox_check_name
        - sieve_message_snapshot
        - sieve_opr_string_read
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-fileinto.c:178,15'
          Dst:             sieve_runtime_trace_active
        - Src:             'ext-fileinto.c:186,6'
          Dst:             sieve_action_opr_optional_read
        - Src:             'ext-fileinto.c:191,8'
          Dst:             sieve_opr_string_read
        - Src:             'ext-fileinto.c:200,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-fileinto.c:201,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'ext-fileinto.c:204,32'
          Dst:             str_c
        - Src:             'ext-fileinto.c:204,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'ext-fileinto.c:205,3'
          Dst:             str_c
        - Src:             'ext-fileinto.c:205,3'
          Dst:             sieve_runtime_error
        - Src:             'ext-fileinto.c:214,22'
          Dst:             str_c
        - Src:             'ext-fileinto.c:214,9'
          Dst:             str_sanitize
        - Src:             'ext-fileinto.c:213,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-fileinto.c:219,8'
          Dst:             str_c
        - Src:             'ext-fileinto.c:218,6'
          Dst:             sieve_act_store_add_to_result
        - Src:             'ext-fileinto.c:222,2'
          Dst:             sieve_message_snapshot
    - functionName:    ext_fileinto_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-fileinto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-fileinto.c:57,2'
          Dst:             sieve_validator_register_command
    - functionName:    cmd_fileinto_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-fileinto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_mailbox_check_name
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-fileinto.c:114,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'ext-fileinto.c:118,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'ext-fileinto.c:123,24'
          Dst:             str_c
        - Src:             'ext-fileinto.c:125,8'
          Dst:             sieve_mailbox_check_name
        - Src:             'ext-fileinto.c:126,4'
          Dst:             str_sanitize
        - Src:             'ext-fileinto.c:126,4'
          Dst:             sieve_validator_error
    - functionName:    smtp_address_isnull
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_reject_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          139
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_action_opr_optional_read
        - sieve_opr_string_read
        - sieve_result_add_action
        - sieve_result_pool
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:396,6'
          Dst:             sieve_action_opr_optional_read
        - Src:             'ext-reject.c:401,13'
          Dst:             sieve_opr_string_read
        - Src:             'ext-reject.c:409,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'ext-reject.c:411,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-reject.c:413,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-reject.c:415,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'ext-reject.c:417,22'
          Dst:             str_c
        - Src:             'ext-reject.c:417,9'
          Dst:             str_sanitize
        - Src:             'ext-reject.c:416,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-reject.c:421,9'
          Dst:             sieve_result_pool
        - Src:             'ext-reject.c:422,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-reject.c:422,8'
          Dst:             p_malloc
        - Src:             'ext-reject.c:423,31'
          Dst:             str_c
        - Src:             'ext-reject.c:423,16'
          Dst:             p_strdup
        - Src:             'ext-reject.c:426,6'
          Dst:             sieve_result_add_action
    - functionName:    act_reject_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_action_is_executed
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:447,7'
          Dst:             sieve_action_is_executed
        - Src:             'ext-reject.c:448,3'
          Dst:             sieve_runtime_error
    - functionName:    act_reject_check_conflict
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     externalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_action_is_executed
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:464,8'
          Dst:             sieve_action_is_executed
        - Src:             'ext-reject.c:465,4'
          Dst:             sieve_runtime_error
        - Src:             'ext-reject.c:477,8'
          Dst:             sieve_action_is_executed
        - Src:             'ext-reject.c:478,4'
          Dst:             sieve_runtime_error
    - functionName:    act_reject_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_result_action_printf
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:506,4'
          Dst:             str_sanitize
        - Src:             'ext-reject.c:504,3'
          Dst:             sieve_result_action_printf
        - Src:             'ext-reject.c:508,3'
          Dst:             sieve_result_action_printf
    - functionName:    act_reject_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_result_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:520,16'
          Dst:             sieve_result_pool
        - Src:             'ext-reject.c:523,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-reject.c:523,10'
          Dst:             p_malloc
    - functionName:    act_reject_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          123
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_message_get_orig_recipient
        - sieve_message_get_sender
        - sieve_result_global_log
        - sieve_result_global_warning
        - smtp_address_isnull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:539,11'
          Dst:             sieve_message_get_sender
        - Src:             'ext-reject.c:540,14'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'ext-reject.c:543,3'
          Dst:             sieve_result_global_log
        - Src:             'ext-reject.c:548,6'
          Dst:             smtp_address_isnull
        - Src:             'ext-reject.c:549,3'
          Dst:             sieve_result_global_warning
        - Src:             'ext-reject.c:555,3'
          Dst:             sieve_result_global_log
        - Src:             'ext-reject.c:562,6'
          Dst:             smtp_address_isnull
        - Src:             'ext-reject.c:563,3'
          Dst:             sieve_result_global_log
    - functionName:    act_reject_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          104
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_create_finish_event
        - sieve_action_reject_mail
        - sieve_message_get_orig_recipient
        - sieve_message_get_sender
        - sieve_result_event_log
        - smtp_address_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:585,11'
          Dst:             sieve_message_get_sender
        - Src:             'ext-reject.c:586,14'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'ext-reject.c:591,13'
          Dst:             sieve_action_reject_mail
        - Src:             'ext-reject.c:597,32'
          Dst:             sieve_action_create_finish_event
        - Src:             'ext-reject.c:599,2'
          Dst:             smtp_address_encode
        - Src:             'ext-reject.c:599,2'
          Dst:             sieve_result_event_log
    - functionName:    ext_reject_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:366,2'
          Dst:             sieve_code_dumpf
        - Src:             'ext-reject.c:367,2'
          Dst:             sieve_code_descend
        - Src:             'ext-reject.c:369,6'
          Dst:             sieve_action_opr_optional_dump
        - Src:             'ext-reject.c:372,9'
          Dst:             sieve_opr_string_dump
    - functionName:    ext_ereject_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:144,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-reject.c:146,2'
          Dst:             sieve_validator_extension_register
    - functionName:    ext_ereject_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:156,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_reject_interpreter_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:196,4'
          Dst:             sieve_runtime_error
    - functionName:    ext_reject_validator_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validator_compile_flags
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:173,4'
          Dst:             sieve_validator_compile_flags
        - Src:             'ext-reject.c:176,4'
          Dst:             sieve_validator_error
    - functionName:    cmd_reject_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:331,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'ext-reject.c:335,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    cmd_reject_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:347,3'
          Dst:             sieve_operation_emit
        - Src:             'ext-reject.c:350,3'
          Dst:             sieve_operation_emit
        - Src:             'ext-reject.c:355,9'
          Dst:             sieve_generate_arguments
    - functionName:    ext_reject_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:94,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-reject.c:96,2'
          Dst:             sieve_validator_extension_register
    - functionName:    ext_reject_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-reject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-reject.c:106,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_envelope_address_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          376
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - _envelope_part_find
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - smtp_address_init
        - str_c
        - str_sanitize
        - strlen
        - t_str_new_const
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:413,3'
          Dst:             smtp_address_init
        - Src:             'ext-envelope.c:423,14'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-envelope.c:431,18'
          Dst:             str_c
        - Src:             'ext-envelope.c:431,5'
          Dst:             str_sanitize
        - Src:             'ext-envelope.c:428,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-envelope.c:434,34'
          Dst:             str_c
        - Src:             'ext-envelope.c:434,14'
          Dst:             _envelope_part_find
        - Src:             'ext-envelope.c:469,19'
          Dst:             t_str_new_const
        - Src:             'ext-envelope.c:486,41'
          Dst:             strlen
        - Src:             'ext-envelope.c:486,18'
          Dst:             t_str_new_const
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    _envelope_part_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:256,7'
          Dst:             strcasecmp
    - functionName:    _auth_part_get_values
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:346,2'
          Dst:             pool_datastack_create
        - Src:             'ext-envelope.c:346,2'
          Dst:             array_create_i
        - Src:             'ext-envelope.c:349,3'
          Dst:             array_append_i
        - Src:             'ext-envelope.c:351,8'
          Dst:             array_append_space_i
        - Src:             'ext-envelope.c:353,9'
          Dst:             array_idx_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    _to_part_get_addresses
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
        - sieve_message_get_orig_recipient
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:308,3'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'ext-envelope.c:311,3'
          Dst:             pool_datastack_create
        - Src:             'ext-envelope.c:311,3'
          Dst:             array_create_i
        - Src:             'ext-envelope.c:313,3'
          Dst:             array_append_i
        - Src:             'ext-envelope.c:315,9'
          Dst:             array_append_space_i
        - Src:             'ext-envelope.c:316,10'
          Dst:             array_idx_i
    - functionName:    _to_part_get_values
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
        - sieve_message_get_orig_recipient
        - smtp_address_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:326,3'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'ext-envelope.c:328,2'
          Dst:             pool_datastack_create
        - Src:             'ext-envelope.c:328,2'
          Dst:             array_create_i
        - Src:             'ext-envelope.c:331,23'
          Dst:             smtp_address_encode
        - Src:             'ext-envelope.c:332,3'
          Dst:             array_append_i
        - Src:             'ext-envelope.c:335,8'
          Dst:             array_append_space_i
        - Src:             'ext-envelope.c:337,9'
          Dst:             array_idx_i
    - functionName:    _from_part_get_addresses
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
        - sieve_message_get_sender
        - smtp_address_create_temp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:271,3'
          Dst:             sieve_message_get_sender
        - Src:             'ext-envelope.c:273,2'
          Dst:             pool_datastack_create
        - Src:             'ext-envelope.c:273,2'
          Dst:             array_create_i
        - Src:             'ext-envelope.c:276,13'
          Dst:             smtp_address_create_temp
        - Src:             'ext-envelope.c:277,2'
          Dst:             array_append_i
        - Src:             'ext-envelope.c:279,8'
          Dst:             array_append_space_i
        - Src:             'ext-envelope.c:280,9'
          Dst:             array_idx_i
    - functionName:    _from_part_get_values
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
        - sieve_message_get_sender
        - smtp_address_encode
        - smtp_address_isnull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:288,3'
          Dst:             sieve_message_get_sender
        - Src:             'ext-envelope.c:291,2'
          Dst:             pool_datastack_create
        - Src:             'ext-envelope.c:291,2'
          Dst:             array_create_i
        - Src:             'ext-envelope.c:294,7'
          Dst:             smtp_address_isnull
        - Src:             'ext-envelope.c:295,11'
          Dst:             smtp_address_encode
        - Src:             'ext-envelope.c:296,2'
          Dst:             array_append_i
        - Src:             'ext-envelope.c:298,8'
          Dst:             array_append_space_i
        - Src:             'ext-envelope.c:300,9'
          Dst:             array_idx_i
    - functionName:    smtp_address_isnull
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_envelope_address_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:527,2'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_envelope_address_list_next_string_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_envelope_address_list_next_item
        - smtp_address_encode
        - strlen
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:509,11'
          Dst:             sieve_envelope_address_list_next_item
        - Src:             'ext-envelope.c:514,26'
          Dst:             smtp_address_encode
        - Src:             'ext-envelope.c:516,39'
          Dst:             strlen
        - Src:             'ext-envelope.c:516,13'
          Dst:             t_str_new_const
    - functionName:    sieve_envelope_address_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:391,13'
          Dst:             malloc_multiply_check
        - Src:             'ext-envelope.c:391,13'
          Dst:             t_malloc0
    - functionName:    _envelope_part_is_supported
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - _envelope_part_find
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:563,4'
          Dst:             str_c
        - Src:             'ext-envelope.c:562,14'
          Dst:             _envelope_part_find
    - functionName:    tst_envelope_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:646,8'
          Dst:             sieve_operation_emit
        - Src:             'ext-envelope.c:650,7'
          Dst:             sieve_generate_arguments
    - functionName:    ext_envelope_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_addrmatch_opr_optional_dump
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:663,2'
          Dst:             sieve_code_dumpf
        - Src:             'ext-envelope.c:664,2'
          Dst:             sieve_code_descend
        - Src:             'ext-envelope.c:667,6'
          Dst:             sieve_addrmatch_opr_optional_dump
        - Src:             'ext-envelope.c:670,10'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'ext-envelope.c:671,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    ext_envelope_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_address_part_stringlist_create
        - sieve_addrmatch_opr_optional_read
        - sieve_envelope_address_list_create
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:697,6'
          Dst:             sieve_addrmatch_opr_optional_read
        - Src:             'ext-envelope.c:702,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'ext-envelope.c:707,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'ext-envelope.c:715,2'
          Dst:             sieve_runtime_trace
        - Src:             'ext-envelope.c:718,14'
          Dst:             sieve_envelope_address_list_create
        - Src:             'ext-envelope.c:719,15'
          Dst:             sieve_address_part_stringlist_create
        - Src:             'ext-envelope.c:723,15'
          Dst:             sieve_match
        - Src:             'ext-envelope.c:728,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    ext_envelope_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:86,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-envelope.c:88,2'
          Dst:             sieve_validator_extension_register
    - functionName:    ext_envelope_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:98,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_envelope_interpreter_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:136,4'
          Dst:             sieve_runtime_error
    - functionName:    ext_envelope_validator_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validator_compile_flags
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:113,4'
          Dst:             sieve_validator_compile_flags
        - Src:             'ext-envelope.c:116,4'
          Dst:             sieve_validator_error
    - functionName:    tst_envelope_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_parts_link_tags
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:543,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'ext-envelope.c:544,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'ext-envelope.c:545,2'
          Dst:             sieve_address_parts_link_tags
    - functionName:    tst_envelope_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          171
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - _envelope_part_is_supported
        - i_panic
        - sieve_ast_stringlist_map
        - sieve_command_find_argument
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-envelope.c:586,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'ext-envelope.c:592,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'ext-envelope.c:599,6'
          Dst:             sieve_ast_stringlist_map
        - Src:             'ext-envelope.c:599,6'
          Dst:             _envelope_part_is_supported
        - Src:             'ext-envelope.c:601,3'
          Dst:             i_panic
        - Src:             'ext-envelope.c:602,3'
          Dst:             str_c
        - Src:             'ext-envelope.c:602,3'
          Dst:             str_sanitize
        - Src:             'ext-envelope.c:602,3'
          Dst:             sieve_validator_error
        - Src:             'ext-envelope.c:611,4'
          Dst:             sieve_command_find_argument
        - Src:             'ext-envelope.c:614,4'
          Dst:             sieve_validator_error
        - Src:             'ext-envelope.c:626,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'ext-envelope.c:630,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'ext-envelope.c:634,9'
          Dst:             sieve_match_type_validate
    - 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:    1
      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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    _parse_hexint
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - str_parse_uint_hex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-encoded-character.c:83,9'
          Dst:             __ctype_b_loc
        - Src:             'ext-encoded-character.c:91,42'
          Dst:             __ctype_b_loc
        - Src:             'ext-encoded-character.c:98,6'
          Dst:             str_parse_uint_hex
    - functionName:    _skip_whitespace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:             'dovecot/src/lib/str.h:61,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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    _decode_unicode
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          88
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - _parse_hexint
        - _skip_whitespace
        - uni_is_valid_ucs4
        - uni_ucs4_to_utf8_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-encoded-character.c:134,8'
          Dst:             _skip_whitespace
        - Src:             'ext-encoded-character.c:136,8'
          Dst:             _parse_hexint
        - Src:             'ext-encoded-character.c:139,7'
          Dst:             uni_is_valid_ucs4
        - Src:             'ext-encoded-character.c:140,4'
          Dst:             uni_ucs4_to_utf8_c
    - functionName:    _decode_hex
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _parse_hexint
        - _skip_whitespace
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-encoded-character.c:112,8'
          Dst:             _skip_whitespace
        - Src:             'ext-encoded-character.c:114,8'
          Dst:             _parse_hexint
        - Src:             'ext-encoded-character.c:117,3'
          Dst:             str_append_c
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    arg_encoded_string_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     externalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          382
      EdgeCount:       84
      CyclomaticComplexity: 19
      functionsReached:
        - __ctype_b_loc
        - _decode_hex
        - _decode_unicode
        - i_panic
        - sieve_ast_argument_string_set
        - sieve_ast_pool
        - sieve_validator_argument_activate_super
        - sieve_validator_error
        - str_append_data
        - str_append_str
        - str_c
        - str_len
        - str_new
        - str_truncate
        - strncasecmp
        - t_pop
        - t_push
        - t_str_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ext-encoded-character.c:172,4'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-encoded-character.c:161,23'
          Dst:             str_c
        - Src:             'ext-encoded-character.c:162,32'
          Dst:             str_len
        - Src:             'ext-encoded-character.c:166,2'
          Dst:             t_push
        - Src:             'ext-encoded-character.c:167,12'
          Dst:             t_str_new
        - Src:             'ext-encoded-character.c:193,26'
          Dst:             __ctype_b_loc
        - Src:             'ext-encoded-character.c:203,5'
          Dst:             str_truncate
        - Src:             'ext-encoded-character.c:204,9'
          Dst:             strncasecmp
        - Src:             'ext-encoded-character.c:207,11'
          Dst:             _decode_hex
        - Src:             'ext-encoded-character.c:209,16'
          Dst:             strncasecmp
        - Src:             'ext-encoded-character.c:212,11'
          Dst:             _decode_unicode
        - Src:             'ext-encoded-character.c:225,7'
          Dst:             sieve_validator_error
        - Src:             'ext-encoded-character.c:234,24'
          Dst:             sieve_ast_pool
        - Src:             'ext-encoded-character.c:235,10'
          Dst:             str_len
        - Src:             'ext-encoded-character.c:234,16'
          Dst:             str_new
        - Src:             'ext-encoded-character.c:238,6'
          Dst:             str_append_data
        - Src:             'ext-encoded-character.c:240,6'
          Dst:             str_append_str
        - Src:             'ext-encoded-character.c:250,4'
          Dst:             t_pop
        - Src:             'ext-encoded-character.c:250,4'
          Dst:             i_panic
        - Src:             'ext-encoded-character.c:257,4'
          Dst:             str_append_data
        - Src:             'ext-encoded-character.c:259,3'
          Dst:             sieve_ast_argument_string_set
        - Src:             'ext-encoded-character.c:263,9'
          Dst:             sieve_validator_argument_activate_super
    - functionName:    ext_encoded_character_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/ext-encoded-character.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_argument_override
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-encoded-character.c:275,2'
          Dst:             sieve_validator_argument_override
    - functionName:    sieve_resource_usage_get_summary
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1418,9'
          Dst:             t_strdup_printf
    - functionName:    sieve_resource_usage_is_excessive
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1404
      functionLinenumberEnd: 1410
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1405,2'
          Dst:             i_panic
    - functionName:    sieve_resource_usage_is_high
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1397
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_resource_usage_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1393
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_resource_usage_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_get_postmaster_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_address_write
        - sieve_get_postmaster
        - str_c
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1370,3'
          Dst:             sieve_get_postmaster
        - Src:             'sieve.c:1371,19'
          Dst:             t_str_new
        - Src:             'sieve.c:1373,2'
          Dst:             message_address_write
        - Src:             'sieve.c:1374,9'
          Dst:             str_c
    - functionName:    sieve_get_postmaster
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1351,2'
          Dst:             i_panic
    - functionName:    sieve_get_postmaster_smtp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_get_postmaster
        - smtp_address_create_from_msg_temp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1362,3'
          Dst:             sieve_get_postmaster
        - Src:             'sieve.c:1361,8'
          Dst:             smtp_address_create_from_msg_temp
        - Src:             'sieve.c:1363,2'
          Dst:             i_panic
    - functionName:    sieve_get_user_email
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1321
      functionLinenumberEnd: 1342
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          102
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - smtp_address_create
        - smtp_address_parse_mailbox
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1330,6'
          Dst:             smtp_address_parse_mailbox
        - Src:             'sieve.c:1337,33'
          Dst:             smtp_address_create
    - functionName:    sieve_trace_config_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          150
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1270,27'
          Dst:             strcasecmp
        - Src:             'sieve.c:1273,6'
          Dst:             strcasecmp
        - Src:             'sieve.c:1275,11'
          Dst:             strcasecmp
        - Src:             'sieve.c:1277,11'
          Dst:             strcasecmp
        - Src:             'sieve.c:1279,11'
          Dst:             strcasecmp
        - Src:             'sieve.c:1282,3'
          Dst:             e_error
    - 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:    sieve_trace_log_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - o_stream_get_name
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1254,6'
          Dst:             o_stream_finish
        - Src:             'sieve.c:1255,3'
          Dst:             o_stream_get_name
        - Src:             'sieve.c:1255,3'
          Dst:             o_stream_get_error
        - Src:             'sieve.c:1255,3'
          Dst:             e_error
        - Src:             'sieve.c:1259,2'
          Dst:             o_stream_destroy
        - Src:             'sieve.c:1260,2'
          Dst:             p_free_internal
    - functionName:    sieve_trace_log_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1237
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - o_stream_nsend_str
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1241,2'
          Dst:             t_push
        - Src:             'sieve.c:1243,8'
          Dst:             t_strdup_vprintf
        - Src:             'sieve.c:1242,3'
          Dst:             o_stream_nsend_str
        - Src:             'sieve.c:1244,4'
          Dst:             t_pop
        - Src:             'sieve.c:1244,4'
          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_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:    sieve_trace_log_write_line
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1233
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_nsend_str
        - o_stream_nsendv
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1223,3'
          Dst:             o_stream_nsend_str
        - Src:             'sieve.c:1228,20'
          Dst:             str_data
        - Src:             'sieve.c:1229,19'
          Dst:             str_len
        - Src:             'sieve.c:1232,2'
          Dst:             o_stream_nsendv
    - functionName:    sieve_trace_log_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - home_expand_tilde
        - sieve_trace_log_create_dir
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1206,16'
          Dst:             home_expand_tilde
        - Src:             'sieve.c:1209,16'
          Dst:             t_strconcat
        - Src:             'sieve.c:1214,9'
          Dst:             sieve_trace_log_create_dir
    - functionName:    sieve_trace_log_create_dir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1170
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - e_error
        - sieve_trace_log_create
        - stat
        - t_strdup_printf
        - t_strflocaltime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1177,6'
          Dst:             stat
        - Src:             'sieve.c:1178,7'
          Dst:             __errno_location
        - Src:             'sieve.c:1178,26'
          Dst:             __errno_location
        - Src:             'sieve.c:1179,4'
          Dst:             e_error
        - Src:             'sieve.c:1185,14'
          Dst:             t_strflocaltime
        - Src:             'sieve.c:1189,11'
          Dst:             t_strdup_printf
        - Src:             'sieve.c:1191,9'
          Dst:             sieve_trace_log_create
    - functionName:    sieve_trace_log_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - malloc_multiply_check
        - o_stream_create_fd
        - o_stream_create_fd_autoclose
        - o_stream_set_name
        - open
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1148,12'
          Dst:             o_stream_create_fd
        - Src:             'sieve.c:1150,8'
          Dst:             open
        - Src:             'sieve.c:1152,4'
          Dst:             e_error
        - Src:             'sieve.c:1156,12'
          Dst:             o_stream_create_fd_autoclose
        - Src:             'sieve.c:1157,3'
          Dst:             o_stream_set_name
        - Src:             'sieve.c:1160,14'
          Dst:             malloc_multiply_check
        - Src:             'sieve.c:1160,14'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_user_get_log_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - home_expand_tilde
        - sieve_file_script_get_path
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1105,15'
          Dst:             sieve_file_script_get_path
        - Src:             'sieve.c:1108,16'
          Dst:             t_strconcat
        - Src:             'sieve.c:1114,15'
          Dst:             t_strconcat
        - Src:             'sieve.c:1119,15'
          Dst:             home_expand_tilde
        - Src:             'sieve.c:1122,15'
          Dst:             t_strconcat
    - functionName:    sieve_error_create_script_not_found
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1085,14'
          Dst:             t_strdup_printf
    - functionName:    sieve_error_create_internal
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1075
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - localtime
        - strftime
        - t_strdup
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:1068,7'
          Dst:             localtime
        - Src:             'sieve.c:1070,6'
          Dst:             strftime
        - Src:             'sieve.c:1071,14'
          Dst:             t_strdup
    - functionName:    sieve_max_script_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1028
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_max_actions
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_max_redirects
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_multiscript_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - pool_unref
        - sieve_execute_deinit
        - sieve_result_execution_destroy
        - sieve_result_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:808,2'
          Dst:             event_want_level
        - Src:             'sieve.c:808,2'
          Dst:             e_debug
        - Src:             'sieve.c:808,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:810,2'
          Dst:             event_unref
        - Src:             'sieve.c:812,2'
          Dst:             sieve_result_execution_destroy
        - Src:             'sieve.c:813,2'
          Dst:             sieve_result_unref
        - Src:             'sieve.c:814,2'
          Dst:             sieve_execute_deinit
        - Src:             'sieve.c:815,2'
          Dst:             pool_unref
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_execution_exitcode_to_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
      functionUses:    23
      BranchProfiles:
        - Branch String:   'sieve.c:1299,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:1313,2'
          Dst:             i_unreached
    - functionName:    sieve_multiscript_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          192
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_execute_finish
        - sieve_execution_exitcode_to_str
        - sieve_multiscript_destroy
        - sieve_result_execute
        - sieve_result_set_keep_action
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve.c:971,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:986,2'
          Dst:             event_want_level
        - Src:             'sieve.c:986,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve.c:986,2'
          Dst:             e_debug
        - Src:             'sieve.c:986,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:990,2'
          Dst:             sieve_result_set_keep_action
        - Src:             'sieve.c:996,12'
          Dst:             sieve_result_execute
        - Src:             'sieve.c:1001,2'
          Dst:             event_want_level
        - Src:             'sieve.c:1001,2'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'sieve.c:1001,2'
          Dst:             e_debug
        - Src:             'sieve.c:1001,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:1005,2'
          Dst:             sieve_execute_finish
        - Src:             'sieve.c:1008,2'
          Dst:             sieve_multiscript_destroy
    - functionName:    sieve_multiscript_status
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 958
      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:    sieve_multiscript_run_discard
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          181
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_source
        - sieve_multiscript_execute
        - sieve_multiscript_test
        - sieve_multiscript_will_discard
        - sieve_result_set_keep_action
        - sieve_run
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:922,7'
          Dst:             sieve_multiscript_will_discard
        - Src:             'sieve.c:923,3'
          Dst:             event_want_level
        - Src:             'sieve.c:923,3'
          Dst:             e_debug
        - Src:             'sieve.c:923,3'
          Dst:             event_send_abort
        - Src:             'sieve.c:926,2'
          Dst:             i_panic
        - Src:             'sieve.c:928,2'
          Dst:             event_want_level
        - Src:             'sieve.c:928,2'
          Dst:             sieve_binary_source
        - Src:             'sieve.c:928,2'
          Dst:             e_debug
        - Src:             'sieve.c:928,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:931,2'
          Dst:             sieve_result_set_keep_action
        - Src:             'sieve.c:936,20'
          Dst:             sieve_run
        - Src:             'sieve.c:943,4'
          Dst:             sieve_multiscript_test
        - Src:             'sieve.c:945,4'
          Dst:             sieve_multiscript_execute
    - functionName:    sieve_multiscript_will_discard
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_result_executed_delivery
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:913,4'
          Dst:             sieve_result_executed_delivery
    - functionName:    sieve_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_interpreter_create
        - sieve_interpreter_free
        - sieve_interpreter_run
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:411,11'
          Dst:             sieve_interpreter_create
        - Src:             'sieve.c:416,8'
          Dst:             sieve_interpreter_run
        - Src:             'sieve.c:419,2'
          Dst:             sieve_interpreter_free
    - functionName:    sieve_multiscript_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_result_mark_executed
        - sieve_result_print
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:837,2'
          Dst:             event_want_level
        - Src:             'sieve.c:837,2'
          Dst:             e_debug
        - Src:             'sieve.c:837,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:841,5'
          Dst:             sieve_result_print
        - Src:             'sieve.c:849,2'
          Dst:             sieve_result_mark_executed
    - functionName:    sieve_multiscript_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_result_execute
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:857,2'
          Dst:             event_want_level
        - Src:             'sieve.c:857,2'
          Dst:             e_debug
        - Src:             'sieve.c:857,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:862,21'
          Dst:             sieve_result_execute
    - functionName:    sieve_multiscript_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          228
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_binary_source
        - sieve_multiscript_execute
        - sieve_multiscript_test
        - sieve_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:876,3'
          Dst:             event_want_level
        - Src:             'sieve.c:876,3'
          Dst:             e_debug
        - Src:             'sieve.c:876,3'
          Dst:             event_send_abort
        - Src:             'sieve.c:880,2'
          Dst:             event_want_level
        - Src:             'sieve.c:880,2'
          Dst:             sieve_binary_source
        - Src:             'sieve.c:880,2'
          Dst:             e_debug
        - Src:             'sieve.c:880,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:884,20'
          Dst:             sieve_run
        - Src:             'sieve.c:891,4'
          Dst:             sieve_multiscript_test
        - Src:             'sieve.c:893,4'
          Dst:             sieve_multiscript_execute
        - Src:             'sieve.c:901,3'
          Dst:             event_want_level
        - Src:             'sieve.c:901,3'
          Dst:             e_debug
        - Src:             'sieve.c:901,3'
          Dst:             event_send_abort
        - Src:             'sieve.c:906,2'
          Dst:             event_want_level
        - Src:             'sieve.c:906,2'
          Dst:             e_debug
        - Src:             'sieve.c:906,2'
          Dst:             event_send_abort
    - functionName:    sieve_multiscript_start_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_multiscript_start_execute
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:825,3'
          Dst:             sieve_multiscript_start_execute
    - functionName:    sieve_multiscript_start_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          106
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - event_create
        - event_send_abort
        - event_set_append_log_prefix
        - event_want_level
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_execute_init
        - sieve_result_create
        - sieve_result_execution_create
        - sieve_result_set_keep_action
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:777,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve.c:778,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve.c:778,12'
          Dst:             p_malloc
        - Src:             'sieve.c:780,2'
          Dst:             sieve_execute_init
        - Src:             'sieve.c:782,19'
          Dst:             event_create
        - Src:             'sieve.c:783,2'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve.c:785,11'
          Dst:             sieve_result_create
        - Src:             'sieve.c:786,2'
          Dst:             sieve_result_set_keep_action
        - Src:             'sieve.c:789,19'
          Dst:             sieve_result_execution_create
        - Src:             'sieve.c:795,2'
          Dst:             event_want_level
        - Src:             'sieve.c:795,2'
          Dst:             e_debug
        - Src:             'sieve.c:795,2'
          Dst:             event_send_abort
    - functionName:    sieve_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          66
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_create
        - pool_unref
        - sieve_binary_svinst
        - sieve_execute_deinit
        - sieve_execute_finish
        - sieve_execute_init
        - sieve_result_create
        - sieve_result_execute
        - sieve_result_execution_create
        - sieve_result_execution_destroy
        - sieve_result_unref
        - sieve_run
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:712,34'
          Dst:             sieve_binary_svinst
        - Src:             'sieve.c:719,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve.c:720,2'
          Dst:             sieve_execute_init
        - Src:             'sieve.c:723,11'
          Dst:             sieve_result_create
        - Src:             'sieve.c:726,8'
          Dst:             sieve_run
        - Src:             'sieve.c:728,10'
          Dst:             sieve_result_execution_create
        - Src:             'sieve.c:735,8'
          Dst:             sieve_result_execute
        - Src:             'sieve.c:737,2'
          Dst:             sieve_result_execution_destroy
        - Src:             'sieve.c:740,2'
          Dst:             sieve_result_unref
        - Src:             'sieve.c:741,2'
          Dst:             sieve_execute_finish
        - Src:             'sieve.c:742,2'
          Dst:             sieve_execute_deinit
        - Src:             'sieve.c:743,2'
          Dst:             pool_unref
    - functionName:    mail_user_get_postmaster_address
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.h'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_user_set_get_postmaster_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-storage/mail-user.h:224,9'
          Dst:             mail_user_set_get_postmaster_address
    - functionName:    sieve_script_env_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_user_get_postmaster_address
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:693,7'
          Dst:             mail_user_get_postmaster_address
        - Src:             'sieve.c:694,14'
          Dst:             t_strdup_printf
    - functionName:    sieve_test
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_alloconly_create
        - pool_unref
        - sieve_binary_svinst
        - sieve_execute_deinit
        - sieve_execute_init
        - sieve_result_create
        - sieve_result_print
        - sieve_result_unref
        - sieve_run
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:654,34'
          Dst:             sieve_binary_svinst
        - Src:             'sieve.c:660,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve.c:661,2'
          Dst:             sieve_execute_init
        - Src:             'sieve.c:664,11'
          Dst:             sieve_result_create
        - Src:             'sieve.c:667,8'
          Dst:             sieve_run
        - Src:             'sieve.c:671,10'
          Dst:             sieve_result_print
        - Src:             'sieve.c:676,2'
          Dst:             sieve_result_unref
        - Src:             'sieve.c:677,2'
          Dst:             sieve_execute_deinit
        - Src:             'sieve.c:678,2'
          Dst:             pool_unref
    - functionName:    sieve_hexdump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_dumper_create
        - sieve_binary_dumper_free
        - sieve_binary_dumper_hexdump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:641,38'
          Dst:             sieve_binary_dumper_create
        - Src:             'sieve.c:643,2'
          Dst:             sieve_binary_dumper_hexdump
        - Src:             'sieve.c:645,2'
          Dst:             sieve_binary_dumper_free
    - functionName:    sieve_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_dumper_create
        - sieve_binary_dumper_free
        - sieve_binary_dumper_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:632,38'
          Dst:             sieve_binary_dumper_create
        - Src:             'sieve.c:634,2'
          Dst:             sieve_binary_dumper_run
        - Src:             'sieve.c:636,2'
          Dst:             sieve_binary_dumper_free
    - functionName:    sieve_close
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:623,2'
          Dst:             sieve_binary_close
    - functionName:    sieve_check_executable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_check_executable
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:617,9'
          Dst:             sieve_binary_check_executable
    - functionName:    sieve_record_resource_usage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_record_resource_usage
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:610,9'
          Dst:             sieve_binary_record_resource_usage
    - functionName:    sieve_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_save
        - sieve_binary_script
        - sieve_script_binary_save
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:597,32'
          Dst:             sieve_binary_script
        - Src:             'sieve.c:600,10'
          Dst:             sieve_binary_save
        - Src:             'sieve.c:604,9'
          Dst:             sieve_script_binary_save
    - functionName:    sieve_save_as
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_save
        - sieve_save
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:588,10'
          Dst:             sieve_save
        - Src:             'sieve.c:590,9'
          Dst:             sieve_binary_save
    - functionName:    sieve_is_loaded
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_loaded
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:581,9'
          Dst:             sieve_binary_loaded
    - functionName:    sieve_get_source
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_source
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:576,9'
          Dst:             sieve_binary_source
    - functionName:    sieve_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error
        - sieve_error_args_init
        - sieve_internal_error
        - sieve_open_script
        - sieve_script_create_open_in
        - sieve_script_unref
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve.c:551,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:544,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:547,6'
          Dst:             sieve_script_create_open_in
        - Src:             'sieve.c:554,5'
          Dst:             sieve_error
        - Src:             'sieve.c:559,4'
          Dst:             sieve_internal_error
        - Src:             'sieve.c:568,8'
          Dst:             sieve_open_script
        - Src:             'sieve.c:570,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_error_args_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          58
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_open_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_open_script_real
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:523,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:525,2'
          Dst:             t_push
        - Src:             'sieve.c:526,9'
          Dst:             sieve_open_script_real
        - Src:             'sieve.c:528,4'
          Dst:             t_pop
        - Src:             'sieve.c:528,4'
          Dst:             i_panic
    - functionName:    sieve_open_script_real
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          282
      EdgeCount:       67
      CyclomaticComplexity: 15
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_check_executable
        - sieve_binary_close
        - sieve_binary_get_resource_usage
        - sieve_binary_path
        - sieve_binary_set_resource_usage
        - sieve_binary_source
        - sieve_binary_up_to_date
        - sieve_compile_script
        - sieve_error
        - sieve_internal_error
        - sieve_resource_usage_init
        - sieve_resource_usage_is_excessive
        - sieve_script_binary_load
        - sieve_script_label
        - sieve_script_name
        - sieve_script_svinst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:441,34'
          Dst:             sieve_script_svinst
        - Src:             'sieve.c:447,2'
          Dst:             sieve_resource_usage_init
        - Src:             'sieve.c:450,6'
          Dst:             sieve_script_binary_load
        - Src:             'sieve.c:451,3'
          Dst:             sieve_binary_get_resource_usage
        - Src:             'sieve.c:454,8'
          Dst:             sieve_resource_usage_is_excessive
        - Src:             'sieve.c:455,8'
          Dst:             sieve_binary_up_to_date
        - Src:             'sieve.c:457,4'
          Dst:             event_want_level
        - Src:             'sieve.c:457,4'
          Dst:             sieve_binary_path
        - Src:             'sieve.c:457,4'
          Dst:             e_debug
        - Src:             'sieve.c:457,4'
          Dst:             event_send_abort
        - Src:             'sieve.c:460,4'
          Dst:             sieve_binary_close
        - Src:             'sieve.c:468,3'
          Dst:             event_want_level
        - Src:             'sieve.c:468,3'
          Dst:             sieve_binary_path
        - Src:             'sieve.c:468,3'
          Dst:             e_debug
        - Src:             'sieve.c:468,3'
          Dst:             event_send_abort
        - Src:             'sieve.c:472,7'
          Dst:             sieve_compile_script
        - Src:             'sieve.c:476,3'
          Dst:             event_want_level
        - Src:             'sieve.c:476,3'
          Dst:             sieve_script_label
        - Src:             'sieve.c:476,3'
          Dst:             e_debug
        - Src:             'sieve.c:476,3'
          Dst:             event_send_abort
        - Src:             'sieve.c:480,3'
          Dst:             sieve_binary_set_resource_usage
        - Src:             'sieve.c:484,8'
          Dst:             sieve_binary_check_executable
        - Src:             'sieve.c:486,22'
          Dst:             sieve_binary_path
        - Src:             'sieve.c:488,3'
          Dst:             i_panic
        - Src:             'sieve.c:490,4'
          Dst:             event_want_level
        - Src:             'sieve.c:490,4'
          Dst:             e_debug
        - Src:             'sieve.c:490,4'
          Dst:             event_send_abort
        - Src:             'sieve.c:494,4'
          Dst:             event_want_level
        - Src:             'sieve.c:494,4'
          Dst:             sieve_binary_source
        - Src:             'sieve.c:494,4'
          Dst:             e_debug
        - Src:             'sieve.c:494,4'
          Dst:             event_send_abort
        - Src:             'sieve.c:499,4'
          Dst:             sieve_script_name
        - Src:             'sieve.c:499,4'
          Dst:             sieve_internal_error
        - Src:             'sieve.c:503,4'
          Dst:             sieve_script_name
        - Src:             'sieve.c:503,4'
          Dst:             sieve_error
        - Src:             'sieve.c:506,3'
          Dst:             sieve_binary_close
    - functionName:    sieve_compile_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_ast_unref
        - sieve_error
        - sieve_error_args_init
        - sieve_generate
        - sieve_parse
        - sieve_script_name
        - sieve_validate
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve.c:319,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:314,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:317,8'
          Dst:             sieve_parse
        - Src:             'sieve.c:322,5'
          Dst:             sieve_script_name
        - Src:             'sieve.c:322,5'
          Dst:             sieve_error
        - Src:             'sieve.c:327,4'
          Dst:             sieve_script_name
        - Src:             'sieve.c:327,4'
          Dst:             sieve_error
        - Src:             'sieve.c:334,7'
          Dst:             sieve_validate
        - Src:             'sieve.c:335,3'
          Dst:             sieve_script_name
        - Src:             'sieve.c:335,3'
          Dst:             sieve_error
        - Src:             'sieve.c:338,4'
          Dst:             sieve_ast_unref
        - Src:             'sieve.c:343,9'
          Dst:             sieve_generate
        - Src:             'sieve.c:345,3'
          Dst:             sieve_script_name
        - Src:             'sieve.c:345,3'
          Dst:             sieve_error
        - Src:             'sieve.c:347,3'
          Dst:             sieve_ast_unref
        - Src:             'sieve.c:352,2'
          Dst:             sieve_ast_unref
    - functionName:    sieve_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_ast_ref
        - sieve_error_args_init
        - sieve_parser_create
        - sieve_parser_free
        - sieve_parser_run
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:241,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:244,11'
          Dst:             sieve_parser_create
        - Src:             'sieve.c:248,8'
          Dst:             sieve_parser_run
        - Src:             'sieve.c:251,3'
          Dst:             sieve_ast_ref
        - Src:             'sieve.c:253,2'
          Dst:             sieve_parser_free
    - functionName:    sieve_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_error_args_init
        - sieve_validator_create
        - sieve_validator_free
        - sieve_validator_run
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:267,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:269,14'
          Dst:             sieve_validator_create
        - Src:             'sieve.c:270,7'
          Dst:             sieve_validator_run
        - Src:             'sieve.c:273,2'
          Dst:             sieve_validator_free
    - functionName:    sieve_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_args_init
        - sieve_generator_create
        - sieve_generator_free
        - sieve_generator_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:287,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:289,14'
          Dst:             sieve_generator_create
        - Src:             'sieve.c:290,9'
          Dst:             sieve_generator_run
        - Src:             'sieve.c:292,2'
          Dst:             sieve_generator_free
    - functionName:    sieve_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:431,9'
          Dst:             sieve_binary_open
    - functionName:    sieve_compile
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_compile_script
        - sieve_error
        - sieve_error_args_init
        - sieve_internal_error
        - sieve_script_create_open_in
        - sieve_script_label
        - sieve_script_unref
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sieve.c:372,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:367,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve.c:369,6'
          Dst:             sieve_script_create_open_in
        - Src:             'sieve.c:375,5'
          Dst:             sieve_error
        - Src:             'sieve.c:380,4'
          Dst:             sieve_internal_error
        - Src:             'sieve.c:386,6'
          Dst:             sieve_compile_script
        - Src:             'sieve.c:388,3'
          Dst:             sieve_script_unref
        - Src:             'sieve.c:392,2'
          Dst:             event_want_level
        - Src:             'sieve.c:392,2'
          Dst:             sieve_script_label
        - Src:             'sieve.c:392,2'
          Dst:             e_debug
        - Src:             'sieve.c:392,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:395,2'
          Dst:             sieve_script_unref
    - functionName:    sieve_get_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 227
      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:    sieve_get_capabilities
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_extension_capabilities_get_string
        - sieve_extensions_get_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:220,10'
          Dst:             sieve_extensions_get_string
        - Src:             'sieve.c:222,9'
          Dst:             sieve_extension_capabilities_get_string
    - functionName:    sieve_set_extensions
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extensions_set_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:213,8'
          Dst:             sieve_extensions_set_string
    - functionName:    sieve_settings_reload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - pool_unref
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:200,6'
          Dst:             settings_get
        - Src:             'sieve.c:202,3'
          Dst:             e_error
        - Src:             'sieve.c:206,2'
          Dst:             pool_unref
    - functionName:    sieve_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - pool_unref
        - sieve_errors_deinit
        - sieve_extensions_deinit
        - sieve_plugins_unload
        - sieve_storages_deinit
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve.c:184,2'
          Dst:             sieve_plugins_unload
        - Src:             'sieve.c:185,2'
          Dst:             sieve_storages_deinit
        - Src:             'sieve.c:186,2'
          Dst:             sieve_extensions_deinit
        - Src:             'sieve.c:187,2'
          Dst:             sieve_errors_deinit
        - Src:             'sieve.c:189,2'
          Dst:             pool_unref
        - Src:             'sieve.c:190,2'
          Dst:             event_unref
        - Src:             'sieve.c:192,2'
          Dst:             pool_unref
    - functionName:    sieve_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          420
      EdgeCount:       69
      CyclomaticComplexity: 17
      functionsReached:
        - e_debug
        - e_error
        - event_add_category
        - event_add_str
        - event_create
        - event_send_abort
        - event_set_append_log_prefix
        - event_set_forced_debug
        - event_set_ptr
        - event_unref
        - event_want_level
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - p_strdup_empty
        - pool_alloconly_create
        - settings_get
        - settings_info_register
        - sieve_deinit
        - sieve_errors_init
        - sieve_extensions_init
        - sieve_extensions_load
        - sieve_plugins_load
        - sieve_storages_init
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve.c:69,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve.c:66,2'
          Dst:             settings_info_register
        - Src:             'sieve.c:83,10'
          Dst:             event_create
        - Src:             'sieve.c:84,2'
          Dst:             event_add_category
        - Src:             'sieve.c:85,2'
          Dst:             event_set_forced_debug
        - Src:             'sieve.c:86,2'
          Dst:             event_set_append_log_prefix
        - Src:             'sieve.c:87,2'
          Dst:             event_add_str
        - Src:             'sieve.c:89,3'
          Dst:             event_set_ptr
        - Src:             'sieve.c:97,6'
          Dst:             settings_get
        - Src:             'sieve.c:99,3'
          Dst:             e_error
        - Src:             'sieve.c:100,3'
          Dst:             event_unref
        - Src:             'sieve.c:105,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve.c:106,11'
          Dst:             malloc_multiply_check
        - Src:             'sieve.c:106,11'
          Dst:             p_malloc
        - Src:             'sieve.c:111,21'
          Dst:             p_strdup_empty
        - Src:             'sieve.c:112,21'
          Dst:             p_strdup_empty
        - Src:             'sieve.c:113,21'
          Dst:             p_strdup_empty
        - Src:             'sieve.c:114,21'
          Dst:             p_strdup_empty
        - Src:             'sieve.c:127,4'
          Dst:             strchr
        - Src:             'sieve.c:131,7'
          Dst:             strchr
        - Src:             'sieve.c:133,8'
          Dst:             strchr
        - Src:             'sieve.c:143,21'
          Dst:             p_strdup_empty
        - Src:             'sieve.c:144,23'
          Dst:             p_strdup
        - Src:             'sieve.c:146,2'
          Dst:             sieve_errors_init
        - Src:             'sieve.c:148,2'
          Dst:             event_want_level
        - Src:             'sieve.c:148,2'
          Dst:             e_debug
        - Src:             'sieve.c:148,2'
          Dst:             event_send_abort
        - Src:             'sieve.c:152,6'
          Dst:             sieve_extensions_init
        - Src:             'sieve.c:153,3'
          Dst:             sieve_deinit
        - Src:             'sieve.c:158,2'
          Dst:             sieve_storages_init
        - Src:             'sieve.c:161,6'
          Dst:             sieve_plugins_load
        - Src:             'sieve.c:162,3'
          Dst:             sieve_deinit
        - Src:             'sieve.c:167,6'
          Dst:             sieve_extensions_load
        - Src:             'sieve.c:168,3'
          Dst:             sieve_deinit
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_data_script_get_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_ref
        - i_stream_seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-data-script.c:74,2'
          Dst:             i_stream_ref
        - Src:             'sieve-data-script.c:75,2'
          Dst:             i_stream_seek
    - functionName:    sieve_data_script_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-data-script.c:64,2'
          Dst:             i_stream_unref
    - functionName:    sieve_data_script_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-data-script.c:24,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-data-script.c:25,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-data-script.c:25,12'
          Dst:             p_malloc
    - functionName:    sieve_data_script_create_from_input
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_ref
        - sieve_data_script_alloc
        - sieve_script_init
        - sieve_storage_alloc
        - sieve_storage_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-data-script.c:41,8'
          Dst:             sieve_storage_alloc
        - Src:             'sieve-data-script.c:44,2'
          Dst:             i_panic
        - Src:             'sieve-data-script.c:46,12'
          Dst:             sieve_data_script_alloc
        - Src:             'sieve-data-script.c:47,2'
          Dst:             sieve_script_init
        - Src:             'sieve-data-script.c:50,2'
          Dst:             i_stream_ref
        - Src:             'sieve-data-script.c:52,2'
          Dst:             sieve_storage_unref
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_data_storage_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_data_storage_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/data/sieve-data-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-data-storage.c:19,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-data-storage.c:20,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-data-storage.c:20,13'
          Dst:             p_malloc
    - functionName:    _sieve_file_storage_script_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          167
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - lstat
        - sieve_file_storage_active_replace_link
        - sieve_file_storage_active_rescue_regular
        - sieve_file_storage_active_script_get_file
        - sieve_script_set_critical
        - strcmp
        - symlink
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:681,8'
          Dst:             sieve_file_storage_active_script_get_file
        - Src:             'sieve-file-script.c:684,18'
          Dst:             strcmp
        - Src:             'sieve-file-script.c:687,2'
          Dst:             i_panic
        - Src:             'sieve-file-script.c:690,6'
          Dst:             lstat
        - Src:             'sieve-file-script.c:691,3'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:701,7'
          Dst:             sieve_file_storage_active_rescue_regular
        - Src:             'sieve-file-script.c:707,14'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:709,9'
          Dst:             symlink
        - Src:             'sieve-file-script.c:711,7'
          Dst:             __errno_location
        - Src:             'sieve-file-script.c:712,10'
          Dst:             sieve_file_storage_active_replace_link
        - Src:             'sieve-file-script.c:718,4'
          Dst:             sieve_script_set_critical
    - 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:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    symlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_handle_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - e_debug
        - eacces_error_get
        - event_send_abort
        - event_want_level
        - sieve_script_set_critical
        - sieve_script_set_not_found_error
        - t_abspath
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-file-script.c:62,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-script.c:62,10'
          Dst:             __errno_location
        - Src:             'sieve-file-script.c:64,7'
          Dst:             t_abspath
        - Src:             'sieve-file-script.c:65,4'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:70,3'
          Dst:             event_want_level
        - Src:             'sieve-file-script.c:70,3'
          Dst:             e_debug
        - Src:             'sieve-file-script.c:70,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-script.c:71,3'
          Dst:             sieve_script_set_not_found_error
        - Src:             'sieve-file-script.c:76,12'
          Dst:             eacces_error_get
        - Src:             'sieve-file-script.c:74,3'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:80,3'
          Dst:             sieve_script_set_critical
    - functionName:    path_split_filename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:292,13'
          Dst:             strrchr
        - Src:             'sieve-file-script.c:297,17'
          Dst:             t_strdup_until
    - functionName:    sieve_file_script_stat
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lstat
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:277,6'
          Dst:             lstat
        - Src:             'sieve-file-script.c:282,30'
          Dst:             stat
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_file_script_cmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 902
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          175
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
        - null_strcmp
        - sieve_storage_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:882,9'
          Dst:             sieve_storage_cmp
        - Src:             'sieve-file-script.c:886,10'
          Dst:             null_strcmp
        - Src:             'sieve-file-script.c:889,6'
          Dst:             gnu_dev_major
        - Src:             'sieve-file-script.c:889,36'
          Dst:             gnu_dev_major
        - Src:             'sieve-file-script.c:890,11'
          Dst:             gnu_dev_major
        - Src:             'sieve-file-script.c:891,4'
          Dst:             gnu_dev_major
        - Src:             'sieve-file-script.c:893,6'
          Dst:             gnu_dev_minor
        - Src:             'sieve-file-script.c:893,36'
          Dst:             gnu_dev_minor
        - Src:             'sieve-file-script.c:894,11'
          Dst:             gnu_dev_minor
        - Src:             'sieve-file-script.c:895,4'
          Dst:             gnu_dev_minor
    - 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:    51
      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:    51
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_get_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_storage_script_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_file_storage_script_activate
        - i_panic
        - sieve_file_storage_pre_modify
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:734,6'
          Dst:             sieve_file_storage_pre_modify
        - Src:             'sieve-file-script.c:737,2'
          Dst:             t_push
        - Src:             'sieve-file-script.c:738,9'
          Dst:             _sieve_file_storage_script_activate
        - Src:             'sieve-file-script.c:739,4'
          Dst:             t_pop
        - Src:             'sieve-file-script.c:739,4'
          Dst:             i_panic
    - functionName:    sieve_file_storage_script_is_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_file_storage_active_script_get_file
        - strcmp
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:627,2'
          Dst:             t_push
        - Src:             'sieve-file-script.c:628,9'
          Dst:             sieve_file_storage_active_script_get_file
        - Src:             'sieve-file-script.c:633,11'
          Dst:             strcmp
        - Src:             'sieve-file-script.c:635,4'
          Dst:             t_pop
        - Src:             'sieve-file-script.c:635,4'
          Dst:             i_panic
    - functionName:    sieve_file_storage_script_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - sieve_file_storage_pre_modify
        - sieve_script_set_critical
        - sieve_script_set_error
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:646,6'
          Dst:             sieve_file_storage_pre_modify
        - Src:             'sieve-file-script.c:649,8'
          Dst:             unlink
        - Src:             'sieve-file-script.c:651,7'
          Dst:             __errno_location
        - Src:             'sieve-file-script.c:652,4'
          Dst:             sieve_script_set_error
        - Src:             'sieve-file-script.c:655,4'
          Dst:             sieve_script_set_critical
    - functionName:    sieve_file_storage_script_rename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          257
      EdgeCount:       47
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_error
        - i_panic
        - link
        - p_strdup
        - sieve_file_storage_active_replace_link
        - sieve_file_storage_pre_modify
        - sieve_script_file_from_name
        - sieve_script_is_active
        - sieve_script_set_critical
        - sieve_script_set_error
        - t_pop
        - t_push
        - t_strconcat
        - unlink
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-file-script.c:808,4'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-script.c:756,6'
          Dst:             sieve_file_storage_pre_modify
        - Src:             'sieve-file-script.c:759,2'
          Dst:             t_push
        - Src:             'sieve-file-script.c:760,13'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-script.c:761,13'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:770,9'
          Dst:             link
        - Src:             'sieve-file-script.c:773,8'
          Dst:             sieve_script_is_active
        - Src:             'sieve-file-script.c:776,5'
          Dst:             i_panic
        - Src:             'sieve-file-script.c:777,17'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:780,11'
          Dst:             sieve_file_storage_active_replace_link
        - Src:             'sieve-file-script.c:786,9'
          Dst:             unlink
        - Src:             'sieve-file-script.c:787,6'
          Dst:             e_error
        - Src:             'sieve-file-script.c:794,21'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:795,21'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:796,25'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:800,9'
          Dst:             unlink
        - Src:             'sieve-file-script.c:801,6'
          Dst:             e_error
        - Src:             'sieve-file-script.c:808,12'
          Dst:             __errno_location
        - Src:             'sieve-file-script.c:810,5'
          Dst:             sieve_script_set_error
        - Src:             'sieve-file-script.c:815,5'
          Dst:             sieve_script_set_error
        - Src:             'sieve-file-script.c:820,5'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:826,4'
          Dst:             t_pop
        - Src:             'sieve-file-script.c:826,4'
          Dst:             i_panic
    - functionName:    sieve_script_file_from_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strconcat
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:47,9'
          Dst:             t_strconcat
    - functionName:    link
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_binary_get_prefix
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_binary_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_binary_save_default
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:599,9'
          Dst:             sieve_script_binary_save_default
    - functionName:    sieve_file_script_binary_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_binary_load_default
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:588,9'
          Dst:             sieve_script_binary_load_default
    - functionName:    sieve_file_script_binary_dump_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_dumpf
        - sieve_binary_read_string
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:574,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-file-script.c:576,47'
          Dst:             str_c
        - Src:             'sieve-file-script.c:576,2'
          Dst:             sieve_binary_dumpf
    - functionName:    sieve_file_script_binary_write_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_cstring
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:563,2'
          Dst:             sieve_binary_emit_cstring
    - functionName:    sieve_file_script_binary_read_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          307
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_block_get_binary
        - sieve_binary_path
        - sieve_binary_read_string
        - sieve_binary_stat
        - sieve_script_label
        - sieve_script_open
        - str_c
        - strcmp
        - t_strflocaltime
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:498,30'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-file-script.c:502,6'
          Dst:             sieve_script_open
        - Src:             'sieve-file-script.c:506,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-file-script.c:507,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-file-script.c:507,3'
          Dst:             sieve_script_label
        - Src:             'sieve-file-script.c:507,3'
          Dst:             e_error
        - Src:             'sieve-file-script.c:513,2'
          Dst:             i_panic
        - Src:             'sieve-file-script.c:514,13'
          Dst:             str_c
        - Src:             'sieve-file-script.c:514,6'
          Dst:             strcmp
        - Src:             'sieve-file-script.c:515,3'
          Dst:             event_want_level
        - Src:             'sieve-file-script.c:515,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-file-script.c:515,3'
          Dst:             sieve_script_label
        - Src:             'sieve-file-script.c:515,3'
          Dst:             str_c
        - Src:             'sieve-file-script.c:515,3'
          Dst:             e_debug
        - Src:             'sieve-file-script.c:515,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-script.c:525,10'
          Dst:             sieve_binary_stat
        - Src:             'sieve-file-script.c:538,4'
          Dst:             event_want_level
        - Src:             'sieve-file-script.c:538,4'
          Dst:             sieve_binary_path
        - Src:             'sieve-file-script.c:538,4'
          Dst:             sieve_script_label
        - Src:             'sieve-file-script.c:538,4'
          Dst:             t_strflocaltime
        - Src:             'sieve-file-script.c:538,4'
          Dst:             t_strflocaltime
        - Src:             'sieve-file-script.c:538,4'
          Dst:             e_debug
        - Src:             'sieve-file-script.c:538,4'
          Dst:             event_send_abort
    - functionName:    sieve_file_script_get_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          133
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - close
        - e_error
        - fstat
        - i_stream_create_fd_autoclose
        - open
        - sieve_file_script_handle_error
        - sieve_script_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:447,7'
          Dst:             open
        - Src:             'sieve-file-script.c:449,3'
          Dst:             sieve_file_script_handle_error
        - Src:             'sieve-file-script.c:454,6'
          Dst:             fstat
        - Src:             'sieve-file-script.c:455,3'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:462,3'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:467,12'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'sieve-file-script.c:474,18'
          Dst:             close
        - Src:             'sieve-file-script.c:475,4'
          Dst:             e_error
    - functionName:    sieve_file_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         83
      ICount:          512
      EdgeCount:       108
      CyclomaticComplexity: 27
      functionsReached:
        - event_add_str
        - i_panic
        - p_strdup
        - path_split_filename
        - sieve_binfile_from_name
        - sieve_file_script_handle_error
        - sieve_file_script_stat
        - sieve_file_storage_path_extend
        - sieve_script_file_from_name
        - sieve_script_file_get_scriptname
        - sieve_script_set_critical
        - strlen
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:327,2'
          Dst:             t_push
        - Src:             'sieve-file-script.c:335,16'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-script.c:339,5'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:346,22'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-script.c:354,12'
          Dst:             sieve_file_storage_path_extend
        - Src:             'sieve-file-script.c:355,11'
          Dst:             sieve_file_script_stat
        - Src:             'sieve-file-script.c:363,15'
          Dst:             path_split_filename
        - Src:             'sieve-file-script.c:365,15'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-script.c:378,6'
          Dst:             i_panic
        - Src:             'sieve-file-script.c:381,5'
          Dst:             sieve_file_script_handle_error
        - Src:             'sieve-file-script.c:386,5'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-file-script.c:398,13'
          Dst:             sieve_binfile_from_name
        - Src:             'sieve-file-script.c:403,13'
          Dst:             sieve_binfile_from_name
        - Src:             'sieve-file-script.c:410,21'
          Dst:             strlen
        - Src:             'sieve-file-script.c:411,16'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:412,18'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:414,16'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:415,18'
          Dst:             t_strconcat
        - Src:             'sieve-file-script.c:420,20'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:421,24'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:422,24'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:423,24'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:424,26'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:427,28'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:429,4'
          Dst:             event_add_str
        - Src:             'sieve-file-script.c:432,4'
          Dst:             t_pop
        - Src:             'sieve-file-script.c:432,4'
          Dst:             i_panic
    - functionName:    sieve_script_file_get_scriptname
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:32,8'
          Dst:             strrchr
        - Src:             'sieve-file-script.c:34,6'
          Dst:             strcmp
        - Src:             'sieve-file-script.c:37,9'
          Dst:             t_strdup_until
    - functionName:    sieve_file_script_get_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_get_dir_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_script_open_from_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_file_script_init_from_path
        - sieve_script_open
        - sieve_script_unref
        - sieve_storage_copy_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:254,6'
          Dst:             sieve_file_script_init_from_path
        - Src:             'sieve-file-script.c:258,6'
          Dst:             sieve_script_open
        - Src:             'sieve-file-script.c:261,3'
          Dst:             sieve_storage_copy_error
        - Src:             'sieve-file-script.c:262,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_file_script_init_from_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          88
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_str
        - sieve_file_script_alloc
        - sieve_file_storage_init_from_path
        - sieve_script_init
        - sieve_storage_set_error
        - sieve_storage_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:224,6'
          Dst:             sieve_file_storage_init_from_path
        - Src:             'sieve-file-script.c:228,3'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script.c:233,12'
          Dst:             sieve_file_script_alloc
        - Src:             'sieve-file-script.c:234,2'
          Dst:             sieve_script_init
        - Src:             'sieve-file-script.c:236,2'
          Dst:             sieve_storage_unref
        - Src:             'sieve-file-script.c:238,2'
          Dst:             event_add_str
    - functionName:    sieve_file_script_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:96,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-file-script.c:97,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-file-script.c:97,12'
          Dst:             p_malloc
    - functionName:    sieve_file_script_open_from_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_file_script_init_from_name
        - sieve_script_open
        - sieve_script_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:196,6'
          Dst:             sieve_file_script_init_from_name
        - Src:             'sieve-file-script.c:199,6'
          Dst:             sieve_script_open
        - Src:             'sieve-file-script.c:202,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_file_script_init_from_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_str
        - sieve_file_script_alloc
        - sieve_file_script_init_from_filename
        - sieve_script_file_from_name
        - sieve_script_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:174,14'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-script.c:173,10'
          Dst:             sieve_file_script_init_from_filename
        - Src:             'sieve-file-script.c:178,12'
          Dst:             sieve_file_script_alloc
        - Src:             'sieve-file-script.c:179,2'
          Dst:             sieve_script_init
        - Src:             'sieve-file-script.c:181,2'
          Dst:             event_add_str
    - functionName:    sieve_file_script_init_from_filename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - event_add_str
        - p_strdup
        - sieve_file_script_alloc
        - sieve_file_storage_path_extend
        - sieve_script_init
        - sieve_storage_set_error
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:119,7'
          Dst:             strcmp
        - Src:             'sieve-file-script.c:120,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script.c:127,12'
          Dst:             sieve_file_script_alloc
        - Src:             'sieve-file-script.c:128,2'
          Dst:             sieve_script_init
        - Src:             'sieve-file-script.c:130,22'
          Dst:             p_strdup
        - Src:             'sieve-file-script.c:133,9'
          Dst:             sieve_file_storage_path_extend
        - Src:             'sieve-file-script.c:132,2'
          Dst:             event_add_str
    - functionName:    sieve_file_script_open_from_filename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_file_script_init_from_filename
        - sieve_script_open
        - sieve_script_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:148,6'
          Dst:             sieve_file_script_init_from_filename
        - Src:             'sieve-file-script.c:152,6'
          Dst:             sieve_script_open
        - Src:             'sieve-file-script.c:155,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_script_file_has_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_file_get_scriptname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script.c:42,10'
          Dst:             sieve_script_file_get_scriptname
    - functionName:    sieve_file_storage_deactivate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - sieve_file_storage_active_rescue_regular
        - sieve_file_storage_pre_modify
        - sieve_storage_set_critical
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:397,6'
          Dst:             sieve_file_storage_pre_modify
        - Src:             'sieve-file-storage-active.c:400,7'
          Dst:             sieve_file_storage_active_rescue_regular
        - Src:             'sieve-file-storage-active.c:404,8'
          Dst:             unlink
        - Src:             'sieve-file-storage-active.c:407,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:408,4'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_active_rescue_regular
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          166
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - e_debug
        - e_info
        - event_send_abort
        - event_want_level
        - file_copy
        - i_panic
        - lstat
        - sieve_script_file_from_name
        - sieve_storage_set_critical
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:341,6'
          Dst:             lstat
        - Src:             'sieve-file-storage-active.c:342,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:343,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-active.c:352,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage-active.c:352,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage-active.c:352,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage-active.c:362,4'
          Dst:             t_push
        - Src:             'sieve-file-storage-active.c:365,5'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-storage-active.c:363,14'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage-active.c:367,8'
          Dst:             file_copy
        - Src:             'sieve-file-storage-active.c:368,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-active.c:375,5'
          Dst:             e_info
        - Src:             'sieve-file-storage-active.c:380,5'
          Dst:             t_pop
        - Src:             'sieve-file-storage-active.c:380,5'
          Dst:             i_panic
        - Src:             'sieve-file-storage-active.c:385,2'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_active_script_get_last_change
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - lstat
        - sieve_storage_get_last_change
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:318,6'
          Dst:             lstat
        - Src:             'sieve-file-storage-active.c:325,11'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:326,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-active.c:331,9'
          Dst:             sieve_storage_get_last_change
    - functionName:    sieve_file_storage_active_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - e_warning
        - sieve_file_script_open_from_name
        - sieve_file_script_open_from_path
        - sieve_file_storage_active_parse_link
        - sieve_file_storage_active_read_link
        - sieve_script_file_get_scriptname
        - sieve_storage_clear_error
        - sieve_storage_set_critical
        - sieve_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:253,2'
          Dst:             sieve_storage_clear_error
        - Src:             'sieve-file-storage-active.c:256,8'
          Dst:             sieve_file_storage_active_read_link
        - Src:             'sieve-file-storage-active.c:263,10'
          Dst:             sieve_file_script_open_from_path
        - Src:             'sieve-file-storage-active.c:267,10'
          Dst:             sieve_file_script_open_from_name
        - Src:             'sieve-file-storage-active.c:272,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-active.c:285,15'
          Dst:             sieve_file_storage_active_parse_link
        - Src:             'sieve-file-storage-active.c:291,3'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-active.c:298,3'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-storage-active.c:296,8'
          Dst:             sieve_file_script_open_from_path
        - Src:             'sieve-file-storage-active.c:300,3'
          Dst:             e_warning
    - functionName:    sieve_file_storage_active_read_link
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - e_warning
        - i_panic
        - sieve_storage_set_critical
        - t_readlink
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:32,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage-active.c:33,8'
          Dst:             t_readlink
        - Src:             'sieve-file-storage-active.c:37,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:44,5'
          Dst:             e_warning
        - Src:             'sieve-file-storage-active.c:51,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:57,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_active_parse_link
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          158
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - e_warning
        - sieve_script_file_get_scriptname
        - strcmp
        - strrchr
        - t_normpath_to
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:76,10'
          Dst:             strrchr
        - Src:             'sieve-file-storage-active.c:80,14'
          Dst:             t_strdup_until
        - Src:             'sieve-file-storage-active.c:83,10'
          Dst:             strrchr
        - Src:             'sieve-file-storage-active.c:85,16'
          Dst:             t_strdup_until
        - Src:             'sieve-file-storage-active.c:93,15'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-storage-active.c:97,3'
          Dst:             e_warning
        - Src:             'sieve-file-storage-active.c:106,6'
          Dst:             t_normpath_to
        - Src:             'sieve-file-storage-active.c:107,3'
          Dst:             e_warning
        - Src:             'sieve-file-storage-active.c:113,6'
          Dst:             strcmp
        - Src:             'sieve-file-storage-active.c:114,3'
          Dst:             e_warning
    - functionName:    sieve_file_storage_active_script_get_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_file_storage_active_parse_link
        - sieve_file_storage_active_read_link
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:224,8'
          Dst:             sieve_file_storage_active_read_link
        - Src:             'sieve-file-storage-active.c:228,6'
          Dst:             sieve_file_storage_active_parse_link
    - functionName:    sieve_file_storage_active_script_get_file
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_file_storage_active_parse_link
        - sieve_file_storage_active_read_link
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:194,8'
          Dst:             sieve_file_storage_active_read_link
        - Src:             'sieve-file-storage-active.c:199,15'
          Dst:             sieve_file_storage_active_parse_link
    - functionName:    sieve_file_storage_active_replace_link
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - dec2str
        - i_gettimeofday
        - i_unlink
        - rename
        - sieve_storage_set_critical
        - sleep
        - symlink
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-active.c:142,4'
          Dst:             dec2str
        - Src:             'sieve-file-storage-active.c:142,33'
          Dst:             dec2str
        - Src:             'sieve-file-storage-active.c:140,21'
          Dst:             t_strdup_printf
        - Src:             'sieve-file-storage-active.c:145,9'
          Dst:             symlink
        - Src:             'sieve-file-storage-active.c:148,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-active.c:150,5'
          Dst:             sleep
        - Src:             'sieve-file-storage-active.c:152,5'
          Dst:             i_gettimeofday
        - Src:             'sieve-file-storage-active.c:157,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-active.c:168,8'
          Dst:             rename
        - Src:             'sieve-file-storage-active.c:171,3'
          Dst:             i_unlink
        - Src:             'sieve-file-storage-active.c:172,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sleep
      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:    sieve_environment_get_homedir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/../../../../src/lib-sieve/sieve-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_storage_do_autodetect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         105
      ICount:          572
      EdgeCount:       138
      CyclomaticComplexity: 35
      functionsReached:
        - access
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - sieve_environment_get_homedir
        - sieve_error_create_internal
        - sieve_file_storage_get_full_path
        - sieve_file_storage_init_common
        - sieve_file_storage_stat
        - sieve_storage_alloc_with_settings
        - sieve_storage_unref
        - t_strconcat
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:556,21'
          Dst:             sieve_environment_get_homedir
        - Src:             'sieve-file-storage.c:567,4'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:567,4'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:567,4'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:568,19'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage.c:570,4'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:570,4'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:570,4'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:572,8'
          Dst:             access
        - Src:             'sieve-file-storage.c:574,5'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:574,5'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:574,5'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:582,3'
          Dst:             e_error
        - Src:             'sieve-file-storage.c:585,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-file-storage.c:595,8'
          Dst:             sieve_storage_alloc_with_settings
        - Src:             'sieve-file-storage.c:614,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:614,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:614,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:617,7'
          Dst:             sieve_file_storage_get_full_path
        - Src:             'sieve-file-storage.c:620,15'
          Dst:             t_strdup
        - Src:             'sieve-file-storage.c:621,4'
          Dst:             sieve_storage_unref
        - Src:             'sieve-file-storage.c:626,9'
          Dst:             sieve_file_storage_stat
        - Src:             'sieve-file-storage.c:631,16'
          Dst:             t_strdup
        - Src:             'sieve-file-storage.c:632,5'
          Dst:             sieve_storage_unref
        - Src:             'sieve-file-storage.c:645,3'
          Dst:             sieve_storage_unref
        - Src:             'sieve-file-storage.c:653,4'
          Dst:             e_error
        - Src:             'sieve-file-storage.c:656,4'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-file-storage.c:657,4'
          Dst:             sieve_storage_unref
        - Src:             'sieve-file-storage.c:671,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:671,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:671,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:677,6'
          Dst:             sieve_file_storage_init_common
        - Src:             'sieve-file-storage.c:680,14'
          Dst:             t_strdup
        - Src:             'sieve-file-storage.c:681,3'
          Dst:             sieve_storage_unref
    - functionName:    sieve_file_storage_get_full_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_storage_get_full_path
        - sieve_storage_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:228,6'
          Dst:             sieve_storage_get_full_path
        - Src:             'sieve-file-storage.c:229,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_stat
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          134
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_debug
        - eacces_error_get
        - event_send_abort
        - event_want_level
        - lstat
        - sieve_storage_set_critical
        - sieve_storage_set_internal_error
        - stat
        - t_abspath
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-file-storage.c:64,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage.c:55,6'
          Dst:             lstat
        - Src:             'sieve-file-storage.c:58,31'
          Dst:             stat
        - Src:             'sieve-file-storage.c:64,10'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:66,7'
          Dst:             t_abspath
        - Src:             'sieve-file-storage.c:67,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:72,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:72,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:72,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:73,3'
          Dst:             sieve_storage_set_internal_error
        - Src:             'sieve-file-storage.c:79,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage.c:77,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:83,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_init_common
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          669
      EdgeCount:       144
      CyclomaticComplexity: 35
      functionsReached:
        - __errno_location
        - check_tmp
        - e_debug
        - event_send_abort
        - event_want_level
        - getegid
        - i_panic
        - mkdir_get_executable_mode
        - mkdir_verify
        - p_strdup
        - sieve_file_storage_get_full_active_path
        - sieve_file_storage_stat
        - sieve_storage_get_relative_link_path
        - sieve_storage_set_critical
        - strrchr
        - t_abspath_to
        - t_realpath
        - t_strconcat
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:264,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:270,6'
          Dst:             sieve_file_storage_get_full_active_path
        - Src:             'sieve-file-storage.c:279,18'
          Dst:             strrchr
        - Src:             'sieve-file-storage.c:284,17'
          Dst:             t_strdup_until
        - Src:             'sieve-file-storage.c:290,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:298,7'
          Dst:             t_realpath
        - Src:             'sieve-file-storage.c:299,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:300,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:305,4'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:305,4'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:305,4'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:311,18'
          Dst:             t_abspath_to
        - Src:             'sieve-file-storage.c:314,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:314,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:314,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:317,27'
          Dst:             p_strdup
        - Src:             'sieve-file-storage.c:318,28'
          Dst:             p_strdup
        - Src:             'sieve-file-storage.c:325,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:325,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:325,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:330,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:339,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:363,23'
          Dst:             mkdir_get_executable_mode
        - Src:             'sieve-file-storage.c:377,15'
          Dst:             getegid
        - Src:             'sieve-file-storage.c:385,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:385,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:385,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:396,13'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage.c:399,9'
          Dst:             check_tmp
        - Src:             'sieve-file-storage.c:404,19'
          Dst:             mkdir_verify
        - Src:             'sieve-file-storage.c:414,17'
          Dst:             sieve_file_storage_stat
        - Src:             'sieve-file-storage.c:418,7'
          Dst:             t_realpath
        - Src:             'sieve-file-storage.c:419,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:428,16'
          Dst:             sieve_storage_get_relative_link_path
        - Src:             'sieve-file-storage.c:431,4'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:431,4'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:431,4'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:436,5'
          Dst:             p_strdup
        - Src:             'sieve-file-storage.c:440,19'
          Dst:             p_strdup
    - functionName:    sieve_file_storage_get_full_active_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_storage_get_full_path
        - sieve_storage_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:245,6'
          Dst:             sieve_storage_get_full_path
        - Src:             'sieve-file-storage.c:246,3'
          Dst:             sieve_storage_set_critical
    - 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:    25
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_tmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - eacces_error_get
        - sieve_storage_set_critical
        - stat
        - unlink_old_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:181,6'
          Dst:             stat
        - Src:             'sieve-file-storage.c:182,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:184,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:187,5'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage.c:185,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:190,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:201,9'
          Dst:             unlink_old_files
    - functionName:    mkdir_verify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_debug
        - eacces_error_get
        - eacces_error_get_creating
        - event_send_abort
        - event_want_level
        - mkdir_parents_chgrp
        - sieve_storage_set_critical
        - stat
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-file-storage.c:156,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage.c:136,6'
          Dst:             stat
        - Src:             'sieve-file-storage.c:139,6'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:142,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage.c:140,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:144,13'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:145,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:151,6'
          Dst:             mkdir_parents_chgrp
        - Src:             'sieve-file-storage.c:152,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:152,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:152,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:156,10'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:160,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:165,4'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-file-storage.c:164,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:168,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_storage_get_relative_link_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          139
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - strlen
        - strncmp
        - strrchr
        - t_strconcat
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:104,6'
          Dst:             strrchr
        - Src:             'sieve-file-storage.c:110,7'
          Dst:             strncmp
        - Src:             'sieve-file-storage.c:123,12'
          Dst:             strlen
        - Src:             'sieve-file-storage.c:125,10'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage.c:127,9'
          Dst:             t_strdup
    - functionName:    sieve_file_storage_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:213,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-file-storage.c:214,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-file-storage.c:214,13'
          Dst:             p_malloc
    - functionName:    sieve_file_storage_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - pool_unref
        - settings_get
        - sieve_file_storage_init_from_settings
        - sieve_storage_set_internal_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:532,6'
          Dst:             settings_get
        - Src:             'sieve-file-storage.c:535,3'
          Dst:             e_error
        - Src:             'sieve-file-storage.c:536,3'
          Dst:             sieve_storage_set_internal_error
        - Src:             'sieve-file-storage.c:540,8'
          Dst:             sieve_file_storage_init_from_settings
        - Src:             'sieve-file-storage.c:541,2'
          Dst:             pool_unref
    - functionName:    sieve_file_storage_autodetect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - pool_unref
        - settings_get
        - sieve_error_create_internal
        - sieve_file_storage_do_autodetect
        - sieve_storage_settings_match_script_type
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:701,7'
          Dst:             sieve_storage_settings_match_script_type
        - Src:             'sieve-file-storage.c:705,2'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:705,2'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:705,2'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:709,6'
          Dst:             settings_get
        - Src:             'sieve-file-storage.c:711,3'
          Dst:             e_error
        - Src:             'sieve-file-storage.c:712,3'
          Dst:             sieve_error_create_internal
        - Src:             'sieve-file-storage.c:716,8'
          Dst:             sieve_file_storage_do_autodetect
        - Src:             'sieve-file-storage.c:720,2'
          Dst:             pool_unref
    - functionName:    sieve_file_storage_get_last_change
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_error
        - stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:810,7'
          Dst:             stat
        - Src:             'sieve-file-storage.c:811,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:812,5'
          Dst:             e_error
    - functionName:    sieve_file_storage_set_modified
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - sieve_storage_get_last_change
        - utime
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-file-storage.c:854,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage.c:844,7'
          Dst:             sieve_storage_get_last_change
        - Src:             'sieve-file-storage.c:853,6'
          Dst:             utime
        - Src:             'sieve-file-storage.c:854,11'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:858,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage.c:858,4'
          Dst:             e_error
        - Src:             'sieve-file-storage.c:862,4'
          Dst:             e_error
    - functionName:    sieve_file_storage_is_singular
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - lstat
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:775,6'
          Dst:             lstat
        - Src:             'sieve-file-storage.c:776,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage.c:777,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:788,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_get_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_file_script_init_from_name
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:883,2'
          Dst:             t_push
        - Src:             'sieve-file-storage.c:884,9'
          Dst:             sieve_file_script_init_from_name
        - Src:             'sieve-file-storage.c:886,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage.c:886,4'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:890,2'
          Dst:             i_panic
    - functionName:    utime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    sieve_file_storage_init_from_settings
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          326
      EdgeCount:       86
      CyclomaticComplexity: 24
      functionsReached:
        - e_debug
        - e_warning
        - event_send_abort
        - event_want_level
        - sieve_file_storage_get_full_active_path
        - sieve_file_storage_get_full_path
        - sieve_file_storage_init_common
        - sieve_file_storage_stat
        - sieve_storage_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:456,6'
          Dst:             sieve_file_storage_get_full_path
        - Src:             'sieve-file-storage.c:462,7'
          Dst:             sieve_file_storage_stat
        - Src:             'sieve-file-storage.c:473,9'
          Dst:             sieve_file_storage_get_full_active_path
        - Src:             'sieve-file-storage.c:476,9'
          Dst:             sieve_file_storage_stat
        - Src:             'sieve-file-storage.c:481,5'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:481,5'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:481,5'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:493,6'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage.c:499,6'
          Dst:             e_warning
        - Src:             'sieve-file-storage.c:513,3'
          Dst:             event_want_level
        - Src:             'sieve-file-storage.c:513,3'
          Dst:             e_debug
        - Src:             'sieve-file-storage.c:513,3'
          Dst:             event_send_abort
        - Src:             'sieve-file-storage.c:520,9'
          Dst:             sieve_file_storage_init_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_file_storage_pre_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_storage_get_last_change
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:830,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:832,9'
          Dst:             sieve_storage_get_last_change
    - functionName:    sieve_file_storage_init_from_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_error_args_init
        - sieve_file_storage_init_common
        - sieve_script_file_get_scriptname
        - sieve_storage_alloc
        - sieve_storage_unref
        - t_pop
        - t_push
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:738,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:741,2'
          Dst:             sieve_error_args_init
        - Src:             'sieve-file-storage.c:745,7'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-storage.c:743,8'
          Dst:             sieve_storage_alloc
        - Src:             'sieve-file-storage.c:751,2'
          Dst:             t_push
        - Src:             'sieve-file-storage.c:752,9'
          Dst:             sieve_file_storage_init_common
        - Src:             'sieve-file-storage.c:754,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage.c:754,4'
          Dst:             i_panic
        - Src:             'sieve-file-storage.c:757,14'
          Dst:             t_strdup
        - Src:             'sieve-file-storage.c:758,3'
          Dst:             sieve_storage_unref
    - functionName:    sieve_file_storage_path_extend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage.c:38,11'
          Dst:             strlen
        - Src:             'sieve-file-storage.c:39,10'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage.c:41,9'
          Dst:             t_strconcat
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_dict_storage_active_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_dict_script_init
        - sieve_script_open
        - sieve_script_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-storage.c:93,12'
          Dst:             sieve_dict_script_init
        - Src:             'sieve-dict-storage.c:94,6'
          Dst:             sieve_script_open
        - Src:             'sieve-dict-storage.c:96,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_dict_storage_get_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_dict_script_init
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-storage.c:71,2'
          Dst:             t_push
        - Src:             'sieve-dict-storage.c:72,13'
          Dst:             sieve_dict_script_init
        - Src:             'sieve-dict-storage.c:73,4'
          Dst:             t_pop
        - Src:             'sieve-dict-storage.c:73,4'
          Dst:             i_panic
    - functionName:    sieve_dict_storage_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_init_auto
        - event_create
        - event_set_ptr
        - event_unref
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-storage.c:37,24'
          Dst:             event_create
        - Src:             'sieve-dict-storage.c:38,2'
          Dst:             event_set_ptr
        - Src:             'sieve-dict-storage.c:39,8'
          Dst:             dict_init_auto
        - Src:             'sieve-dict-storage.c:40,2'
          Dst:             event_unref
        - Src:             'sieve-dict-storage.c:42,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_dict_storage_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dict_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-storage.c:56,2'
          Dst:             dict_deinit
    - functionName:    sieve_dict_storage_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-storage.c:21,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-dict-storage.c:22,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-dict-storage.c:22,13'
          Dst:             p_malloc
    - functionName:    sieve_dict_storage_active_script_get_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_vacation_seconds_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-seconds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_vacation_register_seconds_tag
        - sieve_validator_extension_load_implicit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation-seconds.c:86,17'
          Dst:             sieve_validator_extension_load_implicit
        - Src:             'ext-vacation-seconds.c:93,9'
          Dst:             ext_vacation_register_seconds_tag
    - functionName:    ext_vacation_seconds_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-seconds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation-seconds.c:74,2'
          Dst:             p_free_internal
    - functionName:    ext_vacation_seconds_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-seconds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_vacation_seconds_unload
        - malloc_multiply_check
        - p_malloc
        - sieve_extension_require
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation-seconds.c:52,3'
          Dst:             ext_vacation_seconds_unload
        - Src:             'ext-vacation-seconds.c:57,6'
          Dst:             sieve_extension_require
        - Src:             'ext-vacation-seconds.c:61,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-vacation-seconds.c:61,11'
          Dst:             p_malloc
    - functionName:    ext_vacation_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_vacation_interpreter_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation.c:121,4'
          Dst:             sieve_runtime_error
    - functionName:    ext_vacation_validator_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_validator_compile_flags
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation.c:98,4'
          Dst:             sieve_validator_compile_flags
        - Src:             'ext-vacation.c:101,4'
          Dst:             sieve_validator_error
    - functionName:    ext_vacation_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation.c:84,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_vacation_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation.c:72,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-vacation.c:74,2'
          Dst:             sieve_validator_extension_register
    - 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:    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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    subaddress_detail_extract_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/subaddress/ext-subaddress.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcspn
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-subaddress.c:165,8'
          Dst:             strcspn
        - Src:             'ext-subaddress.c:171,36'
          Dst:             strlen
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    subaddress_user_extract_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/subaddress/ext-subaddress.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcspn
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-subaddress.c:147,8'
          Dst:             strcspn
        - Src:             'ext-subaddress.c:154,9'
          Dst:             t_strdup_until
    - functionName:    ext_subaddress_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/subaddress/ext-subaddress.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_part_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-subaddress.c:101,2'
          Dst:             sieve_address_part_register
        - Src:             'ext-subaddress.c:102,2'
          Dst:             sieve_address_part_register
    - functionName:    ext_subaddress_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/subaddress/ext-subaddress.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-subaddress.c:74,6'
          Dst:             settings_get
        - Src:             'ext-subaddress.c:76,3'
          Dst:             e_error
        - Src:             'ext-subaddress.c:80,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-subaddress.c:80,11'
          Dst:             p_malloc
    - functionName:    ext_subaddress_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/subaddress/ext-subaddress.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-subaddress.c:93,2'
          Dst:             pool_unref
        - Src:             'ext-subaddress.c:94,2'
          Dst:             p_free_internal
    - functionName:    cmp_i_ascii_numeric_compare
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/comparator-i-ascii-numeric/ext-cmp-i-ascii-numeric.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          345
      EdgeCount:       70
      CyclomaticComplexity: 20
      functionsReached:
        - __ctype_b_loc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-cmp-i-ascii-numeric.c:105,7'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:106,7'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:111,8'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:127,35'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:127,53'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:133,21'
          Dst:             __ctype_b_loc
        - Src:             'ext-cmp-i-ascii-numeric.c:134,21'
          Dst:             __ctype_b_loc
    - functionName:    ext_cmp_i_ascii_numeric_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/comparator-i-ascii-numeric/ext-cmp-i-ascii-numeric.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparator_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-cmp-i-ascii-numeric.c:50,2'
          Dst:             sieve_comparator_register
    - functionName:    ext_relational_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/ext-relational.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_match_type_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-relational.c:48,2'
          Dst:             sieve_match_type_register
        - Src:             'ext-relational.c:49,2'
          Dst:             sieve_match_type_register
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      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:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mcht_count_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/mcht-count.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          152
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mcht_value_match_key
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
        - sieve_stringlist_get_length
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
        - str_c
        - str_len
        - str_printfa
        - str_sanitize
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-count.c:70,15'
          Dst:             sieve_runtime_trace_active
        - Src:             'mcht-count.c:75,10'
          Dst:             sieve_stringlist_get_length
        - Src:             'mcht-count.c:81,2'
          Dst:             sieve_stringlist_reset
        - Src:             'mcht-count.c:83,20'
          Dst:             t_str_new
        - Src:             'mcht-count.c:84,2'
          Dst:             str_printfa
        - Src:             'mcht-count.c:88,22'
          Dst:             str_c
        - Src:             'mcht-count.c:88,9'
          Dst:             str_sanitize
        - Src:             'mcht-count.c:87,3'
          Dst:             sieve_runtime_trace
        - Src:             'mcht-count.c:91,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'mcht-count.c:97,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'mcht-count.c:100,10'
          Dst:             str_c
        - Src:             'mcht-count.c:100,24'
          Dst:             str_len
        - Src:             'mcht-count.c:101,4'
          Dst:             str_c
        - Src:             'mcht-count.c:101,21'
          Dst:             str_len
        - Src:             'mcht-count.c:99,11'
          Dst:             mcht_value_match_key
        - Src:             'mcht-count.c:105,23'
          Dst:             str_c
        - Src:             'mcht-count.c:105,10'
          Dst:             str_sanitize
        - Src:             'mcht-count.c:104,4'
          Dst:             sieve_runtime_trace
        - Src:             'mcht-count.c:110,2'
          Dst:             sieve_runtime_trace_ascend
    - functionName:    mcht_value_match_key
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/mcht-value.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          125
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mcht-value.c:60,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mcht-value.c:74,2'
          Dst:             i_unreached
    - functionName:    ext_regex_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/ext-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_match_type_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-regex.c:63,2'
          Dst:             sieve_match_type_register
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - 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:    4
      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:    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:             'dovecot/src/lib/array.h:160,2'
          Dst:             buffer_free
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - 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:             'dovecot/src/lib/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_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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    mcht_regex_match_key
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          198
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - array_create_i
        - array_free_i
        - i_memcpy
        - i_panic
        - sieve_match_values_add
        - sieve_match_values_commit
        - sieve_match_values_start
        - str_append
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:194,3'
          Dst:             array_create_i
        - Src:             'mcht-regex.c:205,40'
          Dst:             array_count_i
        - Src:             'mcht-regex.c:207,21'
          Dst:             t_str_new
        - Src:             'mcht-regex.c:211,13'
          Dst:             sieve_match_values_start
        - Src:             'mcht-regex.c:213,3'
          Dst:             i_panic
        - Src:             'mcht-regex.c:215,3'
          Dst:             i_memcpy
        - Src:             'mcht-regex.c:216,4'
          Dst:             str_append
        - Src:             'mcht-regex.c:217,4'
          Dst:             sieve_match_values_add
        - Src:             'mcht-regex.c:218,4'
          Dst:             str_truncate
        - Src:             'mcht-regex.c:222,3'
          Dst:             sieve_match_values_commit
        - Src:             'mcht-regex.c:225,2'
          Dst:             array_free_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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mcht_regex_validate_regexp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:71,27'
          Dst:             str_c
        - Src:             'mcht-regex.c:79,3'
          Dst:             str_sanitize
        - Src:             'mcht-regex.c:79,3'
          Dst:             sieve_validator_error
    - functionName:    mcht_regex_validate_key_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mcht_regex_validate_regexp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:105,10'
          Dst:             mcht_regex_validate_regexp
    - functionName:    mcht_regex_match_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:364,6'
          Dst:             array_is_created_i
        - Src:             'mcht-regex.c:365,11'
          Dst:             array_get_modifiable_i
    - functionName:    mcht_regex_match_keys
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          405
      EdgeCount:       87
      CyclomaticComplexity: 21
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_idx_modifiable_i
        - array_is_created_i
        - i_panic
        - mcht_regex_match_key
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:237,15'
          Dst:             sieve_runtime_trace_active
        - Src:             'mcht-regex.c:250,8'
          Dst:             array_is_created_i
        - Src:             'mcht-regex.c:251,4'
          Dst:             array_create_i
        - Src:             'mcht-regex.c:256,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'mcht-regex.c:258,4'
          Dst:             t_push
        - Src:             'mcht-regex.c:261,14'
          Dst:             array_count_i
        - Src:             'mcht-regex.c:264,13'
          Dst:             array_append_space_i
        - Src:             'mcht-regex.c:277,32'
          Dst:             str_c
        - Src:             'mcht-regex.c:289,8'
          Dst:             str_sanitize
        - Src:             'mcht-regex.c:289,8'
          Dst:             sieve_runtime_error
        - Src:             'mcht-regex.c:301,13'
          Dst:             array_idx_modifiable_i
        - Src:             'mcht-regex.c:305,14'
          Dst:             mcht_regex_match_key
        - Src:             'mcht-regex.c:311,21'
          Dst:             str_c
        - Src:             'mcht-regex.c:311,8'
          Dst:             str_sanitize
        - Src:             'mcht-regex.c:309,7'
          Dst:             sieve_runtime_trace
        - Src:             'mcht-regex.c:315,6'
          Dst:             t_pop
        - Src:             'mcht-regex.c:315,6'
          Dst:             i_panic
        - Src:             'mcht-regex.c:333,11'
          Dst:             array_get_i
        - Src:             'mcht-regex.c:339,13'
          Dst:             mcht_regex_match_key
        - Src:             'mcht-regex.c:343,6'
          Dst:             sieve_runtime_trace
    - functionName:    mcht_regex_match_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_match_values_are_enabled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:174,8'
          Dst:             malloc_multiply_check
        - Src:             'mcht-regex.c:174,8'
          Dst:             p_malloc
        - Src:             'mcht-regex.c:177,24'
          Dst:             sieve_match_values_are_enabled
    - functionName:    mcht_regex_validate_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/regex/mcht-regex.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mcht_regex_validate_key_argument
        - sieve_ast_stringlist_map
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-regex.c:130,4'
          Dst:             sieve_validator_error
        - Src:             'mcht-regex.c:145,6'
          Dst:             sieve_ast_stringlist_map
        - Src:             'mcht-regex.c:145,6'
          Dst:             mcht_regex_validate_key_argument
    - functionName:    sieve_opr_side_effect_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:180,2'
          Dst:             sieve_opr_object_emit
    - functionName:    tag_copy_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_side_effect_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-copy.c:156,2'
          Dst:             sieve_opr_side_effect_emit
    - functionName:    seff_copy_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_seffect_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-copy.c:170,2'
          Dst:             sieve_result_seffect_printf
    - functionName:    seff_copy_post_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_copy_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-copy.c:56,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-copy.c:58,2'
          Dst:             sieve_validator_register_external_tag
    - functionName:    tag_copy_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_ext_copy_register_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/copy/ext-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_extension_loaded
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-copy.c:123,6'
          Dst:             sieve_validator_extension_loaded
        - Src:             'ext-copy.c:124,3'
          Dst:             sieve_validator_register_external_tag
    - 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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    sieve_ext_imap4flags_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags.c:112,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_imap4flags_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ext_imap4flags_interpreter_load
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags.c:120,2'
          Dst:             sieve_ext_imap4flags_interpreter_load
    - functionName:    ext_imap4flags_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_imap4flags_attach_flags_tag
        - sieve_ext_imap4flags_register_side_effect
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags.c:93,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-imap4flags.c:94,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-imap4flags.c:95,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-imap4flags.c:96,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-imap4flags.c:99,2'
          Dst:             ext_imap4flags_attach_flags_tag
        - Src:             'ext-imap4flags.c:100,2'
          Dst:             ext_imap4flags_attach_flags_tag
        - Src:             'ext-imap4flags.c:103,2'
          Dst:             sieve_ext_imap4flags_register_side_effect
        - Src:             'ext-imap4flags.c:104,2'
          Dst:             sieve_ext_imap4flags_register_side_effect
    - functionName:    ext_imap4flags_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags.c:86,2'
          Dst:             p_free_internal
    - functionName:    ext_imap4flags_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ext_variables_get_extension
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags.c:72,6'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'ext-imap4flags.c:75,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-imap4flags.c:75,11'
          Dst:             p_malloc
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,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:    2
      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_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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    seff_flags_get_implicit_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          180
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_create_i
        - ext_imap4flags_get_implicit_flags_init
        - ext_imap4flags_iter_get_flag
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_result_pool
        - strcasecmp
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:202,16'
          Dst:             sieve_result_pool
        - Src:             'tag-flags.c:207,8'
          Dst:             malloc_multiply_check
        - Src:             'tag-flags.c:207,8'
          Dst:             p_malloc
        - Src:             'tag-flags.c:208,2'
          Dst:             array_create_i
        - Src:             'tag-flags.c:210,2'
          Dst:             t_push
        - Src:             'tag-flags.c:212,3'
          Dst:             ext_imap4flags_get_implicit_flags_init
        - Src:             'tag-flags.c:213,18'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'tag-flags.c:216,27'
          Dst:             p_strdup
        - Src:             'tag-flags.c:217,5'
          Dst:             array_append_i
        - Src:             'tag-flags.c:221,9'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:223,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:225,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:227,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:229,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:233,4'
          Dst:             t_pop
        - Src:             'tag-flags.c:233,4'
          Dst:             i_panic
    - functionName:    seff_flags_do_read_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          231
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - array_append_i
        - array_create_i
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - seff_flags_get_implicit_context
        - sieve_opr_stringlist_read_ex
        - sieve_result_pool
        - sieve_stringlist_next_item
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:243,16'
          Dst:             sieve_result_pool
        - Src:             'tag-flags.c:249,8'
          Dst:             sieve_opr_stringlist_read_ex
        - Src:             'tag-flags.c:258,17'
          Dst:             seff_flags_get_implicit_context
        - Src:             'tag-flags.c:263,8'
          Dst:             malloc_multiply_check
        - Src:             'tag-flags.c:263,8'
          Dst:             p_malloc
        - Src:             'tag-flags.c:264,2'
          Dst:             array_create_i
        - Src:             'tag-flags.c:268,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tag-flags.c:272,3'
          Dst:             ext_imap4flags_iter_init
        - Src:             'tag-flags.c:274,18'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'tag-flags.c:277,27'
          Dst:             p_strdup
        - Src:             'tag-flags.c:281,5'
          Dst:             array_append_i
        - Src:             'tag-flags.c:285,9'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:287,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:289,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:291,14'
          Dst:             strcasecmp
        - Src:             'tag-flags.c:293,14'
          Dst:             strcasecmp
    - functionName:    sieve_opr_side_effect_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:180,2'
          Dst:             sieve_opr_object_emit
    - functionName:    seff_flags_pre_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_idx_i
        - seff_flags_get_implicit_context
        - sieve_act_store_add_flags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:392,9'
          Dst:             seff_flags_get_implicit_context
        - Src:             'tag-flags.c:396,8'
          Dst:             array_append_space_i
        - Src:             'tag-flags.c:397,13'
          Dst:             array_idx_i
        - Src:             'tag-flags.c:399,2'
          Dst:             sieve_act_store_add_flags
    - functionName:    seff_flags_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          216
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_idx_i
        - i_panic
        - seff_flags_get_implicit_context
        - sieve_result_seffect_printf
        - str_c
        - str_printfa
        - str_sanitize
        - t_pop
        - t_push
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:349,9'
          Dst:             seff_flags_get_implicit_context
        - Src:             'tag-flags.c:353,25'
          Dst:             array_count_i
        - Src:             'tag-flags.c:354,3'
          Dst:             t_push
        - Src:             'tag-flags.c:355,22'
          Dst:             t_str_new
        - Src:             'tag-flags.c:358,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:360,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:362,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:364,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:366,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:368,20'
          Dst:             array_count_i
        - Src:             'tag-flags.c:370,6'
          Dst:             array_idx_i
        - Src:             'tag-flags.c:372,10'
          Dst:             str_sanitize
        - Src:             'tag-flags.c:371,5'
          Dst:             str_printfa
        - Src:             'tag-flags.c:376,11'
          Dst:             str_c
        - Src:             'tag-flags.c:375,4'
          Dst:             sieve_result_seffect_printf
        - Src:             'tag-flags.c:377,5'
          Dst:             t_pop
        - Src:             'tag-flags.c:377,5'
          Dst:             i_panic
    - functionName:    seff_flags_merge
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seff_flags_read_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - seff_flags_do_read_context
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:313,2'
          Dst:             t_push
        - Src:             'tag-flags.c:314,9'
          Dst:             seff_flags_do_read_context
        - Src:             'tag-flags.c:316,4'
          Dst:             t_pop
        - Src:             'tag-flags.c:316,4'
          Dst:             i_panic
    - functionName:    seff_flags_dump_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_stringlist_dump_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:195,9'
          Dst:             sieve_opr_stringlist_dump_ex
    - functionName:    tag_flags_validate_persistent
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_command_add_dynamic_tag
        - sieve_command_find_argument
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:113,6'
          Dst:             sieve_command_find_argument
        - Src:             'tag-flags.c:114,3'
          Dst:             sieve_command_add_dynamic_tag
    - functionName:    tag_flags_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - i_unreached
        - sieve_opr_omitted_emit
        - sieve_opr_side_effect_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:155,2'
          Dst:             sieve_opr_side_effect_emit
        - Src:             'tag-flags.c:169,3'
          Dst:             sieve_opr_omitted_emit
        - Src:             'tag-flags.c:172,3'
          Dst:             i_unreached
    - functionName:    tag_flags_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tag-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-flags.c:131,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tag-flags.c:138,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_hasflag_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tst-hasflag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          168
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_ext_imap4flags_get_flags
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-hasflag.c:214,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-hasflag.c:207,9'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-hasflag.c:216,10'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-hasflag.c:221,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-hasflag.c:232,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-hasflag.c:240,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-hasflag.c:242,15'
          Dst:             sieve_ext_imap4flags_get_flags
        - Src:             'tst-hasflag.c:247,14'
          Dst:             sieve_ext_imap4flags_get_flags
        - Src:             'tst-hasflag.c:254,10'
          Dst:             sieve_match
        - Src:             'tst-hasflag.c:259,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_hasflag_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tst-hasflag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-hasflag.c:163,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-hasflag.c:148,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-hasflag.c:149,2'
          Dst:             sieve_code_descend
        - Src:             'tst-hasflag.c:157,9'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-hasflag.c:165,11'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-hasflag.c:176,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_hasflag_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tst-hasflag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-hasflag.c:132,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-hasflag.c:135,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_hasflag_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tst-hasflag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_imap4flags_command_validate
        - sieve_match_type_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-hasflag.c:106,7'
          Dst:             ext_imap4flags_command_validate
        - Src:             'tst-hasflag.c:120,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_hasflag_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/tst-hasflag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-hasflag.c:85,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-hasflag.c:87,2'
          Dst:             sieve_match_types_link_tags
    - functionName:    ext_include_binary_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_binary_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include.c:121,8'
          Dst:             ext_include_binary_get_context
    - functionName:    ext_include_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_interpreter_context_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include.c:112,2'
          Dst:             ext_include_interpreter_context_init
    - functionName:    ext_include_generator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_register_generator_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include.c:102,2'
          Dst:             ext_include_register_generator_context
    - functionName:    ext_include_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_variables_global_namespace_init
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include.c:88,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-include.c:89,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-include.c:90,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-include.c:93,2'
          Dst:             ext_include_variables_global_namespace_init
    - functionName:    ext_body_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/ext-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-body.c:50,2'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tag_body_transform_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_generate_argument_parameters
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-body.c:240,2'
          Dst:             sieve_binary_emit_byte
        - Src:             'tst-body.c:241,2'
          Dst:             sieve_generate_argument_parameters
    - functionName:    tag_body_transform_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-body.c:127,3'
          Dst:             sieve_validator_error
        - Src:             'tst-body.c:146,8'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tst-body.c:153,10'
          Dst:             sieve_ast_arguments_detach
    - functionName:    ext_body_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          211
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - ext_body_get_part_list
        - pool_datastack_create
        - sieve_binary_read_byte
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_match_values_set_enabled
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_stringlist_read_all
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-body.c:340,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-body.c:333,9'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-body.c:342,9'
          Dst:             sieve_binary_read_byte
        - Src:             'tst-body.c:345,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-body.c:351,15'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-body.c:357,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-body.c:365,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-body.c:370,44'
          Dst:             pool_datastack_create
        - Src:             'tst-body.c:370,6'
          Dst:             sieve_stringlist_read_all
        - Src:             'tst-body.c:372,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-body.c:381,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-body.c:384,8'
          Dst:             ext_body_get_part_list
        - Src:             'tst-body.c:390,19'
          Dst:             sieve_match_values_set_enabled
        - Src:             'tst-body.c:393,10'
          Dst:             sieve_match
        - Src:             'tst-body.c:396,8'
          Dst:             sieve_match_values_set_enabled
        - Src:             'tst-body.c:402,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    ext_body_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_byte
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-body.c:269,3'
          Branch Sides:    []
        - Branch String:   'tst-body.c:275,4'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-body.c:256,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-body.c:257,2'
          Dst:             sieve_code_descend
        - Src:             'tst-body.c:263,9'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-body.c:271,9'
          Dst:             sieve_binary_read_byte
        - Src:             'tst-body.c:277,5'
          Dst:             sieve_code_dumpf
        - Src:             'tst-body.c:280,5'
          Dst:             sieve_code_dumpf
        - Src:             'tst-body.c:283,5'
          Dst:             sieve_code_dumpf
        - Src:             'tst-body.c:286,5'
          Dst:             sieve_code_descend
        - Src:             'tst-body.c:287,10'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-body.c:290,5'
          Dst:             sieve_code_ascend
        - Src:             'tst-body.c:301,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_body_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-body.c:226,8'
          Dst:             sieve_operation_emit
        - Src:             'tst-body.c:229,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_body_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-body.c:206,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-body.c:210,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-body.c:214,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_body_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/tst-body.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-body.c:179,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-body.c:180,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-body.c:183,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-body.c:185,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-body.c:187,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - functionName:    opr_namespace_variable_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_opr_object_read
        - sieve_runtime_trace_operand_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:231,7'
          Dst:             sieve_opr_object_read
        - Src:             'ext-variables-namespaces.c:234,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    opr_namespace_variable_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_operand_read
        - sieve_opr_object_read_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:207,7'
          Dst:             sieve_operand_read
        - Src:             'ext-variables-namespaces.c:209,7'
          Dst:             sieve_opr_object_read_data
    - functionName:    sieve_variables_opr_namespace_variable_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_operand_emit
        - sieve_opr_object_emit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:194,2'
          Dst:             i_panic
        - Src:             'ext-variables-namespaces.c:195,2'
          Dst:             sieve_operand_emit
        - Src:             'ext-variables-namespaces.c:196,2'
          Dst:             sieve_opr_object_emit
    - functionName:    ext_variables_namespace_argument_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_namespace_argument_activate
        - sieve_ast_argument_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:132,12'
          Dst:             sieve_ast_argument_create
        - Src:             'ext-variables-namespaces.c:136,7'
          Dst:             ext_variables_namespace_argument_activate
    - functionName:    ext_variables_namespace_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          154
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_i
        - ext_variables_namespace_create_instance
        - malloc_multiply_check
        - p_malloc
        - sieve_argument_create
        - sieve_ast_pool
        - sieve_validator_error
        - str_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:90,16'
          Dst:             sieve_ast_pool
        - Src:             'ext-variables-namespaces.c:94,51'
          Dst:             array_idx_i
        - Src:             'ext-variables-namespaces.c:98,26'
          Dst:             str_c
        - Src:             'ext-variables-namespaces.c:97,9'
          Dst:             ext_variables_namespace_create_instance
        - Src:             'ext-variables-namespaces.c:100,3'
          Dst:             str_c
        - Src:             'ext-variables-namespaces.c:100,3'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-namespaces.c:112,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-namespaces.c:112,8'
          Dst:             p_malloc
        - Src:             'ext-variables-namespaces.c:116,18'
          Dst:             sieve_argument_create
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    ext_variables_namespace_create_instance
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_validator_context_get
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:48,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-namespaces.c:53,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'ext-variables-namespaces.c:57,9'
          Dst:             sieve_ast_pool
        - Src:             'ext-variables-namespaces.c:58,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-namespaces.c:58,9'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    arg_namespace_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_variables_namespace_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_validator_object_registry_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:35,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-namespaces.c:37,9'
          Dst:             sieve_validator_object_registry_find
    - functionName:    sieve_variables_namespace_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-namespaces.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_validator_object_registry_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-namespaces.c:24,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-namespaces.c:26,2'
          Dst:             sieve_validator_object_registry_add
    - functionName:    ext_variables_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-settings.c:53,14'
          Dst:             t_strdup_printf
        - Src:             'ext-variables-settings.c:61,14'
          Dst:             t_strdup_printf
    - functionName:    ext_variables_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_initialize
        - sieve_validator_argument_override
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables.c:75,2'
          Dst:             sieve_validator_argument_override
        - Src:             'ext-variables.c:78,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-variables.c:79,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-variables.c:81,2'
          Dst:             ext_variables_validator_initialize
    - 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:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_string_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_stringlist_next_item
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:218,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-string.c:220,7'
          Dst:             str_len
    - functionName:    tst_string_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:207,2'
          Dst:             sieve_stringlist_reset
    - functionName:    tst_string_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:199,9'
          Dst:             sieve_stringlist_next_item
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    tst_string_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:181,12'
          Dst:             malloc_multiply_check
        - Src:             'tst-string.c:181,12'
          Dst:             t_malloc0
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_string_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - tst_string_stringlist_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:242,6'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-string.c:247,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-string.c:252,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-string.c:260,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-string.c:263,15'
          Dst:             tst_string_stringlist_create
        - Src:             'tst-string.c:266,10'
          Dst:             sieve_match
        - Src:             'tst-string.c:271,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_string_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:148,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-string.c:149,2'
          Dst:             sieve_code_descend
        - Src:             'tst-string.c:152,6'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-string.c:155,10'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-string.c:156,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_string_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:132,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-string.c:135,7'
          Dst:             sieve_generate_arguments
    - functionName:    tst_string_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:105,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-string.c:108,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-string.c:113,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-string.c:116,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-string.c:120,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_string_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/tst-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-string.c:86,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-string.c:87,2'
          Dst:             sieve_match_types_link_tags
    - 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:    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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    ext_enotify_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
        - sieve_variables_modifier_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify.c:112,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-enotify.c:114,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-enotify.c:116,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-enotify.c:120,2'
          Dst:             sieve_variables_modifier_register
    - functionName:    ext_enotify_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - ext_enotify_methods_deinit
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify.c:100,2'
          Dst:             ext_enotify_methods_deinit
        - Src:             'ext-enotify.c:101,2'
          Dst:             pool_unref
        - Src:             'ext-enotify.c:102,2'
          Dst:             p_free_internal
    - functionName:    ext_enotify_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          121
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - ext_enotify_methods_init
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - pool_unref
        - settings_get
        - sieve_ext_variables_get_extension
        - sieve_extension_capabilities_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify.c:68,6'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'ext-enotify.c:71,6'
          Dst:             settings_get
        - Src:             'ext-enotify.c:73,3'
          Dst:             e_error
        - Src:             'ext-enotify.c:77,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-enotify.c:77,11'
          Dst:             p_malloc
        - Src:             'ext-enotify.c:81,6'
          Dst:             ext_enotify_methods_init
        - Src:             'ext-enotify.c:82,3'
          Dst:             pool_unref
        - Src:             'ext-enotify.c:83,3'
          Dst:             p_free_internal
        - Src:             'ext-enotify.c:87,2'
          Dst:             sieve_extension_capabilities_register
    - functionName:    ntfy_mailto_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_address_source_parse
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto-settings.c:51,7'
          Dst:             sieve_address_source_parse
        - Src:             'ntfy-mailto-settings.c:53,14'
          Dst:             t_strdup_printf
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_notifymc_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - ext_enotify_runtime_get_method_capability
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_single_stringlist_create_cstr
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-notify-method-capability.c:192,6'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-notify-method-capability.c:197,8'
          Dst:             sieve_opr_string_read
        - Src:             'tst-notify-method-capability.c:202,8'
          Dst:             sieve_opr_string_read
        - Src:             'tst-notify-method-capability.c:208,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-notify-method-capability.c:216,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-notify-method-capability.c:220,21'
          Dst:             str_c
        - Src:             'tst-notify-method-capability.c:219,14'
          Dst:             ext_enotify_runtime_get_method_capability
        - Src:             'tst-notify-method-capability.c:222,16'
          Dst:             sieve_single_stringlist_create_cstr
        - Src:             'tst-notify-method-capability.c:226,11'
          Dst:             sieve_match
        - Src:             'tst-notify-method-capability.c:235,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_notifymc_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-notify-method-capability.c:158,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-notify-method-capability.c:159,2'
          Dst:             sieve_code_descend
        - Src:             'tst-notify-method-capability.c:162,6'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-notify-method-capability.c:165,10'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-notify-method-capability.c:166,3'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-notify-method-capability.c:167,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_notifymc_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-notify-method-capability.c:143,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-notify-method-capability.c:147,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_notifymc_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-notify-method-capability.c:108,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-notify-method-capability.c:111,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-notify-method-capability.c:116,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-notify-method-capability.c:119,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-notify-method-capability.c:124,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-notify-method-capability.c:127,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-notify-method-capability.c:131,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_notifymc_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-notify-method-capability.c:89,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-notify-method-capability.c:90,2'
          Dst:             sieve_match_types_link_tags
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_vnotifym_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-valid-notify-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_enotify_runtime_method_validate
        - sieve_interpreter_set_test_result
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-notify-method.c:123,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-valid-notify-method.c:132,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-valid-notify-method.c:136,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-valid-notify-method.c:137,8'
          Dst:             ext_enotify_runtime_method_validate
        - Src:             'tst-valid-notify-method.c:144,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-valid-notify-method.c:148,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_vnotifym_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-valid-notify-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-notify-method.c:99,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-valid-notify-method.c:100,2'
          Dst:             sieve_code_descend
        - Src:             'tst-valid-notify-method.c:102,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_vnotifym_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-valid-notify-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-notify-method.c:84,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-valid-notify-method.c:88,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_vnotifym_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/tst-valid-notify-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-notify-method.c:70,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-valid-notify-method.c:73,9'
          Dst:             sieve_validator_argument_activate
    - 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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - 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:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mod_encodeurl_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/vmodf-encodeurl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          229
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_variables_get_max_value_size
        - str_append_data
        - str_data
        - str_len
        - str_printfa
        - t_str_new
        - uni_utf8_char_bytes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'vmodf-encodeurl.c:71,3'
          Dst:             sieve_variables_get_max_value_size
        - Src:             'vmodf-encodeurl.c:75,6'
          Dst:             str_len
        - Src:             'vmodf-encodeurl.c:81,13'
          Dst:             str_len
        - Src:             'vmodf-encodeurl.c:84,12'
          Dst:             t_str_new
        - Src:             'vmodf-encodeurl.c:87,6'
          Dst:             str_data
        - Src:             'vmodf-encodeurl.c:88,13'
          Dst:             str_len
        - Src:             'vmodf-encodeurl.c:91,23'
          Dst:             uni_utf8_char_bytes
        - Src:             'vmodf-encodeurl.c:94,4'
          Dst:             str_append_data
        - Src:             'vmodf-encodeurl.c:97,8'
          Dst:             str_len
        - Src:             'vmodf-encodeurl.c:100,4'
          Dst:             str_printfa
        - Src:             'vmodf-encodeurl.c:104,5'
          Dst:             str_printfa
        - Src:             'vmodf-encodeurl.c:108,15'
          Dst:             str_len
        - Src:             'vmodf-encodeurl.c:114,2'
          Dst:             str_append_data
    - functionName:    ext_environment_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_environment_interpreter_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment.c:58,2'
          Dst:             ext_environment_interpreter_init
    - functionName:    ext_environment_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment.c:49,2'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_environment_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/tst-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          129
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ext_environment_item_get_value
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_single_stringlist_create_cstr
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-environment.c:177,6'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-environment.c:182,8'
          Dst:             sieve_opr_string_read
        - Src:             'tst-environment.c:187,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-environment.c:195,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-environment.c:197,60'
          Dst:             str_c
        - Src:             'tst-environment.c:197,13'
          Dst:             ext_environment_item_get_value
        - Src:             'tst-environment.c:201,16'
          Dst:             sieve_single_stringlist_create_cstr
        - Src:             'tst-environment.c:205,11'
          Dst:             sieve_match
        - Src:             'tst-environment.c:212,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-environment.c:215,22'
          Dst:             str_c
        - Src:             'tst-environment.c:215,9'
          Dst:             str_sanitize
        - Src:             'tst-environment.c:213,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-environment.c:219,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_environment_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/tst-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-environment.c:143,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-environment.c:144,2'
          Dst:             sieve_code_descend
        - Src:             'tst-environment.c:147,6'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-environment.c:150,10'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-environment.c:151,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_environment_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/tst-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-environment.c:128,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-environment.c:132,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_environment_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/tst-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-environment.c:101,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-environment.c:104,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-environment.c:109,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-environment.c:112,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-environment.c:116,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_environment_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/tst-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-environment.c:79,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-environment.c:81,2'
          Dst:             sieve_match_types_link_tags
    - functionName:    ext_mailbox_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/ext-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-mailbox.c:65,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mailbox.c:70,2'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_ext_mailbox_register_create_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/ext-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_extension_loaded
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-mailbox.c:34,6'
          Dst:             sieve_validator_extension_loaded
        - Src:             'ext-mailbox.c:35,3'
          Dst:             sieve_validator_register_external_tag
    - functionName:    sieve_opr_side_effect_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:180,2'
          Dst:             sieve_opr_object_emit
    - functionName:    seff_mailbox_create_pre_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tag-mailbox-create.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          204
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - mailbox_create
        - mailbox_get_name
        - mailbox_get_namespace
        - mailbox_get_storage
        - mailbox_list_set_subscribed
        - mailbox_open
        - sieve_act_store_get_storage_error
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tag-mailbox-create.c:141,2'
          Branch Sides:    []
      Callsites:
        - Src:             'tag-mailbox-create.c:132,36'
          Dst:             mailbox_get_storage
        - Src:             'tag-mailbox-create.c:136,7'
          Dst:             mailbox_open
        - Src:             'tag-mailbox-create.c:137,4'
          Dst:             sieve_act_store_get_storage_error
        - Src:             'tag-mailbox-create.c:156,6'
          Dst:             mailbox_create
        - Src:             'tag-mailbox-create.c:157,3'
          Dst:             sieve_act_store_get_storage_error
        - Src:             'tag-mailbox-create.c:170,4'
          Dst:             mailbox_get_namespace
        - Src:             'tag-mailbox-create.c:171,4'
          Dst:             mailbox_get_name
        - Src:             'tag-mailbox-create.c:169,9'
          Dst:             mailbox_list_set_subscribed
        - Src:             'tag-mailbox-create.c:175,6'
          Dst:             mailbox_open
        - Src:             'tag-mailbox-create.c:177,3'
          Dst:             sieve_act_store_get_storage_error
    - functionName:    seff_mailbox_create_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tag-mailbox-create.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_seffect_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mailbox-create.c:114,2'
          Dst:             sieve_result_seffect_printf
    - functionName:    tag_mailbox_create_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tag-mailbox-create.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_side_effect_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mailbox-create.c:99,2'
          Dst:             sieve_opr_side_effect_emit
    - functionName:    tag_mailbox_create_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tag-mailbox-create.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_mailboxexists_test_mailbox
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_alloc_for_user
        - mailbox_free
        - mailbox_is_readonly
        - mailbox_open
        - sieve_mailbox_check_name
        - sieve_runtime_trace
        - sieve_runtime_warning
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:162,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-mailboxexists.c:163,3'
          Dst:             str_sanitize
        - Src:             'tst-mailboxexists.c:163,3'
          Dst:             sieve_runtime_warning
        - Src:             'tst-mailboxexists.c:172,8'
          Dst:             mailbox_alloc_for_user
        - Src:             'tst-mailboxexists.c:176,6'
          Dst:             mailbox_open
        - Src:             'tst-mailboxexists.c:181,5'
          Dst:             str_sanitize
        - Src:             'tst-mailboxexists.c:178,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:183,3'
          Dst:             mailbox_free
        - Src:             'tst-mailboxexists.c:189,6'
          Dst:             mailbox_is_readonly
        - Src:             'tst-mailboxexists.c:194,5'
          Dst:             str_sanitize
        - Src:             'tst-mailboxexists.c:191,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:196,3'
          Dst:             mailbox_free
        - Src:             'tst-mailboxexists.c:207,4'
          Dst:             str_sanitize
        - Src:             'tst-mailboxexists.c:205,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:211,2'
          Dst:             mailbox_free
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_mailboxexists_mailbox_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_mailbox_check_name
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:81,25'
          Dst:             str_c
        - Src:             'tst-mailboxexists.c:83,8'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-mailboxexists.c:84,4'
          Dst:             str_sanitize
        - Src:             'tst-mailboxexists.c:84,4'
          Dst:             sieve_validator_warning
    - functionName:    tst_mailboxexists_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          165
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
        - str_c
        - tst_mailboxexists_test_mailbox
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:231,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-mailboxexists.c:240,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-mailboxexists.c:241,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:242,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-mailboxexists.c:244,11'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-mailboxexists.c:248,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:249,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-mailboxexists.c:255,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-mailboxexists.c:257,25'
          Dst:             str_c
        - Src:             'tst-mailboxexists.c:259,9'
          Dst:             tst_mailboxexists_test_mailbox
        - Src:             'tst-mailboxexists.c:266,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-mailboxexists.c:273,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:276,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-mailboxexists.c:281,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_mailboxexists_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:142,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-mailboxexists.c:143,2'
          Dst:             sieve_code_descend
        - Src:             'tst-mailboxexists.c:145,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_mailboxexists_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:128,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-mailboxexists.c:131,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_mailboxexists_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_ast_stringlist_map
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - tst_mailboxexists_mailbox_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-mailboxexists.c:103,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-mailboxexists.c:107,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-mailboxexists.c:115,10'
          Dst:             sieve_ast_stringlist_map
        - Src:             'tst-mailboxexists.c:115,10'
          Dst:             tst_mailboxexists_mailbox_validate
    - functionName:    ext_date_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date.c:57,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-date.c:58,2'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tag_zone_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_argument_parameters
        - sieve_opr_omitted_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:333,3'
          Dst:             sieve_opr_omitted_emit
        - Src:             'tst-date.c:336,9'
          Dst:             sieve_generate_argument_parameters
    - functionName:    tag_zone_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          169
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - ext_date_parse_timezone
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:158,4'
          Dst:             sieve_validator_error
        - Src:             'tst-date.c:163,4'
          Dst:             sieve_validator_error
        - Src:             'tst-date.c:179,8'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tst-date.c:185,23'
          Dst:             str_c
        - Src:             'tst-date.c:187,9'
          Dst:             ext_date_parse_timezone
        - Src:             'tst-date.c:188,5'
          Dst:             str_sanitize
        - Src:             'tst-date.c:188,5'
          Dst:             sieve_validator_warning
        - Src:             'tst-date.c:197,10'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tst_date_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:213,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-date.c:215,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-date.c:218,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-date.c:220,2'
          Dst:             sieve_validator_register_tag
    - functionName:    tst_date_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          178
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - ext_date_part_find
        - sieve_command_verify_headers_argument
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:261,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-date.c:264,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-date.c:266,8'
          Dst:             sieve_command_verify_headers_argument
        - Src:             'tst-date.c:274,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-date.c:277,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-date.c:281,23'
          Dst:             str_c
        - Src:             'tst-date.c:283,7'
          Dst:             ext_date_part_find
        - Src:             'tst-date.c:284,4'
          Dst:             str_sanitize
        - Src:             'tst-date.c:284,4'
          Dst:             sieve_validator_warning
        - Src:             'tst-date.c:295,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-date.c:298,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-date.c:302,9'
          Dst:             sieve_match_type_validate
    - functionName:    tst_date_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:315,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-date.c:318,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-date.c:321,3'
          Dst:             i_unreached
        - Src:             'tst-date.c:325,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_date_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          130
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_message_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_string_dump_ex
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-date.c:363,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-date.c:350,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-date.c:351,2'
          Dst:             sieve_code_descend
        - Src:             'tst-date.c:357,9'
          Dst:             sieve_message_opr_optional_dump
        - Src:             'tst-date.c:365,9'
          Dst:             sieve_opr_string_dump_ex
        - Src:             'tst-date.c:375,7'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-date.c:378,10'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-date.c:379,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_date_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          303
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - ext_date_parse_timezone
        - ext_date_part_find
        - ext_date_stringlist_create
        - i_unreached
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_message_get_header_fields
        - sieve_message_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_string_read_ex
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_runtime_warning
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-date.c:419,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-date.c:411,9'
          Dst:             sieve_message_opr_optional_read
        - Src:             'tst-date.c:421,10'
          Dst:             sieve_opr_string_read_ex
        - Src:             'tst-date.c:429,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-date.c:437,9'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-date.c:444,8'
          Dst:             sieve_opr_string_read
        - Src:             'tst-date.c:449,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-date.c:458,38'
          Dst:             str_c
        - Src:             'tst-date.c:458,14'
          Dst:             ext_date_parse_timezone
        - Src:             'tst-date.c:460,4'
          Dst:             str_c
        - Src:             'tst-date.c:460,4'
          Dst:             str_sanitize
        - Src:             'tst-date.c:460,4'
          Dst:             sieve_runtime_warning
        - Src:             'tst-date.c:469,29'
          Dst:             str_c
        - Src:             'tst-date.c:469,10'
          Dst:             ext_date_part_find
        - Src:             'tst-date.c:471,3'
          Dst:             str_c
        - Src:             'tst-date.c:471,3'
          Dst:             str_sanitize
        - Src:             'tst-date.c:471,3'
          Dst:             sieve_runtime_warning
        - Src:             'tst-date.c:475,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-date.c:484,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-date.c:487,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-date.c:488,9'
          Dst:             sieve_message_get_header_fields
        - Src:             'tst-date.c:492,3'
          Dst:             sieve_runtime_trace_ascend
        - Src:             'tst-date.c:495,16'
          Dst:             ext_date_stringlist_create
        - Src:             'tst-date.c:500,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-date.c:504,16'
          Dst:             ext_date_stringlist_create
        - Src:             'tst-date.c:507,3'
          Dst:             i_unreached
        - Src:             'tst-date.c:511,10'
          Dst:             sieve_match
        - Src:             'tst-date.c:516,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_currentdate_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/tst-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-date.c:231,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-date.c:233,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-date.c:236,2'
          Dst:             sieve_validator_register_tag
    - 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_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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_spamvirustest_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          344
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - array_get_i
        - array_is_created_i
        - ext_spamvirustest_parse_decimal_value
        - i_panic
        - str_to_uint
        - strcmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-settings.c:165,6'
          Dst:             strcmp
        - Src:             'ext-spamvirustest-settings.c:167,11'
          Dst:             strcmp
        - Src:             'ext-spamvirustest-settings.c:169,11'
          Dst:             strcmp
        - Src:             'ext-spamvirustest-settings.c:172,14'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:180,15'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:188,15'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:195,8'
          Dst:             ext_spamvirustest_parse_decimal_value
        - Src:             'ext-spamvirustest-settings.c:198,15'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:203,13'
          Dst:             array_is_created_i
        - Src:             'ext-spamvirustest-settings.c:208,13'
          Dst:             array_get_i
        - Src:             'ext-spamvirustest-settings.c:209,3'
          Dst:             i_panic
        - Src:             'ext-spamvirustest-settings.c:213,8'
          Dst:             str_to_uint
        - Src:             'ext-spamvirustest-settings.c:214,16'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:220,16'
          Dst:             t_strdup_printf
    - functionName:    ext_spamvirustest_parse_decimal_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          233
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __ctype_b_loc
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-settings.c:113,9'
          Dst:             __ctype_b_loc
        - Src:             'ext-spamvirustest-settings.c:116,15'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:129,10'
          Dst:             __ctype_b_loc
        - Src:             'ext-spamvirustest-settings.c:133,16'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-settings.c:144,14'
          Dst:             t_strdup_printf
    - functionName:    ext_virustest_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_spamvirustest_settings_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-settings.c:244,9'
          Dst:             ext_spamvirustest_settings_check
    - functionName:    ext_spamtest_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_spamvirustest_settings_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-settings.c:237,9'
          Dst:             ext_spamvirustest_settings_check
    - functionName:    ext_spamtest_validator_check_conflict
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_validator_warning
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest.c:104,6'
          Dst:             strcmp
        - Src:             'ext-spamvirustest.c:105,3'
          Dst:             sieve_validator_warning
    - functionName:    ext_spamvirustest_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest.c:83,3'
          Dst:             sieve_validator_register_command
        - Src:             'ext-spamvirustest.c:87,4'
          Dst:             sieve_validator_extension_register
        - Src:             'ext-spamvirustest.c:92,3'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_spamtest_validate_percent_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-spamvirustest.c:153,3'
          Dst:             sieve_validator_error
    - functionName:    tst_spamvirustest_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          164
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ext_spamvirustest_get_value
        - sieve_interpreter_set_test_result
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_single_stringlist_create_cstr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-spamvirustest.c:279,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-spamvirustest.c:272,9'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-spamvirustest.c:284,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-spamvirustest.c:291,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-spamvirustest.c:298,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-spamvirustest.c:302,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-spamvirustest.c:306,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-spamvirustest.c:307,8'
          Dst:             ext_spamvirustest_get_value
        - Src:             'tst-spamvirustest.c:311,2'
          Dst:             sieve_runtime_trace_ascend
        - Src:             'tst-spamvirustest.c:314,15'
          Dst:             sieve_single_stringlist_create_cstr
        - Src:             'tst-spamvirustest.c:318,10'
          Dst:             sieve_match
        - Src:             'tst-spamvirustest.c:323,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_spamvirustest_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-spamvirustest.c:236,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-spamvirustest.c:223,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-spamvirustest.c:224,2'
          Dst:             sieve_code_descend
        - Src:             'tst-spamvirustest.c:230,9'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-spamvirustest.c:238,4'
          Dst:             sieve_code_dumpf
        - Src:             'tst-spamvirustest.c:245,9'
          Dst:             sieve_opr_string_dump
    - functionName:    tst_spamvirustest_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-spamvirustest.c:199,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-spamvirustest.c:202,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-spamvirustest.c:205,3'
          Dst:             i_unreached
        - Src:             'tst-spamvirustest.c:209,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_spamvirustest_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-spamvirustest.c:129,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-spamvirustest.c:131,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'tst-spamvirustest.c:136,3'
          Dst:             sieve_validator_register_tag
    - functionName:    tst_spamvirustest_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-spamvirustest.c:178,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-spamvirustest.c:182,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-spamvirustest.c:186,9'
          Dst:             sieve_match_type_validate
    - functionName:    ext_ihave_generator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_ihave_binary_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave.c:69,8'
          Dst:             ext_ihave_binary_init
    - functionName:    ext_ihave_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave.c:59,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-ihave.c:60,2'
          Dst:             sieve_validator_register_command
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    tst_ihave_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/tst-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          153
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - sieve_extension_get_by_name
        - sieve_interpreter_extension_start
        - sieve_interpreter_set_test_result
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-ihave.c:243,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-ihave.c:252,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-ihave.c:253,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-ihave.c:258,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-ihave.c:263,45'
          Dst:             str_c
        - Src:             'tst-ihave.c:263,9'
          Dst:             sieve_extension_get_by_name
        - Src:             'tst-ihave.c:265,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-ihave.c:269,10'
          Dst:             sieve_interpreter_extension_start
        - Src:             'tst-ihave.c:271,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-ihave.c:277,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-ihave.c:286,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-ihave.c:291,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_ihave_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/tst-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-ihave.c:217,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-ihave.c:218,2'
          Dst:             sieve_code_descend
        - Src:             'tst-ihave.c:220,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_ihave_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/tst-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-ihave.c:203,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-ihave.c:206,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_ihave_validate_const
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/tst-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_ihave_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/tst-ihave.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          346
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - ext_ihave_ast_add_missing_extension
        - i_unreached
        - pool_datastack_create
        - sieve_extension_get_by_name
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_compile_flags
        - sieve_validator_extension_load
        - str_c
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-ihave.c:97,2'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-ihave.c:79,3'
          Dst:             sieve_validator_compile_flags
        - Src:             'tst-ihave.c:87,2'
          Dst:             pool_datastack_create
        - Src:             'tst-ihave.c:87,2'
          Dst:             array_create_i
        - Src:             'tst-ihave.c:92,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-ihave.c:102,22'
          Dst:             str_c
        - Src:             'tst-ihave.c:101,20'
          Dst:             sieve_extension_get_by_name
        - Src:             'tst-ihave.c:110,5'
          Dst:             str_c
        - Src:             'tst-ihave.c:108,4'
          Dst:             ext_ihave_ast_add_missing_extension
        - Src:             'tst-ihave.c:112,4'
          Dst:             array_append_i
        - Src:             'tst-ihave.c:125,5'
          Dst:             str_c
        - Src:             'tst-ihave.c:123,21'
          Dst:             sieve_extension_get_by_name
        - Src:             'tst-ihave.c:133,6'
          Dst:             str_c
        - Src:             'tst-ihave.c:131,5'
          Dst:             ext_ihave_ast_add_missing_extension
        - Src:             'tst-ihave.c:135,5'
          Dst:             array_append_i
        - Src:             'tst-ihave.c:142,3'
          Dst:             i_unreached
        - Src:             'tst-ihave.c:161,9'
          Dst:             array_get_i
        - Src:             'tst-ihave.c:163,7'
          Dst:             strcmp
        - Src:             'tst-ihave.c:164,7'
          Dst:             strcmp
        - Src:             'tst-ihave.c:169,9'
          Dst:             array_get_i
        - Src:             'tst-ihave.c:171,8'
          Dst:             sieve_validator_extension_load
        - Src:             'tst-ihave.c:176,7'
          Dst:             sieve_validator_argument_activate
    - functionName:    ext_editheader_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-settings.c:109,14'
          Dst:             t_strdup_printf
    - functionName:    ext_editheader_header_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rfc2822_header_field_name_verify
        - strlen
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-settings.c:92,51'
          Dst:             strlen
        - Src:             'ext-editheader-settings.c:92,7'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'ext-editheader-settings.c:93,14'
          Dst:             t_strdup_printf
    - functionName:    ext_editheader_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader.c:60,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-editheader.c:61,2'
          Dst:             sieve_validator_register_command
    - functionName:    ext_duplicate_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate.c:48,2'
          Dst:             sieve_validator_register_command
    - 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:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    tst_duplicate_validate_string_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_unreached
        - sieve_ast_arguments_detach
        - sieve_command_verify_headers_argument
        - sieve_validate_tag_parameter
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-duplicate.c:163,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tst-duplicate.c:170,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tst-duplicate.c:175,3'
          Dst:             sieve_validator_error
        - Src:             'tst-duplicate.c:186,8'
          Dst:             sieve_command_verify_headers_argument
        - Src:             'tst-duplicate.c:193,3'
          Dst:             i_panic
        - Src:             'tst-duplicate.c:196,3'
          Dst:             i_unreached
    - functionName:    tst_duplicate_validate_number_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          125
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_ast_argument_number_set
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_warning
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-duplicate.c:127,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tst-duplicate.c:132,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tst-duplicate.c:141,3'
          Dst:             sieve_validator_warning
        - Src:             'tst-duplicate.c:147,2'
          Dst:             sieve_ast_argument_number_set
    - functionName:    tst_duplicate_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          293
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - ext_duplicate_check
        - mail_get_first_header_utf8
        - mail_get_message_id
        - sieve_interpreter_set_test_result
        - sieve_opr_number_read
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_runtime_mail_error
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - str_c
        - str_len
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-duplicate.c:338,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-duplicate.c:331,14'
          Dst:             sieve_opr_optional_read
        - Src:             'tst-duplicate.c:340,10'
          Dst:             sieve_opr_number_read
        - Src:             'tst-duplicate.c:348,10'
          Dst:             sieve_opr_string_read
        - Src:             'tst-duplicate.c:353,11'
          Dst:             sieve_opr_string_read
        - Src:             'tst-duplicate.c:357,11'
          Dst:             sieve_opr_string_read
        - Src:             'tst-duplicate.c:362,10'
          Dst:             sieve_opr_string_read
        - Src:             'tst-duplicate.c:366,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-duplicate.c:380,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-duplicate.c:381,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-duplicate.c:385,9'
          Dst:             str_c
        - Src:             'tst-duplicate.c:386,13'
          Dst:             str_len
        - Src:             'tst-duplicate.c:389,10'
          Dst:             mail_get_message_id
        - Src:             'tst-duplicate.c:391,12'
          Dst:             sieve_runtime_mail_error
        - Src:             'tst-duplicate.c:396,43'
          Dst:             str_c
        - Src:             'tst-duplicate.c:396,10'
          Dst:             mail_get_first_header_utf8
        - Src:             'tst-duplicate.c:399,12'
          Dst:             str_c
        - Src:             'tst-duplicate.c:399,12'
          Dst:             sieve_runtime_mail_error
        - Src:             'tst-duplicate.c:407,14'
          Dst:             strlen
        - Src:             'tst-duplicate.c:414,9'
          Dst:             ext_duplicate_check
        - Src:             'tst-duplicate.c:422,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-duplicate.c:425,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-duplicate.c:430,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_duplicate_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tst-duplicate.c:269,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tst-duplicate.c:253,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-duplicate.c:254,2'
          Dst:             sieve_code_descend
        - Src:             'tst-duplicate.c:262,14'
          Dst:             sieve_opr_optional_dump
        - Src:             'tst-duplicate.c:271,11'
          Dst:             sieve_opr_number_dump
        - Src:             'tst-duplicate.c:274,4'
          Dst:             sieve_code_dumpf
        - Src:             'tst-duplicate.c:277,11'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-duplicate.c:281,12'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-duplicate.c:284,12'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-duplicate.c:289,11'
          Dst:             sieve_opr_string_dump
    - functionName:    tst_duplicate_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-duplicate.c:235,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-duplicate.c:237,7'
          Dst:             sieve_generate_arguments
    - functionName:    tst_duplicate_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/tst-duplicate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-duplicate.c:213,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-duplicate.c:215,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-duplicate.c:217,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-duplicate.c:219,2'
          Dst:             sieve_validator_register_tag
        - Src:             'tst-duplicate.c:222,2'
          Dst:             sieve_validator_register_tag
    - functionName:    ext_index_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/ext-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-index.c:51,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-index.c:53,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-index.c:56,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-index.c:58,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-index.c:61,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-index.c:63,2'
          Dst:             sieve_validator_register_external_tag
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_message_override_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-message.h:159,2'
          Dst:             sieve_opr_object_emit
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    svmo_index_header_override
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_index_stringlist_create
        - sieve_runtime_trace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:269,2'
          Dst:             sieve_runtime_trace
        - Src:             'tag-index.c:274,13'
          Dst:             sieve_index_stringlist_create
    - functionName:    svmo_index_read_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          101
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_read_byte
        - sieve_binary_read_integer
        - sieve_result_pool
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:232,16'
          Dst:             sieve_result_pool
        - Src:             'tag-index.c:237,7'
          Dst:             sieve_binary_read_integer
        - Src:             'tag-index.c:238,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tag-index.c:242,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tag-index.c:245,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-index.c:246,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tag-index.c:250,8'
          Dst:             malloc_multiply_check
        - Src:             'tag-index.c:250,8'
          Dst:             p_malloc
    - functionName:    svmo_index_dump_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_byte
        - sieve_binary_read_integer
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:213,7'
          Dst:             sieve_binary_read_integer
        - Src:             'tag-index.c:217,2'
          Dst:             sieve_code_dumpf
        - Src:             'tag-index.c:219,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-index.c:223,3'
          Dst:             sieve_code_dumpf
    - functionName:    tag_last_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_arguments_detach
        - sieve_ast_pool
        - sieve_command_find_argument
        - sieve_command_type_name
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:144,14'
          Dst:             sieve_command_find_argument
        - Src:             'tag-index.c:146,3'
          Dst:             sieve_command_type_name
        - Src:             'tag-index.c:146,3'
          Dst:             sieve_validator_error
        - Src:             'tag-index.c:157,10'
          Dst:             sieve_ast_pool
        - Src:             'tag-index.c:157,10'
          Dst:             malloc_multiply_check
        - Src:             'tag-index.c:157,10'
          Dst:             p_malloc
        - Src:             'tag-index.c:165,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tag_index_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          130
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_arguments_detach
        - sieve_ast_pool
        - sieve_command_type_name
        - sieve_validate_tag_parameter
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:112,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tag-index.c:117,10'
          Dst:             sieve_ast_pool
        - Src:             'tag-index.c:117,10'
          Dst:             malloc_multiply_check
        - Src:             'tag-index.c:117,10'
          Dst:             p_malloc
        - Src:             'tag-index.c:125,3'
          Dst:             sieve_command_type_name
        - Src:             'tag-index.c:125,3'
          Dst:             sieve_validator_error
        - Src:             'tag-index.c:133,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tag_index_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/index/tag-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_binary_emit_integer
        - sieve_opr_message_override_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-index.c:184,2'
          Dst:             sieve_opr_message_override_emit
        - Src:             'tag-index.c:187,8'
          Dst:             sieve_binary_emit_integer
        - Src:             'tag-index.c:188,8'
          Dst:             sieve_binary_emit_byte
    - functionName:    ext_servermetadata_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/ext-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-metadata.c:80,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-metadata.c:81,2'
          Dst:             sieve_validator_register_command
    - functionName:    ext_mboxmetadata_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/ext-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-metadata.c:44,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-metadata.c:45,2'
          Dst:             sieve_validator_register_command
    - functionName:    tst_metadata_get_annotation
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          151
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - imap_metadata_get
        - imap_metadata_transaction_begin
        - imap_metadata_transaction_begin_server
        - imap_metadata_transaction_commit
        - imap_metadata_transaction_get_last_error
        - mail_namespace_find
        - mailbox_alloc
        - mailbox_free
        - sieve_error_from_external
        - sieve_runtime_error
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:283,8'
          Dst:             mail_namespace_find
        - Src:             'tst-metadata.c:284,9'
          Dst:             mailbox_alloc
        - Src:             'tst-metadata.c:285,13'
          Dst:             imap_metadata_transaction_begin
        - Src:             'tst-metadata.c:288,13'
          Dst:             imap_metadata_transaction_begin_server
        - Src:             'tst-metadata.c:292,8'
          Dst:             imap_metadata_get
        - Src:             'tst-metadata.c:297,11'
          Dst:             imap_metadata_transaction_get_last_error
        - Src:             'tst-metadata.c:300,3'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:300,3'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadata.c:300,3'
          Dst:             sieve_runtime_error
        - Src:             'tst-metadata.c:315,8'
          Dst:             imap_metadata_transaction_commit
        - Src:             'tst-metadata.c:317,3'
          Dst:             mailbox_free
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_metadata_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          269
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - imap_metadata_verify_entry_name
        - sieve_error_from_external
        - sieve_interpreter_set_test_result
        - sieve_mailbox_check_name
        - sieve_match
        - sieve_match_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_warning
        - sieve_single_stringlist_create_cstr
        - str_c
        - str_sanitize
        - tst_metadata_get_annotation
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:340,6'
          Dst:             sieve_match_opr_optional_read
        - Src:             'tst-metadata.c:346,9'
          Dst:             sieve_opr_string_read
        - Src:             'tst-metadata.c:352,8'
          Dst:             sieve_opr_string_read
        - Src:             'tst-metadata.c:357,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-metadata.c:366,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadata.c:369,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadata.c:372,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-metadata.c:374,39'
          Dst:             str_c
        - Src:             'tst-metadata.c:374,7'
          Dst:             imap_metadata_verify_entry_name
        - Src:             'tst-metadata.c:375,3'
          Dst:             str_c
        - Src:             'tst-metadata.c:375,3'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:375,3'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadata.c:375,3'
          Dst:             sieve_runtime_warning
        - Src:             'tst-metadata.c:381,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-metadata.c:386,33'
          Dst:             str_c
        - Src:             'tst-metadata.c:386,8'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-metadata.c:387,4'
          Dst:             str_c
        - Src:             'tst-metadata.c:387,4'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:387,4'
          Dst:             sieve_runtime_warning
        - Src:             'tst-metadata.c:391,4'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-metadata.c:398,17'
          Dst:             str_c
        - Src:             'tst-metadata.c:398,4'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:399,17'
          Dst:             str_c
        - Src:             'tst-metadata.c:399,4'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:395,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadata.c:404,17'
          Dst:             str_c
        - Src:             'tst-metadata.c:404,4'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:401,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadata.c:409,20'
          Dst:             str_c
        - Src:             'tst-metadata.c:410,8'
          Dst:             str_c
        - Src:             'tst-metadata.c:408,8'
          Dst:             tst_metadata_get_annotation
        - Src:             'tst-metadata.c:415,17'
          Dst:             sieve_single_stringlist_create_cstr
        - Src:             'tst-metadata.c:419,12'
          Dst:             sieve_match
        - Src:             'tst-metadata.c:430,3'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_metadata_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:244,3'
          Dst:             sieve_code_dumpf
        - Src:             'tst-metadata.c:246,3'
          Dst:             sieve_code_dumpf
        - Src:             'tst-metadata.c:248,2'
          Dst:             sieve_code_descend
        - Src:             'tst-metadata.c:251,6'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'tst-metadata.c:253,19'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-metadata.c:256,10'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-metadata.c:257,3'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_metadata_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:218,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-metadata.c:221,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-metadata.c:224,3'
          Dst:             i_unreached
        - Src:             'tst-metadata.c:228,7'
          Dst:             sieve_generate_arguments
    - functionName:    tst_metadata_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:122,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'tst-metadata.c:124,2'
          Dst:             sieve_match_types_link_tags
    - functionName:    tst_metadata_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          230
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - imap_metadata_verify_entry_name
        - sieve_error_from_external
        - sieve_mailbox_check_name
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadata.c:146,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-metadata.c:151,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-metadata.c:157,26'
          Dst:             str_c
        - Src:             'tst-metadata.c:160,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-metadata.c:161,5'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:161,5'
          Dst:             sieve_validator_warning
        - Src:             'tst-metadata.c:172,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-metadata.c:177,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-metadata.c:183,40'
          Dst:             str_c
        - Src:             'tst-metadata.c:183,8'
          Dst:             imap_metadata_verify_entry_name
        - Src:             'tst-metadata.c:184,4'
          Dst:             str_c
        - Src:             'tst-metadata.c:184,4'
          Dst:             str_sanitize
        - Src:             'tst-metadata.c:184,4'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadata.c:184,4'
          Dst:             sieve_validator_warning
        - Src:             'tst-metadata.c:196,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-metadata.c:201,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-metadata.c:205,9'
          Dst:             sieve_match_type_validate
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_metadataexists_check_annotation
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - imap_metadata_get
        - imap_metadata_transaction_get_last_error
        - imap_metadata_verify_entry_name
        - sieve_error_from_external
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_warning
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:248,7'
          Dst:             imap_metadata_verify_entry_name
        - Src:             'tst-metadataexists.c:249,3'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:249,3'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadataexists.c:249,3'
          Dst:             sieve_runtime_warning
        - Src:             'tst-metadataexists.c:260,8'
          Dst:             imap_metadata_get
        - Src:             'tst-metadataexists.c:265,11'
          Dst:             imap_metadata_transaction_get_last_error
        - Src:             'tst-metadataexists.c:267,3'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:267,3'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadataexists.c:267,3'
          Dst:             sieve_runtime_error
        - Src:             'tst-metadataexists.c:282,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:287,2'
          Dst:             sieve_runtime_trace
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_metadataexists_check_annotations
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          180
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - imap_metadata_transaction_begin
        - imap_metadata_transaction_begin_server
        - imap_metadata_transaction_commit
        - mail_namespace_find
        - mailbox_alloc
        - mailbox_free
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
        - tst_metadataexists_check_annotation
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:312,8'
          Dst:             mail_namespace_find
        - Src:             'tst-metadataexists.c:313,9'
          Dst:             mailbox_alloc
        - Src:             'tst-metadataexists.c:314,13'
          Dst:             imap_metadata_transaction_begin
        - Src:             'tst-metadataexists.c:316,13'
          Dst:             imap_metadata_transaction_begin_server
        - Src:             'tst-metadataexists.c:323,4'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:320,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:325,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:333,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-metadataexists.c:335,28'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:334,9'
          Dst:             tst_metadataexists_check_annotation
        - Src:             'tst-metadataexists.c:343,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-metadataexists.c:348,8'
          Dst:             imap_metadata_transaction_commit
        - Src:             'tst-metadataexists.c:350,3'
          Dst:             mailbox_free
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_metadataexists_annotation_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imap_metadata_verify_entry_name
        - sieve_error_from_external
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:122,23'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:125,8'
          Dst:             imap_metadata_verify_entry_name
        - Src:             'tst-metadataexists.c:126,4'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:126,4'
          Dst:             sieve_error_from_external
        - Src:             'tst-metadataexists.c:126,4'
          Dst:             sieve_validator_warning
    - functionName:    tst_metadataexists_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          191
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - sieve_interpreter_set_test_result
        - sieve_mailbox_check_name
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_warning
        - str_c
        - str_sanitize
        - tst_metadataexists_check_annotations
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:374,9'
          Dst:             sieve_opr_string_read
        - Src:             'tst-metadataexists.c:380,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-metadataexists.c:390,32'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:390,7'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-metadataexists.c:391,3'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:391,3'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:391,3'
          Dst:             sieve_runtime_warning
        - Src:             'tst-metadataexists.c:395,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-metadataexists.c:399,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-metadataexists.c:401,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:404,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:408,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-metadataexists.c:410,11'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-metadataexists.c:414,21'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:413,8'
          Dst:             tst_metadataexists_check_annotations
        - Src:             'tst-metadataexists.c:420,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:423,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-metadataexists.c:428,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_metadataexists_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:222,3'
          Dst:             sieve_code_dumpf
        - Src:             'tst-metadataexists.c:224,3'
          Dst:             sieve_code_dumpf
        - Src:             'tst-metadataexists.c:226,2'
          Dst:             sieve_code_descend
        - Src:             'tst-metadataexists.c:228,19'
          Dst:             sieve_opr_string_dump
        - Src:             'tst-metadataexists.c:231,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_metadataexists_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:197,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-metadataexists.c:200,3'
          Dst:             sieve_operation_emit
        - Src:             'tst-metadataexists.c:203,3'
          Dst:             i_unreached
        - Src:             'tst-metadataexists.c:207,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_metadataexists_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/metadata/tst-metadataexists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          155
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - sieve_ast_stringlist_map
        - sieve_mailbox_check_name
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_warning
        - str_c
        - str_sanitize
        - tst_metadataexists_annotation_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-metadataexists.c:147,8'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-metadataexists.c:152,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-metadataexists.c:157,26'
          Dst:             str_c
        - Src:             'tst-metadataexists.c:160,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-metadataexists.c:161,5'
          Dst:             str_sanitize
        - Src:             'tst-metadataexists.c:161,5'
          Dst:             sieve_validator_warning
        - Src:             'tst-metadataexists.c:171,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-metadataexists.c:175,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-metadataexists.c:183,10'
          Dst:             sieve_ast_stringlist_map
        - Src:             'tst-metadataexists.c:183,10'
          Dst:             tst_metadataexists_annotation_validate
    - 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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    ext_extracttext_validator_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          110
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_ext_variables_is_active
        - sieve_validator_error
        - sieve_validator_extension_loaded
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extracttext.c:117,7'
          Dst:             sieve_ext_variables_is_active
        - Src:             'ext-extracttext.c:118,3'
          Dst:             sieve_validator_error
        - Src:             'ext-extracttext.c:125,7'
          Dst:             sieve_validator_extension_loaded
        - Src:             'ext-extracttext.c:126,3'
          Dst:             sieve_validator_error
    - functionName:    ext_extracttext_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_extension_register
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extracttext.c:98,2'
          Dst:             sieve_validator_extension_register
        - Src:             'ext-extracttext.c:102,2'
          Dst:             sieve_validator_register_command
    - functionName:    ext_extracttext_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ext_variables_get_extension
        - sieve_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extracttext.c:56,6'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'ext-extracttext.c:58,6'
          Dst:             sieve_extension_register
        - Src:             'ext-extracttext.c:62,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-extracttext.c:62,11'
          Dst:             p_malloc
    - functionName:    ext_extracttext_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extracttext.c:74,2'
          Dst:             p_free_internal
    - functionName:    ext_foreverypart_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-foreverypart.c:59,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-foreverypart.c:60,2'
          Dst:             sieve_validator_register_command
    - functionName:    ext_mime_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-mime.c:54,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:56,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:58,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:60,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:62,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:64,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:67,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:69,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:72,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-mime.c:74,2'
          Dst:             sieve_validator_register_external_tag
    - functionName:    sieve_header_list_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-message.h:89,9'
          Dst:             sieve_stringlist_get_length
    - functionName:    sieve_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_header_list_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-message.h:95,2'
          Dst:             sieve_stringlist_set_trace
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_header_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-message.h:83,2'
          Dst:             sieve_stringlist_reset
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:77,2'
          Dst:             buffer_delete
    - 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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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_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:    content_header_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          357
      EdgeCount:       82
      CyclomaticComplexity: 17
      functionsReached:
        - content_type_param_next
        - i_panic
        - rfc2231_parse
        - rfc822_parse_content_type
        - rfc822_parse_mime_token
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - sieve_runtime_trace
        - str_c
        - str_data
        - str_delete
        - str_len
        - str_truncate
        - strcasecmp
        - strchr
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'tag-mime.c:419,3'
          Branch Sides:    []
      Callsites:
        - Src:             'tag-mime.c:365,6'
          Dst:             strcasecmp
        - Src:             'tag-mime.c:367,11'
          Dst:             strcasecmp
        - Src:             'tag-mime.c:369,4'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:373,10'
          Dst:             t_str_new
        - Src:             'tag-mime.c:377,30'
          Dst:             str_data
        - Src:             'tag-mime.c:377,45'
          Dst:             str_len
        - Src:             'tag-mime.c:377,2'
          Dst:             rfc822_parser_init
        - Src:             'tag-mime.c:378,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'tag-mime.c:381,12'
          Dst:             t_str_new
        - Src:             'tag-mime.c:383,7'
          Dst:             rfc822_parse_content_type
        - Src:             'tag-mime.c:384,4'
          Dst:             str_truncate
        - Src:             'tag-mime.c:388,7'
          Dst:             rfc822_parse_mime_token
        - Src:             'tag-mime.c:389,4'
          Dst:             str_truncate
        - Src:             'tag-mime.c:395,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'tag-mime.c:397,3'
          Dst:             str_truncate
        - Src:             'tag-mime.c:405,3'
          Dst:             i_panic
        - Src:             'tag-mime.c:409,3'
          Dst:             str_truncate
        - Src:             'tag-mime.c:410,3'
          Dst:             rfc2231_parse
        - Src:             'tag-mime.c:412,15'
          Dst:             content_type_param_next
        - Src:             'tag-mime.c:417,10'
          Dst:             str_c
        - Src:             'tag-mime.c:418,7'
          Dst:             strchr
        - Src:             'tag-mime.c:422,5'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:426,5'
          Dst:             i_panic
        - Src:             'tag-mime.c:427,5'
          Dst:             str_truncate
        - Src:             'tag-mime.c:432,5'
          Dst:             i_panic
        - Src:             'tag-mime.c:434,6'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:438,5'
          Dst:             str_truncate
        - Src:             'tag-mime.c:442,4'
          Dst:             i_panic
        - Src:             'tag-mime.c:444,5'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:447,4'
          Dst:             str_delete
        - Src:             'tag-mime.c:450,4'
          Dst:             sieve_runtime_trace
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    content_type_param_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          191
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - sieve_runtime_trace
        - strcasecmp
        - strlen
        - t_str_new_const
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:313,2'
          Dst:             i_panic
        - Src:             'tag-mime.c:319,17'
          Dst:             strlen
        - Src:             'tag-mime.c:323,24'
          Dst:             strlen
        - Src:             'tag-mime.c:330,9'
          Dst:             strcasecmp
        - Src:             'tag-mime.c:333,7'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:339,36'
          Dst:             strlen
        - Src:             'tag-mime.c:339,13'
          Dst:             t_str_new_const
    - functionName:    sieve_header_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    content_header_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_header_list_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:509,9'
          Dst:             sieve_header_list_get_length
    - functionName:    content_header_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_header_list_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:519,2'
          Dst:             sieve_header_list_set_trace
    - functionName:    content_header_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_header_list_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:500,2'
          Dst:             sieve_header_list_reset
    - functionName:    content_header_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - content_header_parse
        - content_type_param_next
        - i_panic
        - sieve_header_list_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:474,3'
          Dst:             i_panic
        - Src:             'tag-mime.c:475,15'
          Dst:             content_type_param_next
        - Src:             'tag-mime.c:482,8'
          Dst:             sieve_header_list_next_item
        - Src:             'tag-mime.c:491,11'
          Dst:             content_header_parse
    - functionName:    sieve_runtime_trace_ascend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    content_header_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:284,12'
          Dst:             malloc_multiply_check
        - Src:             'tag-mime.c:284,12'
          Dst:             t_malloc0
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_message_override_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-message.h'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-message.h:159,2'
          Dst:             sieve_opr_object_emit
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    tag_mime_get_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:128,10'
          Dst:             sieve_ast_pool
        - Src:             'tag-mime.c:128,10'
          Dst:             malloc_multiply_check
        - Src:             'tag-mime.c:128,10'
          Dst:             p_malloc
    - functionName:    svmo_mime_header_override
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          193
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - content_header_stringlist_create
        - ext_foreverypart_runtime_loop_get_current
        - i_unreached
        - sieve_message_header_list_create
        - sieve_message_part_iter_init
        - sieve_mime_header_list_create
        - sieve_runtime_trace
        - sieve_runtime_trace_ascend
        - sieve_runtime_trace_descend
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tag-mime.c:667,2'
          Branch Sides:    []
      Callsites:
        - Src:             'tag-mime.c:633,2'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:635,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tag-mime.c:638,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:642,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:647,12'
          Dst:             ext_foreverypart_runtime_loop_get_current
        - Src:             'tag-mime.c:649,13'
          Dst:             sieve_mime_header_list_create
        - Src:             'tag-mime.c:655,9'
          Dst:             sieve_message_part_iter_init
        - Src:             'tag-mime.c:659,13'
          Dst:             sieve_mime_header_list_create
        - Src:             'tag-mime.c:662,13'
          Dst:             sieve_message_header_list_create
        - Src:             'tag-mime.c:671,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:676,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:681,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:686,3'
          Dst:             sieve_runtime_trace
        - Src:             'tag-mime.c:691,3'
          Dst:             i_unreached
        - Src:             'tag-mime.c:695,12'
          Dst:             content_header_stringlist_create
        - Src:             'tag-mime.c:700,2'
          Dst:             sieve_runtime_trace_ascend
    - functionName:    svmo_mime_read_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_read_byte
        - sieve_opr_stringlist_read
        - sieve_result_pool
        - sieve_runtime_trace_error
        - sieve_stringlist_read_all
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:581,16'
          Dst:             sieve_result_pool
        - Src:             'tag-mime.c:587,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-mime.c:588,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tag-mime.c:592,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-mime.c:594,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tag-mime.c:600,13'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tag-mime.c:604,8'
          Dst:             malloc_multiply_check
        - Src:             'tag-mime.c:604,8'
          Dst:             p_malloc
        - Src:             'tag-mime.c:609,6'
          Dst:             sieve_stringlist_read_all
        - Src:             'tag-mime.c:610,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    svmo_mime_dump_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_read_byte
        - sieve_code_ascend
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tag-mime.c:551,2'
          Branch Sides:    []
      Callsites:
        - Src:             'tag-mime.c:543,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-mime.c:546,3'
          Dst:             sieve_code_dumpf
        - Src:             'tag-mime.c:548,7'
          Dst:             sieve_binary_read_byte
        - Src:             'tag-mime.c:555,3'
          Dst:             sieve_code_dumpf
        - Src:             'tag-mime.c:558,3'
          Dst:             sieve_code_dumpf
        - Src:             'tag-mime.c:561,3'
          Dst:             sieve_code_dumpf
        - Src:             'tag-mime.c:564,3'
          Dst:             sieve_code_dumpf
        - Src:             'tag-mime.c:565,3'
          Dst:             sieve_code_descend
        - Src:             'tag-mime.c:566,8'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tag-mime.c:568,3'
          Dst:             sieve_code_ascend
    - functionName:    tag_mime_option_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          223
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_unreached
        - sieve_ast_arguments_detach
        - sieve_command_find_argument
        - sieve_command_type_name
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - tag_mime_get_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:159,2'
          Dst:             i_panic
        - Src:             'tag-mime.c:162,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tag-mime.c:165,13'
          Dst:             sieve_command_find_argument
        - Src:             'tag-mime.c:167,3'
          Dst:             sieve_command_type_name
        - Src:             'tag-mime.c:167,3'
          Dst:             sieve_validator_error
        - Src:             'tag-mime.c:177,9'
          Dst:             tag_mime_get_data
        - Src:             'tag-mime.c:182,4'
          Dst:             sieve_validator_error
        - Src:             'tag-mime.c:200,9'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tag-mime.c:209,11'
          Dst:             sieve_ast_arguments_detach
        - Src:             'tag-mime.c:211,4'
          Dst:             i_unreached
    - functionName:    tag_mime_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tag_mime_get_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:146,8'
          Dst:             tag_mime_get_data
    - functionName:    tag_mime_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/tag-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_binary_emit_byte
        - sieve_generate_argument
        - sieve_opr_message_override_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-mime.c:231,2'
          Dst:             sieve_opr_message_override_emit
        - Src:             'tag-mime.c:234,8'
          Dst:             sieve_binary_emit_byte
        - Src:             'tag-mime.c:235,8'
          Dst:             sieve_binary_emit_byte
        - Src:             'tag-mime.c:237,7'
          Dst:             sieve_generate_argument
    - functionName:    ext_special_use_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/ext-special-use.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-special-use.c:49,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-special-use.c:54,2'
          Dst:             sieve_validator_register_command
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_opr_side_effect_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:180,2'
          Dst:             sieve_opr_object_emit
    - functionName:    seff_specialuse_pre_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          162
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_alloc_for_user
        - mailbox_free
        - mailbox_get_last_mail_error
        - mailbox_get_storage
        - mailbox_open
        - p_strdup_printf
        - sieve_act_store_get_storage_error
        - sieve_result_pool
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tag-specialuse.c:266,2'
          Branch Sides:    []
      Callsites:
        - Src:             'tag-specialuse.c:278,8'
          Dst:             mailbox_alloc_for_user
        - Src:             'tag-specialuse.c:290,36'
          Dst:             mailbox_get_storage
        - Src:             'tag-specialuse.c:291,6'
          Dst:             mailbox_open
        - Src:             'tag-specialuse.c:292,17'
          Dst:             sieve_result_pool
        - Src:             'tag-specialuse.c:295,3'
          Dst:             mailbox_free
        - Src:             'tag-specialuse.c:297,31'
          Dst:             p_strdup_printf
        - Src:             'tag-specialuse.c:302,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'tag-specialuse.c:304,4'
          Dst:             mailbox_free
        - Src:             'tag-specialuse.c:307,4'
          Dst:             mailbox_free
        - Src:             'tag-specialuse.c:309,4'
          Dst:             sieve_act_store_get_storage_error
    - functionName:    seff_specialuse_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_seffect_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-specialuse.c:242,2'
          Dst:             sieve_result_seffect_printf
    - functionName:    seff_specialuse_merge
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seff_specialuse_read_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ext_special_use_flag_valid
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_opr_string_read
        - sieve_result_pool
        - sieve_runtime_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-specialuse.c:189,16'
          Dst:             sieve_result_pool
        - Src:             'tag-specialuse.c:195,13'
          Dst:             sieve_opr_string_read
        - Src:             'tag-specialuse.c:199,13'
          Dst:             str_c
        - Src:             'tag-specialuse.c:200,7'
          Dst:             ext_special_use_flag_valid
        - Src:             'tag-specialuse.c:201,3'
          Dst:             str_sanitize
        - Src:             'tag-specialuse.c:201,3'
          Dst:             sieve_runtime_error
        - Src:             'tag-specialuse.c:208,8'
          Dst:             malloc_multiply_check
        - Src:             'tag-specialuse.c:208,8'
          Dst:             p_malloc
        - Src:             'tag-specialuse.c:209,26'
          Dst:             p_strdup
    - functionName:    seff_specialuse_dump_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-specialuse.c:180,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tag_specialuse_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_opr_side_effect_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-specialuse.c:148,2'
          Dst:             sieve_opr_side_effect_emit
    - functionName:    tag_specialuse_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tag-specialuse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_special_use_flag_valid
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-specialuse.c:111,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'tag-specialuse.c:115,26'
          Dst:             str_c
        - Src:             'tag-specialuse.c:117,8'
          Dst:             ext_special_use_flag_valid
        - Src:             'tag-specialuse.c:118,4'
          Dst:             str_sanitize
        - Src:             'tag-specialuse.c:118,4'
          Dst:             sieve_validator_error
        - Src:             'tag-specialuse.c:129,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    tst_specialuse_find_specialuse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          120
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_alloc_for_user
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_is_readonly
        - mailbox_open
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:306,15'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-specialuse-exists.c:314,8'
          Dst:             mailbox_alloc_for_user
        - Src:             'tst-specialuse-exists.c:317,6'
          Dst:             mailbox_open
        - Src:             'tst-specialuse-exists.c:318,11'
          Dst:             mailbox_get_last_internal_error
        - Src:             'tst-specialuse-exists.c:324,5'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:321,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:327,3'
          Dst:             mailbox_free
        - Src:             'tst-specialuse-exists.c:330,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:330,4'
          Dst:             sieve_runtime_error
        - Src:             'tst-specialuse-exists.c:340,6'
          Dst:             mailbox_is_readonly
        - Src:             'tst-specialuse-exists.c:345,5'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:342,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:348,3'
          Dst:             mailbox_free
        - Src:             'tst-specialuse-exists.c:352,2'
          Dst:             mailbox_free
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    tst_specialuse_exists_check_flag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - ext_special_use_flag_valid
        - mailbox_has_special_use
        - sieve_runtime_error
        - sieve_runtime_trace
        - str_sanitize
        - tst_specialuse_find_specialuse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:363,7'
          Dst:             ext_special_use_flag_valid
        - Src:             'tst-specialuse-exists.c:364,3'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:364,3'
          Dst:             sieve_runtime_error
        - Src:             'tst-specialuse-exists.c:373,8'
          Dst:             mailbox_has_special_use
        - Src:             'tst-specialuse-exists.c:379,9'
          Dst:             tst_specialuse_find_specialuse
        - Src:             'tst-specialuse-exists.c:391,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:389,3'
          Dst:             sieve_runtime_trace
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_specialuse_find_mailbox
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_alloc_for_user
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_is_readonly
        - mailbox_open
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:251,15'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-specialuse-exists.c:261,8'
          Dst:             mailbox_alloc_for_user
        - Src:             'tst-specialuse-exists.c:262,6'
          Dst:             mailbox_open
        - Src:             'tst-specialuse-exists.c:263,11'
          Dst:             mailbox_get_last_internal_error
        - Src:             'tst-specialuse-exists.c:268,5'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:266,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:271,3'
          Dst:             mailbox_free
        - Src:             'tst-specialuse-exists.c:274,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:274,4'
          Dst:             sieve_runtime_error
        - Src:             'tst-specialuse-exists.c:284,6'
          Dst:             mailbox_is_readonly
        - Src:             'tst-specialuse-exists.c:288,5'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:286,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:291,3'
          Dst:             mailbox_free
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_operand_runtime_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_read
        - sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:57,7'
          Dst:             sieve_operand_read
        - Src:             './../../sieve-code.h:58,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_is_omitted
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tst_specialuse_exists_flag_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ext_special_use_flag_valid
        - sieve_validator_error
        - str_c
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:81,22'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:83,8'
          Dst:             ext_special_use_flag_valid
        - Src:             'tst-specialuse-exists.c:84,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:84,4'
          Dst:             sieve_validator_error
    - functionName:    tst_specialuse_exists_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          309
      EdgeCount:       75
      CyclomaticComplexity: 22
      functionsReached:
        - mailbox_free
        - sieve_interpreter_set_test_result
        - sieve_mailbox_check_name
        - sieve_operand_is_omitted
        - sieve_operand_runtime_read
        - sieve_opr_string_read_data
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_runtime_warning
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize
        - tst_specialuse_exists_check_flag
        - tst_specialuse_find_mailbox
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:414,8'
          Dst:             sieve_operand_runtime_read
        - Src:             'tst-specialuse-exists.c:420,7'
          Dst:             sieve_operand_is_omitted
        - Src:             'tst-specialuse-exists.c:422,9'
          Dst:             sieve_opr_string_read_data
        - Src:             'tst-specialuse-exists.c:428,9'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-specialuse-exists.c:437,9'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-specialuse-exists.c:448,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-specialuse-exists.c:449,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:450,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'tst-specialuse-exists.c:452,11'
          Dst:             sieve_runtime_trace_active
        - Src:             'tst-specialuse-exists.c:456,33'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:456,8'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-specialuse-exists.c:457,4'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:457,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:457,4'
          Dst:             sieve_runtime_warning
        - Src:             'tst-specialuse-exists.c:461,4'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-specialuse-exists.c:465,41'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:465,7'
          Dst:             tst_specialuse_find_mailbox
        - Src:             'tst-specialuse-exists.c:472,17'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:472,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:470,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:473,3'
          Dst:             sieve_interpreter_set_test_result
        - Src:             'tst-specialuse-exists.c:480,17'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:480,4'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:478,3'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:486,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-specialuse-exists.c:488,26'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:490,9'
          Dst:             tst_specialuse_exists_check_flag
        - Src:             'tst-specialuse-exists.c:495,5'
          Dst:             mailbox_free
        - Src:             'tst-specialuse-exists.c:503,3'
          Dst:             mailbox_free
        - Src:             'tst-specialuse-exists.c:507,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-specialuse-exists.c:514,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:517,4'
          Dst:             sieve_runtime_trace
        - Src:             'tst-specialuse-exists.c:522,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_specialuse_exists_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_is_omitted
        - sieve_operand_read
        - sieve_opr_string_dump_data
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:221,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-specialuse-exists.c:222,2'
          Dst:             sieve_code_descend
        - Src:             'tst-specialuse-exists.c:224,2'
          Dst:             sieve_code_mark
        - Src:             'tst-specialuse-exists.c:225,7'
          Dst:             sieve_operand_read
        - Src:             'tst-specialuse-exists.c:226,3'
          Dst:             sieve_code_dumpf
        - Src:             'tst-specialuse-exists.c:230,7'
          Dst:             sieve_operand_is_omitted
        - Src:             'tst-specialuse-exists.c:231,11'
          Dst:             sieve_opr_string_dump_data
        - Src:             'tst-specialuse-exists.c:233,11'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'tst-specialuse-exists.c:237,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_specialuse_exists_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_generate_argument
        - sieve_operation_emit
        - sieve_opr_omitted_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:196,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-specialuse-exists.c:202,8'
          Dst:             sieve_generate_argument
        - Src:             'tst-specialuse-exists.c:205,3'
          Dst:             sieve_opr_omitted_emit
        - Src:             'tst-specialuse-exists.c:208,9'
          Dst:             sieve_generate_argument
    - functionName:    tst_specialuse_exists_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          295
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - sieve_ast_argument_type_name
        - sieve_ast_stringlist_map
        - sieve_command_type_name
        - sieve_mailbox_check_name
        - sieve_validator_argument_activate
        - sieve_validator_error
        - sieve_validator_warning
        - str_c
        - str_sanitize
        - tst_specialuse_exists_flag_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-specialuse-exists.c:105,3'
          Dst:             sieve_command_type_name
        - Src:             'tst-specialuse-exists.c:105,3'
          Dst:             sieve_validator_error
        - Src:             'tst-specialuse-exists.c:115,3'
          Dst:             sieve_command_type_name
        - Src:             'tst-specialuse-exists.c:115,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'tst-specialuse-exists.c:115,3'
          Dst:             sieve_validator_error
        - Src:             'tst-specialuse-exists.c:130,4'
          Dst:             sieve_command_type_name
        - Src:             'tst-specialuse-exists.c:130,4'
          Dst:             sieve_ast_argument_type_name
        - Src:             'tst-specialuse-exists.c:130,4'
          Dst:             sieve_validator_error
        - Src:             'tst-specialuse-exists.c:140,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-specialuse-exists.c:145,26'
          Dst:             str_c
        - Src:             'tst-specialuse-exists.c:148,9'
          Dst:             sieve_mailbox_check_name
        - Src:             'tst-specialuse-exists.c:149,5'
          Dst:             str_sanitize
        - Src:             'tst-specialuse-exists.c:149,5'
          Dst:             sieve_validator_warning
        - Src:             'tst-specialuse-exists.c:159,4'
          Dst:             sieve_command_type_name
        - Src:             'tst-specialuse-exists.c:159,4'
          Dst:             sieve_ast_argument_type_name
        - Src:             'tst-specialuse-exists.c:159,4'
          Dst:             sieve_validator_error
        - Src:             'tst-specialuse-exists.c:172,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'tst-specialuse-exists.c:180,10'
          Dst:             sieve_ast_stringlist_map
        - Src:             'tst-specialuse-exists.c:180,10'
          Dst:             tst_specialuse_exists_flag_validate
    - 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:             'dovecot/src/lib/lib.h:75,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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_extlists_name_normalize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          122
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - strcmp
        - t_str_lcase
        - t_strconcat
        - uri_check
        - uri_cut_scheme
        - urn_normalize
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-settings.c:87,9'
          Dst:             t_strconcat
        - Src:             'ext-extlists-settings.c:88,6'
          Dst:             uri_cut_scheme
        - Src:             'ext-extlists-settings.c:92,11'
          Dst:             t_str_lcase
        - Src:             'ext-extlists-settings.c:93,6'
          Dst:             strcmp
        - Src:             'ext-extlists-settings.c:94,7'
          Dst:             urn_normalize
        - Src:             'ext-extlists-settings.c:96,15'
          Dst:             t_strconcat
        - Src:             'ext-extlists-settings.c:99,11'
          Dst:             t_strconcat
        - Src:             'ext-extlists-settings.c:101,13'
          Dst:             strcmp
        - Src:             'ext-extlists-settings.c:102,7'
          Dst:             uri_check
        - Src:             'ext-extlists-settings.c:103,15'
          Dst:             t_strconcat
        - Src:             'ext-extlists-settings.c:107,11'
          Dst:             t_strconcat
        - Src:             'ext-extlists-settings.c:110,13'
          Dst:             t_strconcat
    - functionName:    ext_extlists_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - ext_extlists_name_normalize
        - i_memcpy
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-settings.c:144,6'
          Dst:             array_is_created_i
        - Src:             'ext-extlists-settings.c:145,3'
          Dst:             i_memcpy
        - Src:             'ext-extlists-settings.c:147,8'
          Dst:             ext_extlists_name_normalize
        - Src:             'ext-extlists-settings.c:149,16'
          Dst:             t_strdup_printf
    - functionName:    ext_extlists_list_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_extlists_name_normalize
        - p_strdup
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-settings.c:124,7'
          Dst:             ext_extlists_name_normalize
        - Src:             'ext-extlists-settings.c:125,15'
          Dst:             t_strdup_printf
        - Src:             'ext-extlists-settings.c:129,22'
          Dst:             p_strdup
    - functionName:    ext_extlists_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_match_type_register
        - sieve_validator_register_command
        - sieve_validator_register_external_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists.c:50,2'
          Dst:             sieve_validator_register_command
        - Src:             'ext-extlists.c:56,2'
          Dst:             sieve_validator_register_external_tag
        - Src:             'ext-extlists.c:59,2'
          Dst:             sieve_match_type_register
    - functionName:    match_list_match
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/mcht-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - ext_extlists_lookup
        - i_panic
        - sieve_match_values_add_cstr
        - sieve_match_values_are_enabled
        - sieve_match_values_commit
        - sieve_match_values_start
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-list.c:75,23'
          Dst:             sieve_match_values_are_enabled
        - Src:             'mcht-list.c:79,22'
          Dst:             ext_extlists_lookup
        - Src:             'mcht-list.c:90,4'
          Dst:             i_panic
        - Src:             'mcht-list.c:91,14'
          Dst:             sieve_match_values_start
        - Src:             'mcht-list.c:92,4'
          Dst:             sieve_match_values_add_cstr
        - Src:             'mcht-list.c:93,4'
          Dst:             sieve_match_values_commit
    - functionName:    mcht_list_validate_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/mcht-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mcht-list.c:53,3'
          Dst:             sieve_validator_error
    - functionName:    tag_redirect_list_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/tag-redirect-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tag-redirect-list.c:41,2'
          Dst:             sieve_validator_error
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    tst_vextlist_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/tst-valid-ext-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ext_extlists_runtime_ext_list_validate
        - sieve_interpreter_set_test_result
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_runtime_warning
        - sieve_stringlist_next_item
        - str_c
        - str_sanitize_utf8
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-ext-list.c:126,8'
          Dst:             sieve_opr_stringlist_read
        - Src:             'tst-valid-ext-list.c:135,2'
          Dst:             sieve_runtime_trace
        - Src:             'tst-valid-ext-list.c:138,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'tst-valid-ext-list.c:142,10'
          Dst:             ext_extlists_runtime_ext_list_validate
        - Src:             'tst-valid-ext-list.c:151,4'
          Dst:             str_c
        - Src:             'tst-valid-ext-list.c:151,4'
          Dst:             str_sanitize_utf8
        - Src:             'tst-valid-ext-list.c:151,4'
          Dst:             sieve_runtime_warning
        - Src:             'tst-valid-ext-list.c:163,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'tst-valid-ext-list.c:168,2'
          Dst:             sieve_interpreter_set_test_result
    - functionName:    tst_vextlist_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/tst-valid-ext-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-ext-list.c:102,2'
          Dst:             sieve_code_dumpf
        - Src:             'tst-valid-ext-list.c:103,2'
          Dst:             sieve_code_descend
        - Src:             'tst-valid-ext-list.c:105,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    tst_vextlist_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/tst-valid-ext-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-ext-list.c:88,2'
          Dst:             sieve_operation_emit
        - Src:             'tst-valid-ext-list.c:91,9'
          Dst:             sieve_generate_arguments
    - functionName:    tst_vextlist_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/tst-valid-ext-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tst-valid-ext-list.c:72,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'tst-valid-ext-list.c:77,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    ext_debug_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/ext-debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_error_handler_accept_infolog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-debug.c:65,3'
          Dst:             sieve_error_handler_accept_infolog
    - functionName:    ext_debug_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/ext-debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-debug.c:54,2'
          Dst:             sieve_validator_register_command
    - 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:    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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/./../../variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    sieve_ext_environment_require_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/./../../environment/sieve-ext-environment.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../environment/sieve-ext-environment.h:26,9'
          Dst:             sieve_extension_require
    - functionName:    ext_vnd_environment_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_vnd_environment_items_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment.c:130,2'
          Dst:             ext_vnd_environment_items_register
    - functionName:    ext_vnd_environment_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_environment_variables_init
        - sieve_validator_extension_load_implicit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment.c:112,12'
          Dst:             sieve_validator_extension_load_implicit
        - Src:             'ext-vnd-environment.c:117,2'
          Dst:             ext_environment_variables_init
    - functionName:    ext_vnd_environment_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment.c:96,2'
          Dst:             pool_unref
        - Src:             'ext-vnd-environment.c:97,2'
          Dst:             p_free_internal
    - functionName:    ext_vnd_environment_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
        - sieve_ext_environment_require_extension
        - sieve_ext_variables_get_extension
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment.c:69,6'
          Dst:             sieve_ext_environment_require_extension
        - Src:             'ext-vnd-environment.c:71,6'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'ext-vnd-environment.c:74,6'
          Dst:             settings_get
        - Src:             'ext-vnd-environment.c:77,3'
          Dst:             e_error
        - Src:             'ext-vnd-environment.c:81,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-vnd-environment.c:81,11'
          Dst:             p_malloc
    - functionName:    ext_report_settings_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_address_source_parse
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-report-settings.c:47,7'
          Dst:             sieve_address_source_parse
        - Src:             'ext-vnd-report-settings.c:48,14'
          Dst:             t_strdup_printf
    - functionName:    ext_report_validator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_command
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-report.c:51,2'
          Dst:             sieve_validator_register_command
    - functionName:    stream_reset_to
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2110
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_seek
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:2109,2'
          Dst:             i_stream_seek
    - 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:             'dovecot/src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    merge_from_parent
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1785
      functionLinenumberEnd: 1886
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          541
      EdgeCount:       97
      CyclomaticComplexity: 22
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_get_data
        - i_stream_read
        - i_stream_seek
        - i_stream_try_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1793,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:1798,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:1814,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:1819,2'
          Dst:             i_stream_seek
        - Src:             'edit-mail.c:1822,9'
          Dst:             i_stream_get_data
        - Src:             'edit-mail.c:1828,9'
          Dst:             i_stream_read
        - Src:             'edit-mail.c:1833,10'
          Dst:             i_stream_get_data
        - Src:             'edit-mail.c:1858,9'
          Dst:             i_stream_try_alloc
        - Src:             'edit-mail.c:1862,4'
          Dst:             i_memcpy
        - Src:             'edit-mail.c:1883,2'
          Dst:             i_panic
    - functionName:    merge_modified_headers
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1889
      functionLinenumberEnd: 1963
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          342
      EdgeCount:       60
      CyclomaticComplexity: 13
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_try_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1902,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:1911,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:1917,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:1923,9'
          Dst:             i_stream_try_alloc
        - Src:             'edit-mail.c:1931,4'
          Dst:             i_memcpy
        - Src:             'edit-mail.c:1961,2'
          Dst:             i_panic
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    edit_mail_set_cache_corrupted
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1715
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_expunge
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1703
      functionLinenumberEnd: 1705
      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:    edit_mail_update_pop3_uidl
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1693
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_update_pvt_modseq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1685
      functionLinenumberEnd: 1690
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_update_modseq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1677
      functionLinenumberEnd: 1681
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_update_keywords
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1669
      functionLinenumberEnd: 1674
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_update_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1659
      functionLinenumberEnd: 1664
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_backend_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1653
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - edit_mail_get_mail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1652,17'
          Dst:             edit_mail_get_mail
    - functionName:    edit_mail_get_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_special
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1645
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'edit-mail.c:1629,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    edit_mail_get_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1598
      functionLinenumberEnd: 1617
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          109
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - edit_mail_istream_create
        - i_stream_seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1602,20'
          Dst:             edit_mail_istream_create
        - Src:             'edit-mail.c:1615,2'
          Dst:             i_stream_seek
    - functionName:    edit_mail_istream_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2245
      functionLinenumberEnd: 2272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          132
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_create
        - i_stream_seek
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:2249,13'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:2249,13'
          Dst:             p_malloc
        - Src:             'edit-mail.c:2250,19'
          Dst:             pool_alloconly_create
        - Src:             'edit-mail.c:2270,2'
          Dst:             i_stream_seek
        - Src:             'edit-mail.c:2272,9'
          Dst:             i_stream_create
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    edit_mail_istream_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1773
      functionLinenumberEnd: 1780
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_free_buffer
        - i_stream_unref
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1777,2'
          Dst:             i_stream_unref
        - Src:             'edit-mail.c:1778,2'
          Dst:             i_stream_free_buffer
        - Src:             'edit-mail.c:1779,2'
          Dst:             pool_unref
    - functionName:    edit_mail_istream_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1966
      functionLinenumberEnd: 2098
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          642
      EdgeCount:       94
      CyclomaticComplexity: 24
      functionsReached:
        - i_panic
        - merge_from_parent
        - merge_modified_headers
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1988,9'
          Dst:             merge_modified_headers
        - Src:             'edit-mail.c:2000,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:2024,10'
          Dst:             merge_from_parent
        - Src:             'edit-mail.c:2031,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:2042,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:2057,9'
          Dst:             merge_modified_headers
        - Src:             'edit-mail.c:2090,8'
          Dst:             merge_from_parent
    - functionName:    edit_mail_istream_seek
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2115
      functionLinenumberEnd: 2206
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          378
      EdgeCount:       60
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - stream_reset_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:2128,3'
          Dst:             stream_reset_to
        - Src:             'edit-mail.c:2145,3'
          Dst:             stream_reset_to
        - Src:             'edit-mail.c:2149,3'
          Dst:             i_panic
        - Src:             'edit-mail.c:2155,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:2172,4'
          Dst:             stream_reset_to
        - Src:             'edit-mail.c:2182,4'
          Dst:             stream_reset_to
        - Src:             'edit-mail.c:2187,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:2193,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:2204,2'
          Dst:             stream_reset_to
    - functionName:    edit_mail_istream_sync
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2211
      functionLinenumberEnd: 2211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:2211,2'
          Dst:             i_panic
    - functionName:    edit_mail_istream_stat
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2216
      functionLinenumberEnd: 2242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          125
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:2223,6'
          Dst:             i_stream_stat
    - 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:    edit_mail_get_headers
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1497
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          317
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - edit_mail_header_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1511,15'
          Dst:             edit_mail_header_find
        - Src:             'edit-mail.c:1520,3'
          Dst:             array_create_i
        - Src:             'edit-mail.c:1521,9'
          Dst:             array_append_space_i
        - Src:             'edit-mail.c:1522,14'
          Dst:             array_idx_i
        - Src:             'edit-mail.c:1536,2'
          Dst:             array_create_i
        - Src:             'edit-mail.c:1545,5'
          Dst:             array_append_i
        - Src:             'edit-mail.c:1562,4'
          Dst:             array_append_i
        - Src:             'edit-mail.c:1574,4'
          Dst:             array_append_i
        - Src:             'edit-mail.c:1579,8'
          Dst:             array_append_space_i
        - Src:             'edit-mail.c:1580,13'
          Dst:             array_idx_i
    - functionName:    edit_mail_header_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:474,7'
          Dst:             strcasecmp
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    edit_mail_get_first_header
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1424
      functionLinenumberEnd: 1492
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          257
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - edit_mail_header_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1439,15'
          Dst:             edit_mail_header_find
    - functionName:    edit_mail_get_physical_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          83
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_virtual_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          72
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_save_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_received_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1367
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1359
      functionLinenumberEnd: 1363
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_parts
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1351
      functionLinenumberEnd: 1354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_pvt_modseq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1344
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_modseq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1337
      functionLinenumberEnd: 1340
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_keyword_indexes
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1330
      functionLinenumberEnd: 1333
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_keywords
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_get_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1315
      functionLinenumberEnd: 1318
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_add_temp_wanted_fields
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_set_uid_cache_updates
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1304
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - edit_mail_unwrap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1283,2'
          Dst:             edit_mail_unwrap
    - functionName:    edit_mail_unwrap
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - edit_mail_raw_storage_drop
        - edit_mail_reset
        - edit_mail_unwrap
        - i_panic
        - i_stream_unref
        - mailbox_free
        - mailbox_transaction_rollback
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:386,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:390,2'
          Dst:             edit_mail_reset
        - Src:             'edit-mail.c:391,2'
          Dst:             i_stream_unref
        - Src:             'edit-mail.c:396,3'
          Dst:             mailbox_transaction_rollback
        - Src:             'edit-mail.c:397,3'
          Dst:             mailbox_free
        - Src:             'edit-mail.c:398,3'
          Dst:             edit_mail_raw_storage_drop
        - Src:             'edit-mail.c:401,2'
          Dst:             pool_unref
        - Src:             'edit-mail.c:405,3'
          Dst:             edit_mail_unwrap
    - functionName:    edit_mail_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - _header_field_unref
        - _header_unref
        - i_stream_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:357,2'
          Dst:             i_stream_unref
        - Src:             'edit-mail.c:363,3'
          Dst:             _header_field_unref
        - Src:             'edit-mail.c:364,3'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:373,3'
          Dst:             _header_unref
        - Src:             'edit-mail.c:374,3'
          Dst:             p_free_internal
    - functionName:    edit_mail_raw_storage_drop
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_user_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:67,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:72,2'
          Dst:             mail_user_unref
    - functionName:    _header_field_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - _header_unref
        - i_panic
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:165,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:170,3'
          Dst:             _header_unref
        - Src:             'edit-mail.c:173,3'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:175,3'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:176,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:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _header_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:137,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:141,2'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:142,2'
          Dst:             p_free_internal
    - functionName:    edit_mail_close
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _header_decode
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - message_header_decode_utf8
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:725,18'
          Dst:             t_str_new
        - Src:             'edit-mail.c:730,2'
          Dst:             message_header_decode_utf8
        - Src:             'edit-mail.c:732,18'
          Dst:             str_c
        - Src:             'edit-mail.c:732,9'
          Dst:             i_strdup
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    5
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    _header_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:123,11'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:123,11'
          Dst:             p_malloc
        - Src:             'edit-mail.c:124,17'
          Dst:             i_strdup
    - functionName:    _header_value_unfold
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          205
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - i_strdup
        - i_strndup
        - str_append_c
        - str_append_data
        - str_c
        - str_len
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'edit-mail.c:450,4'
          Branch Sides:    []
      Callsites:
        - Src:             'edit-mail.c:440,10'
          Dst:             i_strdup
        - Src:             'edit-mail.c:442,22'
          Dst:             strlen
        - Src:             'edit-mail.c:442,8'
          Dst:             t_str_new
        - Src:             'edit-mail.c:443,2'
          Dst:             str_append_data
        - Src:             'edit-mail.c:452,5'
          Dst:             str_append_c
        - Src:             'edit-mail.c:456,5'
          Dst:             str_append_c
        - Src:             'edit-mail.c:460,5'
          Dst:             str_append_c
        - Src:             'edit-mail.c:464,19'
          Dst:             str_c
        - Src:             'edit-mail.c:464,31'
          Dst:             str_len
        - Src:             'edit-mail.c:464,9'
          Dst:             i_strndup
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _header_field_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _header_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:149,11'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:149,11'
          Dst:             p_malloc
        - Src:             'edit-mail.c:153,3'
          Dst:             _header_ref
    - functionName:    _header_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 133
      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:    edit_mail_header_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - _header_create
        - edit_mail_header_find
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:488,15'
          Dst:             edit_mail_header_find
        - Src:             'edit-mail.c:490,16'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:490,16'
          Dst:             p_malloc
        - Src:             'edit-mail.c:491,24'
          Dst:             _header_create
    - functionName:    edit_mail_headers_iterate_replace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1259
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - edit_mail_header_field_replace
        - edit_mail_headers_iterate_next
        - edit_mail_modify
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1250,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:1252,2'
          Dst:             edit_mail_modify
        - Src:             'edit-mail.c:1255,9'
          Dst:             edit_mail_headers_iterate_next
        - Src:             'edit-mail.c:1256,2'
          Dst:             edit_mail_header_field_replace
    - functionName:    edit_mail_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_headers_iterate_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_header_field_replace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          695
      EdgeCount:       141
      CyclomaticComplexity: 29
      functionsReached:
        - _header_field_unref
        - _header_unref
        - edit_mail_header_field_create
        - i_panic
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:626,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:627,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:633,18'
          Dst:             edit_mail_header_field_create
        - Src:             'edit-mail.c:672,5'
          Dst:             _header_unref
        - Src:             'edit-mail.c:673,5'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:682,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:692,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:703,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:711,5'
          Dst:             i_panic
        - Src:             'edit-mail.c:717,2'
          Dst:             _header_field_unref
        - Src:             'edit-mail.c:718,2'
          Dst:             p_free_internal
    - functionName:    edit_mail_header_field_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          154
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _header_field_create
        - _header_value_unfold
        - edit_mail_header_create
        - i_panic
        - i_strndup
        - malloc_multiply_check
        - message_header_encode
        - p_malloc
        - rfc2822_header_append
        - str_c
        - str_data
        - str_len
        - strlen
        - t_pop
        - t_push
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:533,15'
          Dst:             edit_mail_header_create
        - Src:             'edit-mail.c:537,14'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:537,14'
          Dst:             p_malloc
        - Src:             'edit-mail.c:539,29'
          Dst:             _header_field_create
        - Src:             'edit-mail.c:542,2'
          Dst:             t_push
        - Src:             'edit-mail.c:545,25'
          Dst:             strlen
        - Src:             'edit-mail.c:545,46'
          Dst:             strlen
        - Src:             'edit-mail.c:545,15'
          Dst:             t_str_new
        - Src:             'edit-mail.c:546,20'
          Dst:             strlen
        - Src:             'edit-mail.c:546,41'
          Dst:             strlen
        - Src:             'edit-mail.c:546,10'
          Dst:             t_str_new
        - Src:             'edit-mail.c:548,3'
          Dst:             message_header_encode
        - Src:             'edit-mail.c:551,12'
          Dst:             str_c
        - Src:             'edit-mail.c:550,11'
          Dst:             rfc2822_header_append
        - Src:             'edit-mail.c:555,27'
          Dst:             str_data
        - Src:             'edit-mail.c:555,43'
          Dst:             str_len
        - Src:             'edit-mail.c:555,17'
          Dst:             i_strndup
        - Src:             'edit-mail.c:556,17'
          Dst:             str_len
        - Src:             'edit-mail.c:560,4'
          Dst:             t_pop
        - Src:             'edit-mail.c:560,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:563,22'
          Dst:             _header_value_unfold
    - functionName:    edit_mail_headers_iterate_remove
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - edit_mail_header_field_delete
        - edit_mail_headers_iterate_next
        - edit_mail_modify
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1232,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:1234,2'
          Dst:             edit_mail_modify
        - Src:             'edit-mail.c:1237,9'
          Dst:             edit_mail_headers_iterate_next
        - Src:             'edit-mail.c:1238,2'
          Dst:             edit_mail_header_field_delete
    - functionName:    edit_mail_header_field_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          419
      EdgeCount:       87
      CyclomaticComplexity: 18
      functionsReached:
        - _header_field_unref
        - _header_unref
        - i_panic
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:576,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:587,4'
          Dst:             _header_unref
        - Src:             'edit-mail.c:588,4'
          Dst:             p_free_internal
        - Src:             'edit-mail.c:596,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:605,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:612,2'
          Dst:             _header_field_unref
        - Src:             'edit-mail.c:613,2'
          Dst:             p_free_internal
    - functionName:    edit_mail_headers_iterate_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          118
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - strlen
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1200,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:1203,11'
          Dst:             strlen
        - Src:             'edit-mail.c:1208,13'
          Dst:             t_strndup
    - functionName:    edit_mail_headers_iterate_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1190,2'
          Dst:             p_free_internal
    - functionName:    edit_mail_headers_iterate_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          171
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - edit_mail_header_find
        - edit_mail_headers_parse
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1156,6'
          Dst:             edit_mail_headers_parse
        - Src:             'edit-mail.c:1161,15'
          Dst:             edit_mail_header_find
        - Src:             'edit-mail.c:1178,13'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:1178,13'
          Dst:             p_malloc
    - functionName:    edit_mail_headers_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         83
      ICount:          680
      EdgeCount:       104
      CyclomaticComplexity: 23
      functionsReached:
        - _header_decode
        - _header_field_create
        - _header_field_unref
        - buffer_append
        - edit_mail_header_create
        - i_error
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_seek
        - i_strndup
        - malloc_multiply_check
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - p_free_internal
        - p_malloc
        - str_data
        - str_len
        - str_truncate
        - strcasecmp
        - t_pop
        - t_push
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:752,2'
          Dst:             i_stream_seek
        - Src:             'edit-mail.c:753,12'
          Dst:             message_parse_header_init
        - Src:             'edit-mail.c:756,2'
          Dst:             t_push
        - Src:             'edit-mail.c:757,14'
          Dst:             t_str_new
        - Src:             'edit-mail.c:758,17'
          Dst:             message_parse_header_next
        - Src:             'edit-mail.c:762,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:776,8'
          Dst:             strcasecmp
        - Src:             'edit-mail.c:781,5'
          Dst:             buffer_append
        - Src:             'edit-mail.c:787,5'
          Dst:             str_truncate
        - Src:             'edit-mail.c:788,5'
          Dst:             buffer_append
        - Src:             'edit-mail.c:790,5'
          Dst:             buffer_append
        - Src:             'edit-mail.c:792,5'
          Dst:             buffer_append
        - Src:             'edit-mail.c:802,6'
          Dst:             buffer_append
        - Src:             'edit-mail.c:804,6'
          Dst:             buffer_append
        - Src:             'edit-mail.c:816,20'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:816,20'
          Dst:             p_malloc
        - Src:             'edit-mail.c:818,17'
          Dst:             edit_mail_header_create
        - Src:             'edit-mail.c:822,5'
          Dst:             _header_field_create
        - Src:             'edit-mail.c:824,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:827,24'
          Dst:             _header_decode
        - Src:             'edit-mail.c:830,18'
          Dst:             str_len
        - Src:             'edit-mail.c:832,28'
          Dst:             str_data
        - Src:             'edit-mail.c:832,18'
          Dst:             i_strndup
        - Src:             'edit-mail.c:843,4'
          Dst:             t_pop
        - Src:             'edit-mail.c:843,4'
          Dst:             i_panic
        - Src:             'edit-mail.c:845,2'
          Dst:             message_parse_header_deinit
        - Src:             'edit-mail.c:848,2'
          Dst:             i_panic
        - Src:             'edit-mail.c:853,4'
          Dst:             i_stream_get_name
        - Src:             'edit-mail.c:854,4'
          Dst:             i_stream_get_error
        - Src:             'edit-mail.c:852,3'
          Dst:             i_error
        - Src:             'edit-mail.c:859,4'
          Dst:             _header_field_unref
        - Src:             'edit-mail.c:860,4'
          Dst:             p_free_internal
    - functionName:    edit_mail_header_replace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          491
      EdgeCount:       118
      CyclomaticComplexity: 30
      functionsReached:
        - _header_unref
        - edit_mail_header_field_replace
        - edit_mail_header_find
        - edit_mail_headers_parse
        - edit_mail_modify
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1050,6'
          Dst:             edit_mail_headers_parse
        - Src:             'edit-mail.c:1054,15'
          Dst:             edit_mail_header_find
        - Src:             'edit-mail.c:1061,2'
          Dst:             edit_mail_modify
        - Src:             'edit-mail.c:1086,21'
          Dst:             edit_mail_header_field_replace
        - Src:             'edit-mail.c:1103,3'
          Dst:             _header_unref
        - Src:             'edit-mail.c:1104,3'
          Dst:             p_free_internal
    - functionName:    edit_mail_header_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          432
      EdgeCount:       106
      CyclomaticComplexity: 27
      functionsReached:
        - _header_unref
        - edit_mail_header_field_delete
        - edit_mail_header_find
        - edit_mail_headers_parse
        - edit_mail_modify
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:971,6'
          Dst:             edit_mail_headers_parse
        - Src:             'edit-mail.c:975,15'
          Dst:             edit_mail_header_find
        - Src:             'edit-mail.c:982,2'
          Dst:             edit_mail_modify
        - Src:             'edit-mail.c:1006,5'
          Dst:             edit_mail_header_field_delete
        - Src:             'edit-mail.c:1021,3'
          Dst:             _header_unref
        - Src:             'edit-mail.c:1022,3'
          Dst:             p_free_internal
    - functionName:    edit_mail_header_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 960
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          249
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - edit_mail_header_field_create
        - edit_mail_modify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:921,2'
          Dst:             edit_mail_modify
        - Src:             'edit-mail.c:923,14'
          Dst:             edit_mail_header_field_create
    - functionName:    _header_field_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edit_mail_header_clone
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - _header_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:513,15'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:513,15'
          Dst:             p_malloc
        - Src:             'edit-mail.c:515,2'
          Dst:             _header_ref
    - functionName:    edit_mail_snapshot
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          361
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - _header_field_ref
        - array_create_i
        - edit_mail_header_clone
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:282,9'
          Dst:             pool_alloconly_create
        - Src:             'edit-mail.c:283,15'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:283,15'
          Dst:             p_malloc
        - Src:             'edit-mail.c:295,2'
          Dst:             i_stream_ref
        - Src:             'edit-mail.c:300,2'
          Dst:             array_create_i
        - Src:             'edit-mail.c:317,20'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:317,20'
          Dst:             p_malloc
        - Src:             'edit-mail.c:319,28'
          Dst:             edit_mail_header_clone
        - Src:             'edit-mail.c:323,4'
          Dst:             _header_field_ref
    - functionName:    edit_mail_set_seq
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1290
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1290,2'
          Dst:             i_panic
    - functionName:    edit_mail_set_uid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1296
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1296,2'
          Dst:             i_panic
    - functionName:    edit_mail_get_header_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1591
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:1591,2'
          Dst:             i_panic
    - functionName:    edit_mail_raw_storage_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_service_user_get_service_ctx
        - mail_storage_service_user_get_settings_instance
        - raw_storage_create_from_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:52,4'
          Dst:             mail_storage_service_user_get_service_ctx
        - Src:             'edit-mail.c:55,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'edit-mail.c:57,4'
          Dst:             raw_storage_create_from_set
    - functionName:    edit_mail_wrap
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/edit-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          194
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - edit_mail_raw_storage_drop
        - edit_mail_raw_storage_get
        - i_error
        - i_stream_ref
        - mail_get_stream
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_transaction_begin
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - raw_mailbox_alloc_stream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'edit-mail.c:222,6'
          Dst:             mail_get_stream
        - Src:             'edit-mail.c:227,18'
          Dst:             edit_mail_raw_storage_get
        - Src:             'edit-mail.c:229,6'
          Dst:             raw_mailbox_alloc_stream
        - Src:             'edit-mail.c:232,4'
          Dst:             mailbox_get_last_internal_error
        - Src:             'edit-mail.c:231,3'
          Dst:             i_error
        - Src:             'edit-mail.c:233,3'
          Dst:             mailbox_free
        - Src:             'edit-mail.c:234,3'
          Dst:             edit_mail_raw_storage_drop
        - Src:             'edit-mail.c:238,14'
          Dst:             mailbox_transaction_begin
        - Src:             'edit-mail.c:242,9'
          Dst:             pool_alloconly_create
        - Src:             'edit-mail.c:243,11'
          Dst:             malloc_multiply_check
        - Src:             'edit-mail.c:243,11'
          Dst:             p_malloc
        - Src:             'edit-mail.c:252,2'
          Dst:             i_stream_ref
        - Src:             'edit-mail.c:261,2'
          Dst:             array_create_i
    - functionName:    seekable_fd_callback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_close_fd_path
        - i_error
        - i_unlink
        - mail_user_set_get_temp_prefix
        - safe_mkstemp
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:60,9'
          Dst:             t_str_new
        - Src:             'mail-raw.c:61,2'
          Dst:             mail_user_set_get_temp_prefix
        - Src:             'mail-raw.c:62,7'
          Dst:             safe_mkstemp
        - Src:             'mail-raw.c:64,42'
          Dst:             str_c
        - Src:             'mail-raw.c:64,3'
          Dst:             i_error
        - Src:             'mail-raw.c:69,6'
          Dst:             str_c
        - Src:             'mail-raw.c:69,6'
          Dst:             i_unlink
        - Src:             'mail-raw.c:71,3'
          Dst:             i_close_fd_path
        - Src:             'mail-raw.c:75,12'
          Dst:             str_c
    - 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:             'dovecot/src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             'dovecot/src/lib/istream.h:238,2'
          Dst:             i_panic
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/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:    mail_raw_close
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     externalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - mail_free
        - mailbox_free
        - mailbox_transaction_rollback
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:245,2'
          Dst:             mail_free
        - Src:             'mail-raw.c:246,2'
          Dst:             mailbox_transaction_rollback
        - Src:             'mail-raw.c:247,2'
          Dst:             mailbox_free
        - Src:             'mail-raw.c:249,2'
          Dst:             p_free_internal
    - functionName:    mail_raw_create_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          190
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - fd_set_nonblock
        - i_stream_create_fd
        - i_stream_create_limit
        - i_stream_create_seekable
        - i_stream_read_bytes
        - i_stream_read_more
        - i_stream_ref
        - i_stream_skip
        - i_stream_unref
        - mbox_from_parse
        - memcmp
        - p_free_internal
        - seekable_fd_callback
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:90,2'
          Dst:             fd_set_nonblock
        - Src:             'mail-raw.c:92,10'
          Dst:             i_stream_create_fd
        - Src:             'mail-raw.c:95,8'
          Dst:             i_stream_read_bytes
        - Src:             'mail-raw.c:96,17'
          Dst:             memcmp
        - Src:             'mail-raw.c:98,3'
          Dst:             i_stream_skip
        - Src:             'mail-raw.c:99,10'
          Dst:             i_stream_read_more
        - Src:             'mail-raw.c:105,11'
          Dst:             mbox_from_parse
        - Src:             'mail-raw.c:107,5'
          Dst:             i_stream_skip
        - Src:             'mail-raw.c:110,4'
          Dst:             i_stream_skip
        - Src:             'mail-raw.c:115,13'
          Dst:             t_strdup
        - Src:             'mail-raw.c:116,2'
          Dst:             p_free_internal
        - Src:             'mail-raw.c:120,3'
          Dst:             i_stream_ref
        - Src:             'mail-raw.c:122,12'
          Dst:             i_stream_create_limit
        - Src:             'mail-raw.c:124,2'
          Dst:             i_stream_unref
        - Src:             'mail-raw.c:127,10'
          Dst:             i_stream_create_seekable
        - Src:             'mail-raw.c:127,10'
          Dst:             seekable_fd_callback
        - Src:             'mail-raw.c:129,2'
          Dst:             i_stream_unref
    - functionName:    mail_raw_open_file
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_unref
        - mail_raw_create
        - mail_raw_create_stream
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:232,22'
          Dst:             strcmp
        - Src:             'mail-raw.c:234,11'
          Dst:             mail_raw_create_stream
        - Src:             'mail-raw.c:237,10'
          Dst:             mail_raw_create
        - Src:             'mail-raw.c:238,2'
          Dst:             i_stream_unref
    - functionName:    mail_raw_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          159
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_fatal
        - mail_alloc
        - mail_set_seq
        - mailbox_get_last_internal_error
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - mailbox_transaction_begin
        - malloc_multiply_check
        - p_malloc
        - raw_mailbox_alloc_path
        - raw_mailbox_alloc_stream
        - t_abspath
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:161,7'
          Dst:             t_abspath
        - Src:             'mail-raw.c:162,4'
          Dst:             i_fatal
        - Src:             'mail-raw.c:165,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-raw.c:165,10'
          Dst:             p_malloc
        - Src:             'mail-raw.c:169,9'
          Dst:             raw_mailbox_alloc_stream
        - Src:             'mail-raw.c:172,9'
          Dst:             raw_mailbox_alloc_path
        - Src:             'mail-raw.c:179,5'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-raw.c:178,4'
          Dst:             i_fatal
        - Src:             'mail-raw.c:184,5'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-raw.c:182,4'
          Dst:             i_fatal
        - Src:             'mail-raw.c:189,17'
          Dst:             mailbox_transaction_begin
        - Src:             'mail-raw.c:190,16'
          Dst:             mailbox_header_lookup_init
        - Src:             'mail-raw.c:191,16'
          Dst:             mail_alloc
        - Src:             'mail-raw.c:192,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'mail-raw.c:193,2'
          Dst:             mail_set_seq
    - 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_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:    mail_raw_open_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_copy_from_data
        - i_stream_unref
        - mail_raw_open_stream
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:216,41'
          Dst:             str_data
        - Src:             'mail-raw.c:217,13'
          Dst:             str_len
        - Src:             'mail-raw.c:216,10'
          Dst:             i_stream_create_copy_from_data
        - Src:             'mail-raw.c:219,10'
          Dst:             mail_raw_open_stream
        - Src:             'mail-raw.c:221,2'
          Dst:             i_stream_unref
    - functionName:    mail_raw_open_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     externalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_set_name
        - mail_raw_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:203,2'
          Dst:             i_panic
        - Src:             'mail-raw.c:204,2'
          Dst:             i_stream_set_name
        - Src:             'mail-raw.c:205,10'
          Dst:             mail_raw_create
    - functionName:    mail_raw_user_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/mail-raw.c'
      linkageType:     externalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_service_user_get_service_ctx
        - mail_storage_service_user_get_settings_instance
        - raw_storage_create_from_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-raw.c:140,3'
          Dst:             mail_storage_service_user_get_service_ctx
        - Src:             'mail-raw.c:143,3'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'mail-raw.c:144,9'
          Dst:             raw_storage_create_from_set
    - functionName:    rfc2822_header_write_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - message_header_encode
        - rfc2822_header_write
        - str_c
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:269,3'
          Dst:             rfc2822_header_write
        - Src:             'rfc2822.c:271,20'
          Dst:             t_str_new
        - Src:             'rfc2822.c:272,3'
          Dst:             message_header_encode
        - Src:             'rfc2822.c:273,38'
          Dst:             str_c
        - Src:             'rfc2822.c:273,3'
          Dst:             rfc2822_header_write
    - functionName:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/./rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc2822.h:33,8'
          Dst:             rfc2822_header_append
    - functionName:    rfc2822_header_append
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          481
      EdgeCount:       121
      CyclomaticComplexity: 31
      functionsReached:
        - i_panic
        - str_append
        - str_append_c
        - str_append_data
        - str_len
        - strlen
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:122,26'
          Dst:             strlen
        - Src:             'rfc2822.c:126,2'
          Dst:             str_append
        - Src:             'rfc2822.c:127,2'
          Dst:             str_append
        - Src:             'rfc2822.c:130,20'
          Dst:             str_len
        - Src:             'rfc2822.c:170,4'
          Dst:             str_append_data
        - Src:             'rfc2822.c:173,5'
          Dst:             str_append
        - Src:             'rfc2822.c:175,5'
          Dst:             str_append
        - Src:             'rfc2822.c:182,5'
          Dst:             str_append_c
        - Src:             'rfc2822.c:189,4'
          Dst:             i_panic
        - Src:             'rfc2822.c:190,4'
          Dst:             str_append_data
        - Src:             'rfc2822.c:198,5'
          Dst:             str_append
        - Src:             'rfc2822.c:200,5'
          Dst:             str_append
        - Src:             'rfc2822.c:204,4'
          Dst:             str_append_c
        - Src:             'rfc2822.c:219,3'
          Dst:             str_append_data
        - Src:             'rfc2822.c:221,4'
          Dst:             str_append
        - Src:             'rfc2822.c:223,4'
          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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    rfc2822_header_utf8_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_header_encode
        - rfc2822_header_write
        - str_c
        - t_str_new
        - t_strdup_vprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:246,19'
          Dst:             t_str_new
        - Src:             'rfc2822.c:250,24'
          Dst:             t_strdup_vprintf
        - Src:             'rfc2822.c:250,2'
          Dst:             message_header_encode
        - Src:             'rfc2822.c:253,37'
          Dst:             str_c
        - Src:             'rfc2822.c:253,2'
          Dst:             rfc2822_header_write
    - functionName:    rfc2822_header_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_write
        - t_strdup_vprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:237,9'
          Dst:             t_strdup_vprintf
        - Src:             'rfc2822.c:240,2'
          Dst:             rfc2822_header_write
    - functionName:    rfc2822_header_field_name_sanitize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_lcase
        - t_strdup_noconst
        - toupper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:82,17'
          Dst:             t_strdup_noconst
        - Src:             'rfc2822.c:86,11'
          Dst:             str_lcase
        - Src:             'rfc2822.c:90,7'
          Dst:             toupper
        - Src:             'rfc2822.c:96,10'
          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:    26
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc2822_header_field_body_verify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          152
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - uni_utf8_str_is_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2822.c:71,17'
          Dst:             uni_utf8_str_is_valid
    - functionName:    rfc2822_header_field_name_verify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/rfc2822.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    urn_char_is_component
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    urn_char_is_pchar_slash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    urn_char_is_pchar
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_char_sanitize
      functionSourceFile: '/src/dovecot/src/lib/uri-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/uri-util.h:50,10'
          Dst:             t_strdup_printf
        - Src:             'dovecot/src/lib/uri-util.h:51,9'
          Dst:             t_strdup_printf
    - functionName:    urn_char_is_alphanum
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_parse_nss
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          292
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - p_strdup
        - p_strdup_printf
        - str_append_c
        - str_append_data
        - str_c
        - str_printfa
        - t_str_new
        - uri_char_sanitize
        - uri_parse_pct_encoded
        - urn_char_is_pchar
        - urn_char_is_pchar_slash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:180,7'
          Dst:             urn_char_is_pchar
        - Src:             'urn.c:183,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:181,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:189,9'
          Dst:             t_str_new
        - Src:             'urn.c:197,10'
          Dst:             uri_parse_pct_encoded
        - Src:             'urn.c:200,4'
          Dst:             i_panic
        - Src:             'urn.c:203,5'
          Dst:             str_append_data
        - Src:             'urn.c:205,6'
          Dst:             str_append_c
        - Src:             'urn.c:207,6'
          Dst:             str_printfa
        - Src:             'urn.c:212,8'
          Dst:             urn_char_is_pchar_slash
        - Src:             'urn.c:221,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:219,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:225,3'
          Dst:             str_append_data
        - Src:             'urn.c:226,37'
          Dst:             str_c
        - Src:             'urn.c:226,14'
          Dst:             p_strdup
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    uri_parse_nid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          260
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - p_strdup_printf
        - p_strdup_until
        - uri_char_sanitize
        - urn_char_is_alphanum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:116,7'
          Dst:             urn_char_is_alphanum
        - Src:             'urn.c:119,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:117,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:126,8'
          Dst:             urn_char_is_alphanum
        - Src:             'urn.c:145,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:143,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:148,7'
          Dst:             urn_char_is_alphanum
        - Src:             'urn.c:151,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:149,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:160,14'
          Dst:             p_strdup_until
    - functionName:    urn_parse_f_component
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - p_strdup
        - uri_parse_fragment
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:348,8'
          Dst:             uri_parse_fragment
        - Src:             'urn.c:354,26'
          Dst:             p_strdup
    - functionName:    urn_parse_rq_component
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          419
      EdgeCount:       93
      CyclomaticComplexity: 27
      functionsReached:
        - p_strdup_printf
        - p_strdup_until
        - uri_char_sanitize
        - uri_parse_pct_encoded
        - urn_char_is_component
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:288,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:298,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:295,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:308,10'
          Dst:             uri_parse_pct_encoded
        - Src:             'urn.c:317,8'
          Dst:             urn_char_is_component
        - Src:             'urn.c:328,4'
          Dst:             uri_char_sanitize
        - Src:             'urn.c:325,19'
          Dst:             p_strdup_printf
        - Src:             'urn.c:333,13'
          Dst:             p_strdup_until
    - functionName:    urn_parse_assigned_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - p_strconcat
        - t_strdup_until
        - uri_parse_nid
        - uri_parse_nss
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:246,6'
          Dst:             uri_parse_nid
        - Src:             'urn.c:250,2'
          Dst:             i_panic
        - Src:             'urn.c:254,6'
          Dst:             uri_parse_nss
        - Src:             'urn.c:259,12'
          Dst:             t_strdup_until
        - Src:             'urn.c:258,24'
          Dst:             p_strconcat
    - functionName:    urn_parse_scheme
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - uri_parse_scheme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:93,6'
          Dst:             uri_parse_scheme
    - functionName:    urn_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     externalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - urn_normalize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:528,6'
          Dst:             urn_normalize
        - Src:             'urn.c:530,6'
          Dst:             urn_normalize
        - Src:             'urn.c:533,6'
          Dst:             strcmp
    - functionName:    urn_normalize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     externalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          129
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - pool_datastack_create
        - str_append
        - str_append_c
        - str_c
        - t_str_lcase
        - t_str_new
        - uri_append_scheme
        - uri_parser_init
        - urn_do_parse
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:497,38'
          Dst:             pool_datastack_create
        - Src:             'urn.c:497,2'
          Dst:             uri_parser_init
        - Src:             'urn.c:503,6'
          Dst:             urn_do_parse
        - Src:             'urn.c:508,21'
          Dst:             t_str_new
        - Src:             'urn.c:511,3'
          Dst:             uri_append_scheme
        - Src:             'urn.c:513,2'
          Dst:             i_panic
        - Src:             'urn.c:514,21'
          Dst:             t_str_lcase
        - Src:             'urn.c:514,2'
          Dst:             str_append
        - Src:             'urn.c:515,2'
          Dst:             str_append_c
        - Src:             'urn.c:516,2'
          Dst:             i_panic
        - Src:             'urn.c:517,2'
          Dst:             str_append
        - Src:             'urn.c:519,15'
          Dst:             str_c
    - functionName:    urn_do_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          176
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - strcasecmp
        - urn_parse_assigned_name
        - urn_parse_f_component
        - urn_parse_rq_component
        - urn_parse_scheme
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:366,8'
          Dst:             urn_parse_scheme
        - Src:             'urn.c:372,3'
          Dst:             i_panic
        - Src:             'urn.c:373,7'
          Dst:             strcasecmp
        - Src:             'urn.c:380,6'
          Dst:             urn_parse_assigned_name
        - Src:             'urn.c:384,6'
          Dst:             urn_parse_rq_component
        - Src:             'urn.c:390,6'
          Dst:             urn_parse_rq_component
        - Src:             'urn.c:396,6'
          Dst:             urn_parse_f_component
        - Src:             'urn.c:400,2'
          Dst:             i_panic
    - 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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    urn_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     externalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          254
      EdgeCount:       55
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - str_append
        - str_append_c
        - str_begins_builtin_success
        - str_begins_icase
        - str_c
        - strchr
        - strncasecmp
        - t_str_new
        - uri_append_scheme
        - uri_data_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:441,21'
          Dst:             t_str_new
        - Src:             'urn.c:443,2'
          Dst:             uri_append_scheme
        - Src:             'urn.c:445,3'
          Dst:             i_panic
        - Src:             'urn.c:446,3'
          Dst:             str_append
        - Src:             'urn.c:447,3'
          Dst:             str_append_c
        - Src:             'urn.c:448,3'
          Dst:             i_panic
        - Src:             'urn.c:449,3'
          Dst:             uri_data_encode
        - Src:             'urn.c:454,3'
          Dst:             i_panic
        - Src:             'urn.c:455,8'
          Dst:             str_begins_icase
        - Src:             'urn.c:455,8'
          Dst:             strncasecmp
        - Src:             'urn.c:455,8'
          Dst:             str_begins_builtin_success
        - Src:             'urn.c:456,4'
          Dst:             i_unreached
        - Src:             'urn.c:457,13'
          Dst:             strchr
        - Src:             'urn.c:458,3'
          Dst:             i_panic
        - Src:             'urn.c:460,3'
          Dst:             i_panic
        - Src:             'urn.c:461,3'
          Dst:             str_append
        - Src:             'urn.c:466,3'
          Dst:             str_append
        - Src:             'urn.c:467,3'
          Dst:             str_append
        - Src:             'urn.c:471,3'
          Dst:             str_append
        - Src:             'urn.c:472,3'
          Dst:             str_append
        - Src:             'urn.c:477,3'
          Dst:             str_append_c
        - Src:             'urn.c:478,3'
          Dst:             str_append
        - Src:             'urn.c:481,9'
          Dst:             str_c
    - functionName:    urn_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     externalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - urn_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:432,9'
          Dst:             urn_parse
    - functionName:    urn_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/util/urn.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - uri_parser_init
        - urn_do_parse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'urn.c:412,2'
          Dst:             i_panic
        - Src:             'urn.c:415,2'
          Dst:             uri_parser_init
        - Src:             'urn.c:417,43'
          Dst:             malloc_multiply_check
        - Src:             'urn.c:417,43'
          Dst:             p_malloc
        - Src:             'urn.c:420,6'
          Dst:             urn_do_parse
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_smtp_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:86,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:    sieve_smtp_abort
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:76,2'
          Dst:             p_free_internal
        - Src:             'sieve-smtp.c:77,2'
          Dst:             i_panic
    - functionName:    sieve_smtp_start_single
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_smtp_add_rcpt
        - sieve_smtp_send
        - sieve_smtp_start
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:64,9'
          Dst:             sieve_smtp_start
        - Src:             'sieve-smtp.c:65,2'
          Dst:             sieve_smtp_add_rcpt
        - Src:             'sieve-smtp.c:66,14'
          Dst:             sieve_smtp_send
    - functionName:    sieve_smtp_start
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sieve_smtp_available
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:28,7'
          Dst:             sieve_smtp_available
        - Src:             'sieve-smtp.c:32,2'
          Dst:             i_panic
        - Src:             'sieve-smtp.c:34,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-smtp.c:34,9'
          Dst:             p_malloc
    - functionName:    sieve_smtp_add_rcpt
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:44,2'
          Dst:             i_panic
    - functionName:    sieve_smtp_send
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-smtp.c:50,2'
          Dst:             i_panic
    - functionName:    sieve_smtp_available
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-smtp.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_debug_read_line
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          275
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - sieve_binary_block_get_size
        - sieve_binary_debug_reader_reset
        - sieve_binary_read_byte
        - sieve_binary_read_unsigned
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-binary-debug.c:195,4'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-binary-debug.c:170,3'
          Dst:             sieve_binary_debug_reader_reset
        - Src:             'sieve-binary-debug.c:187,17'
          Dst:             sieve_binary_block_get_size
        - Src:             'sieve-binary-debug.c:193,7'
          Dst:             sieve_binary_read_byte
        - Src:             'sieve-binary-debug.c:215,10'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-debug.c:218,6'
          Dst:             sieve_binary_debug_reader_reset
        - Src:             'sieve-binary-debug.c:227,10'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-debug.c:230,6'
          Dst:             sieve_binary_debug_reader_reset
        - Src:             'sieve-binary-debug.c:242,10'
          Dst:             sieve_binary_read_unsigned
        - Src:             'sieve-binary-debug.c:245,6'
          Dst:             sieve_binary_debug_reader_reset
        - Src:             'sieve-binary-debug.c:268,4'
          Dst:             sieve_binary_debug_reader_reset
    - functionName:    sieve_binary_debug_reader_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_binary_debug_reader_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-debug.c:149,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:    sieve_binary_debug_reader_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-debug.c:140,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary-debug.c:140,12'
          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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    sieve_binary_debug_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          203
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - sieve_binary_emit_byte
        - sieve_binary_emit_unsigned
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-debug.c:68,2'
          Dst:             i_panic
        - Src:             'sieve-binary-debug.c:91,10'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-binary-debug.c:93,10'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-debug.c:98,10'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-binary-debug.c:100,10'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-debug.c:103,9'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-binary-debug.c:108,9'
          Dst:             sieve_binary_emit_byte
        - Src:             'sieve-binary-debug.c:109,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'sieve-binary-debug.c:113,8'
          Dst:             sieve_binary_emit_byte
    - functionName:    sieve_binary_debug_writer_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-debug.c:60,2'
          Dst:             p_free_internal
    - functionName:    sieve_binary_debug_writer_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-binary-debug.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-binary-debug.c:51,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-binary-debug.c:51,12'
          Dst:             p_malloc
    - functionName:    sieve_lexer_token_int
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-lexer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-lexer.h:100,2'
          Dst:             i_panic
    - functionName:    sieve_lexer_token_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-lexer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-lexer.h:83,2'
          Dst:             i_panic
    - functionName:    __get_token_priority
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          53
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-parser.c:602,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sieve_parse_arguments
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          727
      EdgeCount:       168
      CyclomaticComplexity: 43
      functionsReached:
        - sieve_ast_argument_number_create
        - sieve_ast_argument_string_create
        - sieve_ast_argument_stringlist_create
        - sieve_ast_argument_tag_create
        - sieve_ast_stringlist_add
        - sieve_ast_test_create
        - sieve_errors_more_allowed
        - sieve_lexer_skip_token
        - sieve_lexer_token_description
        - sieve_lexer_token_ident
        - sieve_lexer_token_int
        - sieve_lexer_token_line
        - sieve_lexer_token_str
        - sieve_lexer_token_type
        - sieve_parse_arguments
        - sieve_parser_error
        - sieve_parser_recover
      functionUses:    4
      BranchProfiles:
        - Branch String:   'sieve-parser.c:159,3'
          Branch Sides:    []
        - Branch String:   'sieve-parser.c:282,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-parser.c:154,8'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-parser.c:159,11'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:164,11'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:163,10'
          Dst:             sieve_ast_argument_stringlist_create
        - Src:             'sieve-parser.c:166,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:168,8'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:173,11'
          Dst:             sieve_lexer_token_str
        - Src:             'sieve-parser.c:174,6'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:172,10'
          Dst:             sieve_ast_stringlist_add
        - Src:             'sieve-parser.c:176,5'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:179,12'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:180,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:184,11'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-parser.c:185,16'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:189,10'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:192,13'
          Dst:             sieve_lexer_token_str
        - Src:             'sieve-parser.c:193,8'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:191,12'
          Dst:             sieve_ast_stringlist_add
        - Src:             'sieve-parser.c:196,7'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:198,7'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:198,7'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:202,16'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:208,6'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:213,5'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:213,5'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:217,14'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:221,8'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:222,5'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:224,5'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:224,5'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:229,19'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:230,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:236,11'
          Dst:             sieve_lexer_token_str
        - Src:             'sieve-parser.c:237,5'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:235,10'
          Dst:             sieve_ast_argument_string_create
        - Src:             'sieve-parser.c:238,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:243,11'
          Dst:             sieve_lexer_token_int
        - Src:             'sieve-parser.c:244,5'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:242,10'
          Dst:             sieve_ast_argument_number_create
        - Src:             'sieve-parser.c:245,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:250,11'
          Dst:             sieve_lexer_token_ident
        - Src:             'sieve-parser.c:251,5'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:249,10'
          Dst:             sieve_ast_argument_tag_create
        - Src:             'sieve-parser.c:252,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:261,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:268,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:282,10'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:286,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:293,10'
          Dst:             sieve_lexer_token_ident
        - Src:             'sieve-parser.c:294,4'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:292,10'
          Dst:             sieve_ast_test_create
        - Src:             'sieve-parser.c:295,3'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:302,7'
          Dst:             sieve_parse_arguments
        - Src:             'sieve-parser.c:310,3'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:313,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:316,13'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:319,5'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:326,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:328,11'
          Dst:             sieve_lexer_token_ident
        - Src:             'sieve-parser.c:329,5'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:327,11'
          Dst:             sieve_ast_test_create
        - Src:             'sieve-parser.c:330,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:336,18'
          Dst:             sieve_parse_arguments
        - Src:             'sieve-parser.c:339,12'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:340,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:344,11'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-parser.c:345,16'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:350,10'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:352,14'
          Dst:             sieve_lexer_token_ident
        - Src:             'sieve-parser.c:353,8'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:351,14'
          Dst:             sieve_ast_test_create
        - Src:             'sieve-parser.c:354,7'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:360,21'
          Dst:             sieve_parse_arguments
        - Src:             'sieve-parser.c:363,17'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:367,7'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:367,7'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:371,16'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:381,14'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:384,4'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:384,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:389,13'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:397,8'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:398,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:400,4'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:400,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:408,18'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:409,5'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:422,3'
          Dst:             sieve_parser_error
    - functionName:    sieve_lexer_token_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-lexer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_lexer_token_line
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-lexer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_parser_recover
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          140
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __get_token_priority
        - i_panic
        - sieve_lexer_skip_token
        - sieve_lexer_token_type
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-parser.c:635,3'
          Dst:             __get_token_priority
        - Src:             'sieve-parser.c:637,2'
          Dst:             i_panic
        - Src:             'sieve-parser.c:639,9'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:640,30'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:640,9'
          Dst:             __get_token_priority
        - Src:             'sieve-parser.c:642,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:645,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:648,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:657,3'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:662,6'
          Dst:             sieve_lexer_token_type
    - functionName:    sieve_parser_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_error_script_location
        - sieve_lexer_token_line
        - sieve_lexer_token_type
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-parser.c:107,6'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:108,3'
          Dst:             t_push
        - Src:             'sieve-parser.c:111,5'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:109,22'
          Dst:             sieve_error_script_location
        - Src:             'sieve-parser.c:112,4'
          Dst:             sieve_logv
        - Src:             'sieve-parser.c:113,5'
          Dst:             t_pop
        - Src:             'sieve-parser.c:113,5'
          Dst:             i_panic
    - functionName:    sieve_lexer_token_ident
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-lexer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - str_c
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-lexer.h:91,2'
          Dst:             i_panic
        - Src:             './sieve-lexer.h:94,9'
          Dst:             str_c
    - functionName:    sieve_parse_commands
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          273
      EdgeCount:       64
      CyclomaticComplexity: 16
      functionsReached:
        - i_unreached
        - sieve_ast_command_create
        - sieve_errors_more_allowed
        - sieve_lexer_skip_token
        - sieve_lexer_token_description
        - sieve_lexer_token_ident
        - sieve_lexer_token_line
        - sieve_lexer_token_type
        - sieve_parse_arguments
        - sieve_parse_commands
        - sieve_parser_error
        - sieve_parser_recover
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-parser.c:491,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-parser.c:443,9'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:448,8'
          Dst:             sieve_errors_more_allowed
        - Src:             'sieve-parser.c:449,13'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:455,11'
          Dst:             sieve_lexer_token_ident
        - Src:             'sieve-parser.c:456,4'
          Dst:             sieve_lexer_token_line
        - Src:             'sieve-parser.c:454,13'
          Dst:             sieve_ast_command_create
        - Src:             'sieve-parser.c:457,3'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:460,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:466,12'
          Dst:             sieve_parse_arguments
        - Src:             'sieve-parser.c:472,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:473,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:475,4'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:475,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:485,13'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:491,11'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:494,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:498,4'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:502,5'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:505,14'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:508,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:514,18'
          Dst:             sieve_parse_commands
        - Src:             'sieve-parser.c:515,9'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:516,6'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:516,6'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:520,15'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:522,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:528,19'
          Dst:             sieve_parser_recover
        - Src:             'sieve-parser.c:529,6'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:536,4'
          Dst:             i_unreached
    - functionName:    sieve_parser_run
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_ast_create
        - sieve_ast_ref
        - sieve_ast_root
        - sieve_ast_unref
        - sieve_lexer_skip_token
        - sieve_lexer_token_description
        - sieve_lexer_token_type
        - sieve_parse_commands
        - sieve_parser_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-parser.c:546,3'
          Dst:             sieve_ast_unref
        - Src:             'sieve-parser.c:550,10'
          Dst:             sieve_ast_create
        - Src:             'sieve-parser.c:552,3'
          Dst:             sieve_ast_ref
        - Src:             'sieve-parser.c:557,2'
          Dst:             sieve_lexer_skip_token
        - Src:             'sieve-parser.c:560,35'
          Dst:             sieve_ast_root
        - Src:             'sieve-parser.c:560,6'
          Dst:             sieve_parse_commands
        - Src:             'sieve-parser.c:563,7'
          Dst:             sieve_lexer_token_type
        - Src:             'sieve-parser.c:564,4'
          Dst:             sieve_lexer_token_description
        - Src:             'sieve-parser.c:564,4'
          Dst:             sieve_parser_error
        - Src:             'sieve-parser.c:576,3'
          Dst:             sieve_ast_unref
    - 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:    sieve_parser_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
        - sieve_ast_unref
        - sieve_error_handler_unref
        - sieve_lexer_free
        - sieve_script_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-parser.c:74,3'
          Dst:             sieve_ast_unref
        - Src:             'sieve-parser.c:76,2'
          Dst:             sieve_lexer_free
        - Src:             'sieve-parser.c:77,2'
          Dst:             sieve_script_unref
        - Src:             'sieve-parser.c:79,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-parser.c:81,2'
          Dst:             pool_unref
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_parser_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          74
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - sieve_error_handler_ref
        - sieve_lexer_create
        - sieve_script_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-parser.c:48,10'
          Dst:             sieve_lexer_create
        - Src:             'sieve-parser.c:50,17'
          Dst:             pool_alloconly_create
        - Src:             'sieve-parser.c:52,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-parser.c:52,12'
          Dst:             p_malloc
        - Src:             'sieve-parser.c:57,3'
          Dst:             sieve_error_handler_ref
        - Src:             'sieve-parser.c:60,3'
          Dst:             sieve_script_ref
    - functionName:    check_local_part
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:296,6'
          Dst:             str_data
        - Src:             'sieve-address.c:297,13'
          Dst:             str_len
    - 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:    4
      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:    9
      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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    parse_domain
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rfc822_parse_domain
        - sieve_address_error
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:355,2'
          Dst:             str_truncate
        - Src:             'sieve-address.c:356,13'
          Dst:             rfc822_parse_domain
        - Src:             'sieve-address.c:357,3'
          Dst:             sieve_address_error
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    sieve_address_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_len
        - str_vprintfa
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:277,6'
          Dst:             str_len
        - Src:             'sieve-address.c:279,3'
          Dst:             str_vprintfa
    - functionName:    parse_local_part
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          178
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - check_local_part
        - rfc822_parse_atom
        - rfc822_parse_quoted_string
        - sieve_address_error
        - str_append_c
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:315,3'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:319,2'
          Dst:             str_truncate
        - Src:             'sieve-address.c:321,9'
          Dst:             rfc822_parse_quoted_string
        - Src:             'sieve-address.c:329,5'
          Dst:             str_append_c
        - Src:             'sieve-address.c:340,10'
          Dst:             rfc822_parse_atom
        - Src:             'sieve-address.c:344,17'
          Dst:             check_local_part
        - Src:             'sieve-address.c:345,3'
          Dst:             sieve_address_error
    - functionName:    parse_addr_spec
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - parse_domain
        - parse_local_part
        - sieve_address_error
        - str_c
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:369,13'
          Dst:             parse_local_part
        - Src:             'sieve-address.c:373,10'
          Dst:             parse_domain
        - Src:             'sieve-address.c:378,16'
          Dst:             str_c
        - Src:             'sieve-address.c:378,3'
          Dst:             str_sanitize
        - Src:             'sieve-address.c:376,2'
          Dst:             sieve_address_error
    - functionName:    parse_mailbox
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          143
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - parse_addr_spec
        - rfc822_parse_phrase
        - rfc822_skip_lwsp
        - sieve_address_error
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:395,2'
          Dst:             str_truncate
        - Src:             'sieve-address.c:396,6'
          Dst:             rfc822_parse_phrase
        - Src:             'sieve-address.c:400,10'
          Dst:             parse_addr_spec
        - Src:             'sieve-address.c:406,13'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-address.c:408,4'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:412,6'
          Dst:             parse_addr_spec
        - Src:             'sieve-address.c:416,3'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:421,13'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-address.c:422,3'
          Dst:             sieve_address_error
    - functionName:    parse_mailbox_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          121
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - parse_mailbox
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - sieve_address_error
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:434,2'
          Dst:             rfc822_parser_init
        - Src:             'sieve-address.c:438,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'sieve-address.c:441,3'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:445,6'
          Dst:             parse_mailbox
        - Src:             'sieve-address.c:450,4'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:453,4'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:459,6'
          Dst:             str_len
        - Src:             'sieve-address.c:461,3'
          Dst:             sieve_address_error
        - Src:             'sieve-address.c:465,6'
          Dst:             str_len
        - Src:             'sieve-address.c:466,3'
          Dst:             sieve_address_error
    - functionName:    sieve_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_header_address_list_next_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - smtp_address_init_from_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:80,7'
          Dst:             smtp_address_init_from_msg
    - functionName:    sieve_address_validate_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_do_validate
        - str_data
        - str_len
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:555,35'
          Dst:             str_data
        - Src:             'sieve-address.c:555,54'
          Dst:             str_len
        - Src:             'sieve-address.c:555,9'
          Dst:             sieve_address_do_validate
    - functionName:    sieve_address_do_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - parse_mailbox_address
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:487,19'
          Dst:             t_str_new
        - Src:             'sieve-address.c:488,15'
          Dst:             t_str_new
        - Src:             'sieve-address.c:489,12'
          Dst:             t_str_new
        - Src:             'sieve-address.c:490,14'
          Dst:             t_str_new
        - Src:             'sieve-address.c:492,7'
          Dst:             parse_mailbox_address
        - Src:             'sieve-address.c:493,14'
          Dst:             str_c
    - functionName:    sieve_address_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_do_validate
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:550,7'
          Dst:             strlen
        - Src:             'sieve-address.c:549,9'
          Dst:             sieve_address_do_validate
    - functionName:    sieve_address_parse_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_do_parse
        - str_data
        - str_len
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:543,32'
          Dst:             str_data
        - Src:             'sieve-address.c:543,51'
          Dst:             str_len
        - Src:             'sieve-address.c:543,9'
          Dst:             sieve_address_do_parse
    - functionName:    sieve_address_do_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - parse_mailbox_address
        - smtp_address_create_temp
        - str_c
        - str_c_modifiable
        - str_lcase
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:513,19'
          Dst:             t_str_new
        - Src:             'sieve-address.c:514,15'
          Dst:             t_str_new
        - Src:             'sieve-address.c:515,12'
          Dst:             t_str_new
        - Src:             'sieve-address.c:516,14'
          Dst:             t_str_new
        - Src:             'sieve-address.c:518,7'
          Dst:             parse_mailbox_address
        - Src:             'sieve-address.c:519,14'
          Dst:             str_c
        - Src:             'sieve-address.c:523,18'
          Dst:             str_c_modifiable
        - Src:             'sieve-address.c:523,8'
          Dst:             str_lcase
        - Src:             'sieve-address.c:525,34'
          Dst:             str_c
        - Src:             'sieve-address.c:526,6'
          Dst:             str_c
        - Src:             'sieve-address.c:525,9'
          Dst:             smtp_address_create_temp
    - functionName:    sieve_address_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_address_do_parse
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:537,11'
          Dst:             strlen
        - Src:             'sieve-address.c:536,9'
          Dst:             sieve_address_do_parse
    - functionName:    sieve_header_address_list_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          216
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - message_address_parse
        - pool_datastack_create
        - sieve_header_address_list_next_address
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - smtp_address_encode
        - smtp_address_init
        - str_c
        - str_data
        - str_len
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:99,3'
          Dst:             smtp_address_init
        - Src:             'sieve-address.c:106,14'
          Dst:             sieve_header_address_list_next_address
        - Src:             'sieve-address.c:114,19'
          Dst:             str_c
        - Src:             'sieve-address.c:114,6'
          Dst:             str_sanitize
        - Src:             'sieve-address.c:111,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address.c:125,19'
          Dst:             smtp_address_encode
        - Src:             'sieve-address.c:125,6'
          Dst:             str_sanitize
        - Src:             'sieve-address.c:122,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address.c:132,14'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-address.c:135,7'
          Dst:             str_len
        - Src:             'sieve-address.c:138,5'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address.c:151,18'
          Dst:             str_c
        - Src:             'sieve-address.c:151,5'
          Dst:             str_sanitize
        - Src:             'sieve-address.c:148,4'
          Dst:             sieve_runtime_trace
        - Src:             'sieve-address.c:155,4'
          Dst:             pool_datastack_create
        - Src:             'sieve-address.c:156,27'
          Dst:             str_data
        - Src:             'sieve-address.c:157,4'
          Dst:             str_len
        - Src:             'sieve-address.c:154,27'
          Dst:             message_address_parse
    - functionName:    sieve_header_address_list_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:200,2'
          Dst:             sieve_stringlist_set_trace
    - functionName:    sieve_header_address_list_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:189,2'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_header_address_list_next_string_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_header_address_list_next_item
        - smtp_address_encode
        - strlen
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:171,13'
          Dst:             sieve_header_address_list_next_item
        - Src:             'sieve-address.c:176,26'
          Dst:             smtp_address_encode
        - Src:             'sieve-address.c:179,39'
          Dst:             strlen
        - Src:             'sieve-address.c:179,13'
          Dst:             t_str_new_const
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_header_address_list_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-address.c:50,13'
          Dst:             malloc_multiply_check
        - Src:             'sieve-address.c:50,13'
          Dst:             t_malloc0
    - functionName:    sieve_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      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:    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:    sieve_index_stringlist_set_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_set_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:275,2'
          Dst:             sieve_stringlist_set_trace
    - functionName:    sieve_index_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_stringlist_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:253,8'
          Dst:             sieve_stringlist_get_length
    - functionName:    sieve_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:49,3'
          Dst:             sieve_stringlist_reset
        - Src:             'sieve-stringlist.c:50,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-stringlist.c:53,3'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/./sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_index_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:243,2'
          Dst:             sieve_stringlist_reset
    - functionName:    sieve_index_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          176
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - sieve_stringlist_get_length
        - sieve_stringlist_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:203,13'
          Dst:             sieve_stringlist_get_length
        - Src:             'sieve-stringlist.c:220,2'
          Dst:             i_panic
        - Src:             'sieve-stringlist.c:222,9'
          Dst:             sieve_stringlist_next_item
    - functionName:    sieve_index_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          57
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:174,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-stringlist.c:174,12'
          Dst:             t_malloc0
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_single_stringlist_create_cstr
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_single_stringlist_create
        - strlen
        - t_str_new_const
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:105,40'
          Dst:             strlen
        - Src:             'sieve-stringlist.c:105,18'
          Dst:             t_str_new_const
        - Src:             'sieve-stringlist.c:107,9'
          Dst:             sieve_single_stringlist_create
    - functionName:    sieve_single_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          61
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:89,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-stringlist.c:89,12'
          Dst:             t_malloc0
    - functionName:    sieve_single_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_single_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_single_stringlist_get_length
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:142,34'
          Dst:             str_len
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_stringlist_read_all
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-stringlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - p_strdup
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
        - str_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-stringlist.c:22,3'
          Dst:             sieve_stringlist_reset
        - Src:             'sieve-stringlist.c:24,3'
          Dst:             array_create_i
        - Src:             'sieve-stringlist.c:27,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'sieve-stringlist.c:28,41'
          Dst:             str_c
        - Src:             'sieve-stringlist.c:28,26'
          Dst:             p_strdup
        - Src:             'sieve-stringlist.c:30,4'
          Dst:             array_append_i
        - Src:             'sieve-stringlist.c:33,9'
          Dst:             array_append_space_i
        - Src:             'sieve-stringlist.c:34,13'
          Dst:             array_idx_i
    - functionName:    sieve_plugins_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-plugins.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - module_dir_unload
        - module_get_symbol
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-plugins.c:176,5'
          Dst:             t_strdup_printf
        - Src:             'sieve-plugins.c:174,4'
          Dst:             module_get_symbol
        - Src:             'sieve-plugins.c:185,2'
          Dst:             i_panic
        - Src:             'sieve-plugins.c:190,2'
          Dst:             module_dir_unload
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_plugin_module_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-plugins.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - module_get_plugin_name
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-plugins.c:47,14'
          Dst:             module_get_plugin_name
        - Src:             'sieve-plugins.c:48,7'
          Dst:             strcmp
    - functionName:    sieve_plugins_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-plugins.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          366
      EdgeCount:       78
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - master_service_get_name
        - module_dir_load_missing
        - module_file_get_name
        - module_get_symbol
        - p_malloc
        - settings_boollist_get
        - sieve_plugin_module_find
        - t_strdup_printf
        - t_strsplit_spaces
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-plugins.c:68,18'
          Dst:             settings_boollist_get
        - Src:             'sieve-plugins.c:76,22'
          Dst:             t_strsplit_spaces
        - Src:             'sieve-plugins.c:85,5'
          Dst:             module_file_get_name
        - Src:             'sieve-plugins.c:95,24'
          Dst:             master_service_get_name
        - Src:             'sieve-plugins.c:102,18'
          Dst:             module_dir_load_missing
        - Src:             'sieve-plugins.c:116,12'
          Dst:             sieve_plugin_module_find
        - Src:             'sieve-plugins.c:117,3'
          Dst:             i_panic
        - Src:             'sieve-plugins.c:132,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-plugins.c:132,12'
          Dst:             p_malloc
        - Src:             'sieve-plugins.c:138,5'
          Dst:             t_strdup_printf
        - Src:             'sieve-plugins.c:137,4'
          Dst:             module_get_symbol
    - 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_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:             'dovecot/src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:234,2'
          Dst:             buffer_insert_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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    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:             'dovecot/src/lib/array.h:160,2'
          Dst:             buffer_free
    - 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:    sieve_file_script_sequence_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script-sequence.c'
      linkageType:     externalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - array_is_created_i
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script-sequence.c:248,6'
          Dst:             array_is_created_i
        - Src:             'sieve-file-script-sequence.c:249,3'
          Dst:             array_free_i
        - Src:             'sieve-file-script-sequence.c:250,2'
          Dst:             pool_unref
    - 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_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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_file_script_sequence_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script-sequence.c'
      linkageType:     externalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          196
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_i
        - i_panic
        - sieve_file_script_open_from_filename
        - sieve_file_script_open_from_name
        - sieve_storage_clear_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-script-sequence.c:208,3'
          Dst:             i_panic
        - Src:             'sieve-file-script-sequence.c:212,9'
          Dst:             sieve_file_script_open_from_name
        - Src:             'sieve-file-script-sequence.c:215,11'
          Dst:             array_get_i
        - Src:             'sieve-file-script-sequence.c:217,3'
          Dst:             i_panic
        - Src:             'sieve-file-script-sequence.c:222,10'
          Dst:             sieve_file_script_open_from_filename
        - Src:             'sieve-file-script-sequence.c:229,4'
          Dst:             sieve_storage_clear_error
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_file_script_sequence_read_dir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script-sequence.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          284
      EdgeCount:       63
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - array_append_i
        - array_get_i
        - array_insert_i
        - closedir
        - e_error
        - eacces_error_get
        - i_panic
        - opendir
        - p_strdup
        - readdir
        - sieve_script_file_has_extension
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - stat
        - strcmp
        - strlen
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-file-script-sequence.c:41,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-script-sequence.c:39,9'
          Dst:             opendir
        - Src:             'sieve-file-script-sequence.c:41,11'
          Dst:             __errno_location
        - Src:             'sieve-file-script-sequence.c:43,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script-sequence.c:48,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script-sequence.c:51,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-script-sequence.c:51,4'
          Dst:             e_error
        - Src:             'sieve-file-script-sequence.c:56,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-script-sequence.c:72,3'
          Dst:             __errno_location
        - Src:             'sieve-file-script-sequence.c:73,8'
          Dst:             readdir
        - Src:             'sieve-file-script-sequence.c:77,8'
          Dst:             sieve_script_file_has_extension
        - Src:             'sieve-file-script-sequence.c:81,3'
          Dst:             t_push
        - Src:             'sieve-file-script-sequence.c:82,13'
          Dst:             strlen
        - Src:             'sieve-file-script-sequence.c:83,12'
          Dst:             t_strconcat
        - Src:             'sieve-file-script-sequence.c:85,12'
          Dst:             t_strconcat
        - Src:             'sieve-file-script-sequence.c:87,8'
          Dst:             stat
        - Src:             'sieve-file-script-sequence.c:88,12'
          Dst:             p_strdup
        - Src:             'sieve-file-script-sequence.c:91,5'
          Dst:             t_pop
        - Src:             'sieve-file-script-sequence.c:91,5'
          Dst:             i_panic
        - Src:             'sieve-file-script-sequence.c:97,11'
          Dst:             array_get_i
        - Src:             'sieve-file-script-sequence.c:99,8'
          Dst:             strcmp
        - Src:             'sieve-file-script-sequence.c:104,4'
          Dst:             array_append_i
        - Src:             'sieve-file-script-sequence.c:106,4'
          Dst:             array_insert_i
        - Src:             'sieve-file-script-sequence.c:109,6'
          Dst:             __errno_location
        - Src:             'sieve-file-script-sequence.c:110,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-script-sequence.c:117,22'
          Dst:             closedir
        - Src:             'sieve-file-script-sequence.c:118,3'
          Dst:             e_error
    - 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:    19
      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:    18
      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:    20
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_file_script_sequence_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-script-sequence.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          168
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - array_append_i
        - array_create_i
        - e_error
        - eacces_error_get
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - sieve_file_script_sequence_read_dir
        - sieve_script_file_from_name
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - stat
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-file-script-sequence.c:138,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-script-sequence.c:137,6'
          Dst:             stat
        - Src:             'sieve-file-script-sequence.c:138,11'
          Dst:             __errno_location
        - Src:             'sieve-file-script-sequence.c:140,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script-sequence.c:145,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-script-sequence.c:148,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-script-sequence.c:148,4'
          Dst:             e_error
        - Src:             'sieve-file-script-sequence.c:153,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-script-sequence.c:162,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-file-script-sequence.c:163,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-file-script-sequence.c:163,9'
          Dst:             p_malloc
        - Src:             'sieve-file-script-sequence.c:168,3'
          Dst:             array_create_i
        - Src:             'sieve-file-script-sequence.c:173,8'
          Dst:             sieve_file_script_sequence_read_dir
        - Src:             'sieve-file-script-sequence.c:175,5'
          Dst:             pool_unref
        - Src:             'sieve-file-script-sequence.c:181,11'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-script-sequence.c:182,11'
          Dst:             p_strdup
        - Src:             'sieve-file-script-sequence.c:183,4'
          Dst:             array_append_i
    - 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:    sieve_file_storage_list_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - closedir
        - e_error
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-list.c:132,6'
          Dst:             closedir
        - Src:             'sieve-file-storage-list.c:133,3'
          Dst:             e_error
        - Src:             'sieve-file-storage-list.c:137,2'
          Dst:             pool_unref
    - functionName:    sieve_file_storage_list_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - readdir
        - sieve_script_file_get_scriptname
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-list.c:100,13'
          Dst:             readdir
        - Src:             'sieve-file-storage-list.c:103,16'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-storage-list.c:108,4'
          Dst:             i_panic
        - Src:             'sieve-file-storage-list.c:110,8'
          Dst:             strcmp
        - Src:             'sieve-file-storage-list.c:117,31'
          Dst:             strcmp
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_file_storage_list_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          169
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - closedir
        - e_error
        - eacces_error_get
        - i_panic
        - malloc_multiply_check
        - opendir
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - sieve_file_storage_active_script_get_file
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-file-storage-list.c:37,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage-list.c:35,9'
          Dst:             opendir
        - Src:             'sieve-file-storage-list.c:37,11'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-list.c:39,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-list.c:44,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-list.c:47,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-list.c:47,4'
          Dst:             e_error
        - Src:             'sieve-file-storage-list.c:51,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-list.c:59,2'
          Dst:             t_push
        - Src:             'sieve-file-storage-list.c:61,7'
          Dst:             sieve_file_storage_active_script_get_file
        - Src:             'sieve-file-storage-list.c:65,11'
          Dst:             pool_alloconly_create
        - Src:             'sieve-file-storage-list.c:67,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-file-storage-list.c:67,12'
          Dst:             p_malloc
        - Src:             'sieve-file-storage-list.c:71,7'
          Dst:             p_strdup
        - Src:             'sieve-file-storage-list.c:73,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage-list.c:73,4'
          Dst:             i_panic
        - Src:             'sieve-file-storage-list.c:76,7'
          Dst:             closedir
        - Src:             'sieve-file-storage-list.c:77,4'
          Dst:             e_error
    - functionName:    sieve_file_storage_quota_havespace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-quota.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          298
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - closedir
        - e_warning
        - i_panic
        - opendir
        - readdir
        - sieve_script_file_get_scriptname
        - sieve_storage_set_critical
        - stat
        - strcmp
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-quota.c:31,9'
          Dst:             opendir
        - Src:             'sieve-file-storage-quota.c:33,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-quota.c:45,3'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-quota.c:46,8'
          Dst:             readdir
        - Src:             'sieve-file-storage-quota.c:48,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-quota.c:49,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-quota.c:59,10'
          Dst:             sieve_script_file_get_scriptname
        - Src:             'sieve-file-storage-quota.c:68,3'
          Dst:             i_panic
        - Src:             'sieve-file-storage-quota.c:70,7'
          Dst:             strcmp
        - Src:             'sieve-file-storage-quota.c:73,7'
          Dst:             strcmp
        - Src:             'sieve-file-storage-quota.c:95,11'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage-quota.c:97,8'
          Dst:             stat
        - Src:             'sieve-file-storage-quota.c:98,5'
          Dst:             e_warning
        - Src:             'sieve-file-storage-quota.c:117,6'
          Dst:             closedir
        - Src:             'sieve-file-storage-quota.c:118,3'
          Dst:             sieve_storage_set_critical
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    sieve_generate_tmp_filename
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - dec2str
        - sieve_script_file_from_name
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:57,12'
          Dst:             dec2str
        - Src:             'sieve-file-storage-save.c:57,32'
          Dst:             dec2str
        - Src:             'sieve-file-storage-save.c:56,10'
          Dst:             t_strdup_printf
        - Src:             'sieve-file-storage-save.c:62,10'
          Dst:             dec2str
        - Src:             'sieve-file-storage-save.c:62,30'
          Dst:             dec2str
        - Src:             'sieve-file-storage-save.c:61,15'
          Dst:             t_strdup_printf
        - Src:             'sieve-file-storage-save.c:64,9'
          Dst:             sieve_script_file_from_name
    - functionName:    sieve_file_storage_save_as_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_file_storage_save_to
        - sieve_file_storage_update_mtime
        - str_append
        - str_append_c
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:546,14'
          Dst:             t_str_new
        - Src:             'sieve-file-storage-save.c:547,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:548,2'
          Dst:             str_append_c
        - Src:             'sieve-file-storage-save.c:550,6'
          Dst:             sieve_file_storage_save_to
        - Src:             'sieve-file-storage-save.c:554,2'
          Dst:             sieve_file_storage_update_mtime
    - 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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    sieve_file_storage_save_to
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          170
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - eacces_error_get
        - eacces_error_get_creating
        - i_stream_get_error
        - i_stream_get_name
        - i_unlink
        - i_unreached
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_get_error
        - o_stream_send_istream
        - rename
        - safe_mkstemp_hostpid
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - str_c
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-file-storage-save.c:476,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage-save.c:459,7'
          Dst:             safe_mkstemp_hostpid
        - Src:             'sieve-file-storage-save.c:462,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:466,14'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:465,5'
          Dst:             eacces_error_get_creating
        - Src:             'sieve-file-storage-save.c:463,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:470,28'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:468,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:475,11'
          Dst:             o_stream_create_fd
        - Src:             'sieve-file-storage-save.c:476,10'
          Dst:             o_stream_send_istream
        - Src:             'sieve-file-storage-save.c:481,3'
          Dst:             i_unreached
        - Src:             'sieve-file-storage-save.c:485,4'
          Dst:             i_stream_get_name
        - Src:             'sieve-file-storage-save.c:485,30'
          Dst:             i_stream_get_error
        - Src:             'sieve-file-storage-save.c:483,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:486,3'
          Dst:             o_stream_destroy
        - Src:             'sieve-file-storage-save.c:487,3'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:487,3'
          Dst:             i_unlink
        - Src:             'sieve-file-storage-save.c:491,37'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:492,4'
          Dst:             o_stream_get_error
        - Src:             'sieve-file-storage-save.c:490,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:493,3'
          Dst:             o_stream_destroy
        - Src:             'sieve-file-storage-save.c:494,3'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:494,3'
          Dst:             i_unlink
        - Src:             'sieve-file-storage-save.c:497,2'
          Dst:             o_stream_destroy
        - Src:             'sieve-file-storage-save.c:499,13'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:499,6'
          Dst:             rename
        - Src:             'sieve-file-storage-save.c:500,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:501,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-save.c:504,14'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:507,5'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-save.c:505,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:511,5'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:509,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:513,3'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:513,3'
          Dst:             i_unlink
    - functionName:    sieve_file_storage_update_mtime
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - utime
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-file-storage-save.c:391,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage-save.c:390,6'
          Dst:             utime
        - Src:             'sieve-file-storage-save.c:391,11'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:395,4'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-save.c:395,4'
          Dst:             e_error
        - Src:             'sieve-file-storage-save.c:399,4'
          Dst:             e_error
    - functionName:    sieve_file_storage_save_as
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_file_storage_save_to
        - sieve_script_file_from_name
        - str_append
        - str_append_c
        - t_str_new
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:526,14'
          Dst:             t_str_new
        - Src:             'sieve-file-storage-save.c:527,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:528,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:529,24'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-storage-save.c:529,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:530,2'
          Dst:             str_append_c
        - Src:             'sieve-file-storage-save.c:533,5'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-storage-save.c:532,14'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage-save.c:535,9'
          Dst:             sieve_file_storage_save_to
    - functionName:    sieve_file_storage_save_cancel
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - e_warning
        - i_panic
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:439,6'
          Dst:             unlink
        - Src:             'sieve-file-storage-save.c:439,37'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:440,3'
          Dst:             e_warning
        - Src:             'sieve-file-storage-save.c:444,2'
          Dst:             i_panic
    - functionName:    sieve_file_storage_script_move
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - e_warning
        - eacces_error_get
        - i_panic
        - rename
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - t_pop
        - t_push
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:156,2'
          Dst:             t_push
        - Src:             'sieve-file-storage-save.c:162,7'
          Dst:             rename
        - Src:             'sieve-file-storage-save.c:166,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:167,5'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-save.c:170,15'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:174,12'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-save.c:171,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:176,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:184,7'
          Dst:             unlink
        - Src:             'sieve-file-storage-save.c:184,38'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:185,4'
          Dst:             e_warning
        - Src:             'sieve-file-storage-save.c:188,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage-save.c:188,4'
          Dst:             i_panic
    - functionName:    sieve_file_storage_save_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_file_storage_script_move
        - sieve_file_storage_update_mtime
        - sieve_script_file_from_name
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:415,2'
          Dst:             i_panic
        - Src:             'sieve-file-storage-save.c:417,2'
          Dst:             t_push
        - Src:             'sieve-file-storage-save.c:420,4'
          Dst:             sieve_script_file_from_name
        - Src:             'sieve-file-storage-save.c:418,15'
          Dst:             t_strconcat
        - Src:             'sieve-file-storage-save.c:422,13'
          Dst:             sieve_file_storage_script_move
        - Src:             'sieve-file-storage-save.c:424,4'
          Dst:             sieve_file_storage_update_mtime
        - Src:             'sieve-file-storage-save.c:427,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage-save.c:427,4'
          Dst:             i_panic
    - functionName:    sieve_file_storage_save_get_tempscript
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_file_script_open_from_path
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:362,6'
          Dst:             sieve_file_script_open_from_path
        - Src:             'sieve-file-storage-save.c:366,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:373,4'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_save_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          225
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - close
        - e_warning
        - fsync
        - i_panic
        - o_stream_destroy
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - t_pop
        - t_push
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:301,2'
          Dst:             t_push
        - Src:             'sieve-file-storage-save.c:303,3'
          Dst:             o_stream_destroy
        - Src:             'sieve-file-storage-save.c:305,7'
          Dst:             fsync
        - Src:             'sieve-file-storage-save.c:306,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:311,7'
          Dst:             close
        - Src:             'sieve-file-storage-save.c:312,4'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:321,8'
          Dst:             unlink
        - Src:             'sieve-file-storage-save.c:321,39'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:322,5'
          Dst:             e_warning
        - Src:             'sieve-file-storage-save.c:327,4'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:328,8'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:329,5'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-save.c:332,15'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:333,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:339,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage-save.c:339,4'
          Dst:             i_panic
    - functionName:    fsync
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_file_storage_save_continue
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_get_error
        - i_stream_get_name
        - i_unreached
        - o_stream_get_error
        - o_stream_send_istream
        - sieve_storage_set_critical
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-file-storage-save.c:268,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage-save.c:268,10'
          Dst:             o_stream_send_istream
        - Src:             'sieve-file-storage-save.c:273,3'
          Dst:             i_unreached
        - Src:             'sieve-file-storage-save.c:277,4'
          Dst:             i_stream_get_name
        - Src:             'sieve-file-storage-save.c:278,4'
          Dst:             i_stream_get_error
        - Src:             'sieve-file-storage-save.c:275,3'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:283,21'
          Dst:             o_stream_get_error
        - Src:             'sieve-file-storage-save.c:281,3'
          Dst:             sieve_storage_set_critical
    - functionName:    sieve_file_storage_create_tmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - eacces_error_get
        - open
        - sieve_generate_tmp_filename
        - sieve_storage_set_critical
        - sieve_storage_set_error
        - stat
        - str_append
        - str_c
        - str_len
        - str_truncate
        - t_str_new
        - umask
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-file-storage-save.c:94,4'
          Branch Sides:    []
        - Branch String:   'sieve-file-storage-save.c:129,4'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-file-storage-save.c:78,9'
          Dst:             t_str_new
        - Src:             'sieve-file-storage-save.c:79,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:80,2'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:81,15'
          Dst:             str_len
        - Src:             'sieve-file-storage-save.c:84,15'
          Dst:             sieve_generate_tmp_filename
        - Src:             'sieve-file-storage-save.c:85,3'
          Dst:             str_truncate
        - Src:             'sieve-file-storage-save.c:86,3'
          Dst:             str_append
        - Src:             'sieve-file-storage-save.c:91,12'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:91,7'
          Dst:             stat
        - Src:             'sieve-file-storage-save.c:93,14'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:94,12'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:98,6'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-save.c:96,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:104,29'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:102,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:111,5'
          Dst:             umask
        - Src:             'sieve-file-storage-save.c:112,14'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:112,9'
          Dst:             open
        - Src:             'sieve-file-storage-save.c:114,4'
          Dst:             umask
        - Src:             'sieve-file-storage-save.c:116,20'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:123,13'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:125,7'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:126,4'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-save.c:129,12'
          Dst:             __errno_location
        - Src:             'sieve-file-storage-save.c:133,6'
          Dst:             eacces_error_get
        - Src:             'sieve-file-storage-save.c:131,5'
          Dst:             sieve_storage_set_critical
        - Src:             'sieve-file-storage-save.c:139,6'
          Dst:             str_c
        - Src:             'sieve-file-storage-save.c:137,5'
          Dst:             sieve_storage_set_critical
    - functionName:    umask
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    49
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    sieve_file_storage_save_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          261
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - o_stream_create_fd
        - p_strdup
        - sieve_file_storage_create_tmp
        - sieve_file_storage_pre_modify
        - sieve_storage_set_error
        - str_begins_with
        - strlen
        - strncmp
        - strrchr
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:219,6'
          Dst:             sieve_file_storage_pre_modify
        - Src:             'sieve-file-storage-save.c:226,3'
          Dst:             i_panic
        - Src:             'sieve-file-storage-save.c:231,12'
          Dst:             strrchr
        - Src:             'sieve-file-storage-save.c:234,8'
          Dst:             strncmp
        - Src:             'sieve-file-storage-save.c:234,8'
          Dst:             str_begins_with
        - Src:             'sieve-file-storage-save.c:235,8'
          Dst:             strlen
        - Src:             'sieve-file-storage-save.c:236,8'
          Dst:             strlen
        - Src:             'sieve-file-storage-save.c:236,8'
          Dst:             strncmp
        - Src:             'sieve-file-storage-save.c:236,8'
          Dst:             str_begins_with
        - Src:             'sieve-file-storage-save.c:238,5'
          Dst:             sieve_storage_set_error
        - Src:             'sieve-file-storage-save.c:247,2'
          Dst:             t_push
        - Src:             'sieve-file-storage-save.c:248,8'
          Dst:             sieve_file_storage_create_tmp
        - Src:             'sieve-file-storage-save.c:252,32'
          Dst:             p_strdup
        - Src:             'sieve-file-storage-save.c:255,20'
          Dst:             o_stream_create_fd
        - Src:             'sieve-file-storage-save.c:256,22'
          Dst:             p_strdup
        - Src:             'sieve-file-storage-save.c:258,4'
          Dst:             t_pop
        - Src:             'sieve-file-storage-save.c:258,4'
          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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_file_storage_save_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-file-storage-save.c:199,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-file-storage-save.c:200,10'
          Dst:             malloc_multiply_check
        - Src:             'sieve-file-storage-save.c:200,10'
          Dst:             p_malloc
    - functionName:    sieve_dict_script_get_bin_path
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_strconcat
        - sieve_binfile_from_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:205,4'
          Dst:             sieve_binfile_from_name
        - Src:             'sieve-dict-script.c:203,23'
          Dst:             p_strconcat
    - 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:    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:    sieve_dict_script_sequence_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:298,2'
          Dst:             p_free_internal
    - functionName:    sieve_dict_script_sequence_next
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          79
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_dict_script_init
        - sieve_script_open
        - sieve_script_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:282,12'
          Dst:             sieve_dict_script_init
        - Src:             'sieve-dict-script.c:283,6'
          Dst:             sieve_script_open
        - Src:             'sieve-dict-script.c:286,3'
          Dst:             sieve_script_unref
    - functionName:    sieve_dict_script_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_dict_script_alloc
        - sieve_script_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:42,12'
          Dst:             sieve_dict_script_alloc
        - Src:             'sieve-dict-script.c:43,2'
          Dst:             sieve_script_init
    - functionName:    sieve_dict_script_alloc
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:25,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-dict-script.c:26,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-dict-script.c:26,12'
          Dst:             p_malloc
    - functionName:    sieve_dict_script_destroy
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:54,3'
          Dst:             pool_unref
    - functionName:    sieve_dict_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          135
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - dict_escape_string
        - dict_lookup
        - e_debug
        - event_send_abort
        - event_want_level
        - p_strdup
        - sieve_script_set_critical
        - sieve_script_set_not_found_error
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:70,7'
          Dst:             dict_escape_string
        - Src:             'sieve-dict-script.c:69,9'
          Dst:             t_strconcat
        - Src:             'sieve-dict-script.c:75,8'
          Dst:             dict_lookup
        - Src:             'sieve-dict-script.c:79,4'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-dict-script.c:83,4'
          Dst:             event_want_level
        - Src:             'sieve-dict-script.c:83,4'
          Dst:             e_debug
        - Src:             'sieve-dict-script.c:83,4'
          Dst:             event_send_abort
        - Src:             'sieve-dict-script.c:85,4'
          Dst:             sieve_script_set_not_found_error
        - Src:             'sieve-dict-script.c:90,21'
          Dst:             p_strdup
    - functionName:    sieve_dict_script_get_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          137
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dict_escape_string
        - dict_lookup
        - i_stream_create_from_data
        - p_strdup
        - pool_alloconly_create
        - sieve_script_set_critical
        - strlen
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:108,3'
          Dst:             pool_alloconly_create
        - Src:             'sieve-dict-script.c:111,7'
          Dst:             dict_escape_string
        - Src:             'sieve-dict-script.c:110,9'
          Dst:             t_strconcat
        - Src:             'sieve-dict-script.c:116,8'
          Dst:             dict_lookup
        - Src:             'sieve-dict-script.c:120,4'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-dict-script.c:125,4'
          Dst:             sieve_script_set_critical
        - Src:             'sieve-dict-script.c:132,18'
          Dst:             p_strdup
        - Src:             'sieve-dict-script.c:134,12'
          Dst:             strlen
        - Src:             'sieve-dict-script.c:133,14'
          Dst:             i_stream_create_from_data
    - functionName:    sieve_dict_script_binary_read_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          137
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - sieve_binary_block_get_binary
        - sieve_binary_path
        - sieve_binary_read_string
        - sieve_script_label
        - sieve_script_open
        - str_c
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:145,30'
          Dst:             sieve_binary_block_get_binary
        - Src:             'sieve-dict-script.c:148,34'
          Dst:             sieve_script_open
        - Src:             'sieve-dict-script.c:151,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-dict-script.c:152,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-dict-script.c:152,3'
          Dst:             sieve_script_label
        - Src:             'sieve-dict-script.c:152,3'
          Dst:             e_error
        - Src:             'sieve-dict-script.c:157,2'
          Dst:             i_panic
        - Src:             'sieve-dict-script.c:158,13'
          Dst:             str_c
        - Src:             'sieve-dict-script.c:158,6'
          Dst:             strcmp
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             event_want_level
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             sieve_binary_path
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             sieve_script_label
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             str_c
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             e_debug
        - Src:             'sieve-dict-script.c:159,3'
          Dst:             event_send_abort
    - functionName:    sieve_dict_script_binary_write_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_cstring
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:176,2'
          Dst:             sieve_binary_emit_cstring
    - functionName:    sieve_dict_script_binary_dump_metadata
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_dumpf
        - sieve_binary_read_string
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:187,7'
          Dst:             sieve_binary_read_string
        - Src:             'sieve-dict-script.c:190,50'
          Dst:             str_c
        - Src:             'sieve-dict-script.c:190,2'
          Dst:             sieve_binary_dumpf
    - functionName:    sieve_dict_script_binary_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_dict_script_get_bin_path
        - sieve_script_binary_load_default
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:218,11'
          Dst:             sieve_dict_script_get_bin_path
        - Src:             'sieve-dict-script.c:217,9'
          Dst:             sieve_script_binary_load_default
    - functionName:    sieve_dict_script_binary_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_dict_script_get_bin_path
        - sieve_script_binary_save_default
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:229,17'
          Dst:             sieve_dict_script_get_bin_path
        - Src:             'sieve-dict-script.c:228,9'
          Dst:             sieve_script_binary_save_default
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_dict_script_sequence_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/storage/dict/sieve-dict-script.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-dict-script.c:263,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-dict-script.c:263,9'
          Dst:             p_malloc
    - functionName:    _header_get_full_reply_recipient
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 956
      functionLinenumberEnd: 979
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - _msg_address_equals
        - message_address_parse
        - pool_datastack_create
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:960,3'
          Dst:             pool_datastack_create
        - Src:             'cmd-vacation.c:962,3'
          Dst:             strlen
        - Src:             'cmd-vacation.c:959,9'
          Dst:             message_address_parse
        - Src:             'cmd-vacation.c:971,14'
          Dst:             _msg_address_equals
    - functionName:    _msg_address_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - smtp_address_equals_icase
        - smtp_address_init_from_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:892,2'
          Dst:             i_panic
        - Src:             'cmd-vacation.c:893,10'
          Dst:             smtp_address_init_from_msg
        - Src:             'cmd-vacation.c:894,3'
          Dst:             smtp_address_equals_icase
    - functionName:    smtp_address_equals_icase
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_cmp_icase
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-smtp/smtp-address.h:197,10'
          Dst:             smtp_address_cmp_icase
    - functionName:    _get_var_expand_table
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_memdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:1024,9'
          Dst:             p_memdup
    - 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:    _contains_8bit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../util/rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             './../../util/rfc2822.h:33,8'
          Dst:             rfc2822_header_append
    - functionName:    _get_full_reply_recipient
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - _header_get_full_reply_recipient
        - mail_get_first_header
        - sieve_result_mail_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:996,9'
          Dst:             mail_get_first_header
        - Src:             'cmd-vacation.c:998,11'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1005,7'
          Dst:             _header_get_full_reply_recipient
    - functionName:    act_vacation_get_default_subject
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1068
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          161
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - _get_var_expand_table
        - e_error
        - mail_get_first_header_utf8
        - sieve_result_mail_error
        - str_c
        - t_str_new
        - t_strconcat
        - var_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:1040,8'
          Dst:             mail_get_first_header_utf8
        - Src:             'cmd-vacation.c:1042,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1049,16'
          Dst:             t_strconcat
        - Src:             'cmd-vacation.c:1053,8'
          Dst:             t_str_new
        - Src:             'cmd-vacation.c:1055,12'
          Dst:             _get_var_expand_table
        - Src:             'cmd-vacation.c:1057,6'
          Dst:             var_expand
        - Src:             'cmd-vacation.c:1059,3'
          Dst:             e_error
        - Src:             'cmd-vacation.c:1062,16'
          Dst:             t_strconcat
        - Src:             'cmd-vacation.c:1066,15'
          Dst:             str_c
    - functionName:    _header_contains_my_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _msg_address_equals
        - message_address_parse
        - pool_datastack_create
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:903,35'
          Dst:             pool_datastack_create
        - Src:             'cmd-vacation.c:905,7'
          Dst:             strlen
        - Src:             'cmd-vacation.c:903,13'
          Dst:             message_address_parse
        - Src:             'cmd-vacation.c:908,8'
          Dst:             _msg_address_equals
    - 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:             'dovecot/src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    sieve_action_duplicate_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_mark
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:291,9'
          Dst:             sieve_execute_duplicate_mark
    - functionName:    act_vacation_send
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1077
      functionLinenumberEnd: 1214
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          418
      EdgeCount:       77
      CyclomaticComplexity: 22
      functionsReached:
        - _contains_8bit
        - _get_full_reply_recipient
        - act_vacation_get_default_subject
        - mail_get_first_header
        - message_address_first_to_string
        - message_date_create
        - o_stream_nsend
        - rfc2822_header_printf
        - rfc2822_header_utf8_printf
        - rfc2822_header_write
        - rfc2822_header_write_address
        - sieve_get_postmaster
        - sieve_message_get_new_id
        - sieve_result_global_error
        - sieve_result_global_log_error
        - sieve_result_global_warning
        - sieve_result_mail_error
        - sieve_smtp_abort
        - sieve_smtp_available
        - sieve_smtp_finish
        - sieve_smtp_start_single
        - smtp_address_encode
        - str_append
        - str_data
        - str_len
        - str_printfa
        - str_sanitize
        - str_sanitize_utf8
        - t_str_new
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:1090,7'
          Dst:             sieve_smtp_available
        - Src:             'cmd-vacation.c:1091,3'
          Dst:             sieve_result_global_warning
        - Src:             'cmd-vacation.c:1099,9'
          Dst:             act_vacation_get_default_subject
        - Src:             'cmd-vacation.c:1106,12'
          Dst:             str_sanitize_utf8
        - Src:             'cmd-vacation.c:1114,8'
          Dst:             _get_full_reply_recipient
        - Src:             'cmd-vacation.c:1120,9'
          Dst:             sieve_smtp_start_single
        - Src:             'cmd-vacation.c:1122,13'
          Dst:             sieve_message_get_new_id
        - Src:             'cmd-vacation.c:1126,8'
          Dst:             t_str_new
        - Src:             'cmd-vacation.c:1127,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1128,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1129,36'
          Dst:             message_date_create
        - Src:             'cmd-vacation.c:1129,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1132,3'
          Dst:             rfc2822_header_write_address
        - Src:             'cmd-vacation.c:1136,17'
          Dst:             sieve_get_postmaster
        - Src:             'cmd-vacation.c:1139,4'
          Dst:             message_address_first_to_string
        - Src:             'cmd-vacation.c:1137,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1143,9'
          Dst:             message_address_first_to_string
        - Src:             'cmd-vacation.c:1142,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1145,6'
          Dst:             _contains_8bit
        - Src:             'cmd-vacation.c:1146,3'
          Dst:             rfc2822_header_utf8_printf
        - Src:             'cmd-vacation.c:1148,3'
          Dst:             rfc2822_header_printf
        - Src:             'cmd-vacation.c:1152,8'
          Dst:             mail_get_first_header
        - Src:             'cmd-vacation.c:1154,3'
          Dst:             sieve_smtp_abort
        - Src:             'cmd-vacation.c:1155,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1161,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1166,5'
          Dst:             t_strconcat
        - Src:             'cmd-vacation.c:1164,4'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1168,4'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1171,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1174,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1175,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1178,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1180,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1183,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1185,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-vacation.c:1186,3'
          Dst:             str_append
        - Src:             'cmd-vacation.c:1189,2'
          Dst:             str_printfa
        - Src:             'cmd-vacation.c:1190,25'
          Dst:             str_data
        - Src:             'cmd-vacation.c:1190,40'
          Dst:             str_len
        - Src:             'cmd-vacation.c:1190,2'
          Dst:             o_stream_nsend
        - Src:             'cmd-vacation.c:1193,8'
          Dst:             sieve_smtp_finish
        - Src:             'cmd-vacation.c:1196,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1196,4'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:1196,4'
          Dst:             sieve_result_global_error
        - Src:             'cmd-vacation.c:1202,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1202,4'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:1202,4'
          Dst:             sieve_result_global_log_error
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _contains_my_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 938
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - _header_contains_my_address
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:927,3'
          Dst:             t_push
        - Src:             'cmd-vacation.c:928,13'
          Dst:             _header_contains_my_address
        - Src:             'cmd-vacation.c:929,5'
          Dst:             t_pop
        - Src:             'cmd-vacation.c:929,5'
          Dst:             i_panic
    - functionName:    _is_system_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          95
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - str_begins_with
        - strcasecmp
        - strncmp
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:873,6'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:875,6'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:877,6'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:879,6'
          Dst:             strstr
        - Src:             'cmd-vacation.c:881,6'
          Dst:             strncmp
        - Src:             'cmd-vacation.c:881,6'
          Dst:             str_begins_with
    - 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:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_action_duplicate_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:281,9'
          Dst:             sieve_execute_duplicate_check
    - functionName:    act_vacation_hash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_final
        - md5_init
        - md5_update
        - strlen
        - t_str_lcase
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:1220,22'
          Dst:             t_str_lcase
        - Src:             'cmd-vacation.c:1223,2'
          Dst:             md5_init
        - Src:             'cmd-vacation.c:1224,26'
          Dst:             strlen
        - Src:             'cmd-vacation.c:1224,2'
          Dst:             md5_update
        - Src:             'cmd-vacation.c:1226,33'
          Dst:             strlen
        - Src:             'cmd-vacation.c:1226,2'
          Dst:             md5_update
        - Src:             'cmd-vacation.c:1228,2'
          Dst:             md5_final
    - functionName:    sieve_action_duplicate_check_available
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_check_available
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:271,9'
          Dst:             sieve_execute_duplicate_check_available
    - functionName:    smtp_address_isnull
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      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_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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_vacation_validate_mime_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_vacation_validate_stringlist_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:363,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-vacation.c:368,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_vacation_validate_string_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          206
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - sieve_address_validate_str
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_error
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:303,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-vacation.c:310,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-vacation.c:320,5'
          Dst:             t_push
        - Src:             'cmd-vacation.c:321,14'
          Dst:             sieve_address_validate_str
        - Src:             'cmd-vacation.c:325,6'
          Dst:             str_c
        - Src:             'cmd-vacation.c:325,6'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:325,6'
          Dst:             sieve_validator_error
        - Src:             'cmd-vacation.c:331,6'
          Dst:             t_pop
        - Src:             'cmd-vacation.c:331,6'
          Dst:             i_panic
        - Src:             'cmd-vacation.c:350,10'
          Dst:             sieve_ast_arguments_detach
    - functionName:    cmd_vacation_validate_number_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          221
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_unreached
        - sieve_ast_argument_number_set
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - sieve_validator_warning
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:246,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-vacation.c:251,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-vacation.c:261,3'
          Dst:             i_unreached
        - Src:             'cmd-vacation.c:263,2'
          Dst:             i_panic
        - Src:             'cmd-vacation.c:269,3'
          Dst:             sieve_validator_warning
        - Src:             'cmd-vacation.c:278,3'
          Dst:             sieve_validator_warning
        - Src:             'cmd-vacation.c:285,2'
          Dst:             sieve_ast_argument_number_set
    - functionName:    ext_vacation_register_seconds_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     externalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_external_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:422,2'
          Dst:             sieve_validator_register_external_tag
    - functionName:    cmd_vacation_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:403,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-vacation.c:405,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-vacation.c:407,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-vacation.c:409,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-vacation.c:411,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-vacation.c:413,2'
          Dst:             sieve_validator_register_tag
    - functionName:    cmd_vacation_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:440,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-vacation.c:440,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-vacation.c:440,13'
          Dst:             p_malloc
    - functionName:    cmd_vacation_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          251
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - sieve_ast_argument_attach
        - sieve_ast_argument_string_create
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - str_append
        - str_append_str
        - str_len
        - t_pop
        - t_push
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:460,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-vacation.c:464,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-vacation.c:469,3'
          Dst:             t_push
        - Src:             'cmd-vacation.c:472,24'
          Dst:             str_len
        - Src:             'cmd-vacation.c:477,6'
          Dst:             str_len
        - Src:             'cmd-vacation.c:480,6'
          Dst:             str_len
        - Src:             'cmd-vacation.c:486,13'
          Dst:             t_str_new
        - Src:             'cmd-vacation.c:487,4'
          Dst:             str_append_str
        - Src:             'cmd-vacation.c:490,5'
          Dst:             str_append_str
        - Src:             'cmd-vacation.c:492,5'
          Dst:             str_append
        - Src:             'cmd-vacation.c:495,5'
          Dst:             str_append_str
        - Src:             'cmd-vacation.c:497,5'
          Dst:             str_append
        - Src:             'cmd-vacation.c:499,4'
          Dst:             str_append
        - Src:             'cmd-vacation.c:505,5'
          Dst:             sieve_ast_argument_string_create
        - Src:             'cmd-vacation.c:508,5'
          Dst:             t_pop
        - Src:             'cmd-vacation.c:508,5'
          Dst:             i_panic
        - Src:             'cmd-vacation.c:510,8'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-vacation.c:515,9'
          Dst:             sieve_ast_argument_attach
    - functionName:    cmd_vacation_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:530,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-vacation.c:533,7'
          Dst:             sieve_generate_arguments
    - functionName:    ext_vacation_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          125
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-vacation.c:564,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-vacation.c:548,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-vacation.c:549,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-vacation.c:557,14'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-vacation.c:566,11'
          Dst:             sieve_opr_number_dump
        - Src:             'cmd-vacation.c:569,11'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-vacation.c:572,11'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-vacation.c:575,11'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'cmd-vacation.c:579,4'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-vacation.c:590,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-vacation.c:591,3'
          Dst:             sieve_opr_string_dump
    - functionName:    ext_vacation_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          379
      EdgeCount:       65
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_address_parse_str
        - sieve_opr_number_read
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_result_add_action
        - sieve_result_pool
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
        - sieve_stringlist_reset
        - smtp_address_clone
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-vacation.c:631,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-vacation.c:624,14'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-vacation.c:633,10'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-vacation.c:637,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-vacation.c:641,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-vacation.c:645,10'
          Dst:             sieve_opr_stringlist_read
        - Src:             'cmd-vacation.c:654,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-vacation.c:665,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-vacation.c:668,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-vacation.c:678,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-vacation.c:679,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-vacation.c:680,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-vacation.c:682,22'
          Dst:             str_c
        - Src:             'cmd-vacation.c:682,9'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:681,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-vacation.c:689,18'
          Dst:             sieve_address_parse_str
        - Src:             'cmd-vacation.c:691,4'
          Dst:             str_c
        - Src:             'cmd-vacation.c:691,4'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:691,4'
          Dst:             sieve_runtime_error
        - Src:             'cmd-vacation.c:700,9'
          Dst:             sieve_result_pool
        - Src:             'cmd-vacation.c:701,8'
          Dst:             malloc_multiply_check
        - Src:             'cmd-vacation.c:701,8'
          Dst:             p_malloc
        - Src:             'cmd-vacation.c:702,31'
          Dst:             str_c
        - Src:             'cmd-vacation.c:702,16'
          Dst:             p_strdup
        - Src:             'cmd-vacation.c:703,31'
          Dst:             str_c
        - Src:             'cmd-vacation.c:703,16'
          Dst:             p_strdup
        - Src:             'cmd-vacation.c:707,33'
          Dst:             str_c
        - Src:             'cmd-vacation.c:707,18'
          Dst:             p_strdup
        - Src:             'cmd-vacation.c:709,30'
          Dst:             str_c
        - Src:             'cmd-vacation.c:709,15'
          Dst:             p_strdup
        - Src:             'cmd-vacation.c:710,23'
          Dst:             smtp_address_clone
        - Src:             'cmd-vacation.c:719,3'
          Dst:             sieve_stringlist_reset
        - Src:             'cmd-vacation.c:721,3'
          Dst:             array_create_i
        - Src:             'cmd-vacation.c:724,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'cmd-vacation.c:729,11'
          Dst:             sieve_address_parse_str
        - Src:             'cmd-vacation.c:731,12'
          Dst:             smtp_address_clone
        - Src:             'cmd-vacation.c:732,5'
          Dst:             array_append_i
        - Src:             'cmd-vacation.c:734,5'
          Dst:             str_c
        - Src:             'cmd-vacation.c:734,5'
          Dst:             str_sanitize
        - Src:             'cmd-vacation.c:734,5'
          Dst:             sieve_runtime_error
        - Src:             'cmd-vacation.c:744,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-vacation.c:749,9'
          Dst:             array_append_space_i
        - Src:             'cmd-vacation.c:750,20'
          Dst:             array_idx_i
        - Src:             'cmd-vacation.c:753,6'
          Dst:             sieve_result_add_action
    - functionName:    act_vacation_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_action_is_executed
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:771,7'
          Dst:             sieve_action_is_executed
        - Src:             'cmd-vacation.c:772,3'
          Dst:             sieve_runtime_error
    - functionName:    act_vacation_check_conflict
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     externalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_action_is_executed
        - sieve_runtime_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:789,8'
          Dst:             sieve_action_is_executed
        - Src:             'cmd-vacation.c:790,4'
          Dst:             sieve_runtime_error
    - functionName:    act_vacation_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_result_action_printf
        - sieve_result_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:814,2'
          Dst:             sieve_result_action_printf
        - Src:             'cmd-vacation.c:815,2'
          Dst:             sieve_result_printf
        - Src:             'cmd-vacation.c:818,3'
          Dst:             sieve_result_printf
        - Src:             'cmd-vacation.c:822,3'
          Dst:             sieve_result_printf
        - Src:             'cmd-vacation.c:826,3'
          Dst:             sieve_result_printf
        - Src:             'cmd-vacation.c:829,2'
          Dst:             sieve_result_printf
    - functionName:    act_vacation_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/cmd-vacation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1234
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         175
      ICount:          1032
      EdgeCount:       238
      CyclomaticComplexity: 65
      functionsReached:
        - _contains_my_address
        - _is_system_address
        - act_vacation_hash
        - act_vacation_send
        - i_panic
        - mail_get_headers
        - message_address_init_from_smtp
        - sieve_action_create_finish_event
        - sieve_action_duplicate_check
        - sieve_action_duplicate_check_available
        - sieve_action_duplicate_mark
        - sieve_get_user_email
        - sieve_message_get_final_recipient
        - sieve_message_get_mail
        - sieve_message_get_orig_recipient
        - sieve_message_get_sender
        - sieve_result_critical
        - sieve_result_event_log
        - sieve_result_global_log
        - sieve_result_global_warning
        - sieve_result_mail_error
        - smtp_address_encode
        - smtp_address_equals_icase
        - smtp_address_isnull
        - strcasecmp
        - t_pop
        - t_push
        - t_str_trim
        - t_strdup_printf
        - t_strsplit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-vacation.c:1242,22'
          Dst:             sieve_message_get_mail
        - Src:             'cmd-vacation.c:1251,3'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1256,11'
          Dst:             sieve_message_get_sender
        - Src:             'cmd-vacation.c:1257,14'
          Dst:             sieve_message_get_final_recipient
        - Src:             'cmd-vacation.c:1264,6'
          Dst:             smtp_address_isnull
        - Src:             'cmd-vacation.c:1265,3'
          Dst:             sieve_result_global_warning
        - Src:             'cmd-vacation.c:1273,6'
          Dst:             smtp_address_isnull
        - Src:             'cmd-vacation.c:1274,3'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1280,6'
          Dst:             smtp_address_equals_icase
        - Src:             'cmd-vacation.c:1281,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1281,3'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1294,8'
          Dst:             smtp_address_equals_icase
        - Src:             'cmd-vacation.c:1295,5'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1295,5'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1307,6'
          Dst:             sieve_action_duplicate_check_available
        - Src:             'cmd-vacation.c:1310,27'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1310,3'
          Dst:             act_vacation_hash
        - Src:             'cmd-vacation.c:1312,9'
          Dst:             sieve_action_duplicate_check
        - Src:             'cmd-vacation.c:1316,4'
          Dst:             sieve_result_critical
        - Src:             'cmd-vacation.c:1324,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1324,4'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1335,9'
          Dst:             mail_get_headers
        - Src:             'cmd-vacation.c:1337,11'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1344,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1344,4'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1354,8'
          Dst:             mail_get_headers
        - Src:             'cmd-vacation.c:1356,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1364,8'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1365,5'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1365,5'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1376,8'
          Dst:             mail_get_headers
        - Src:             'cmd-vacation.c:1378,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1385,8'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1386,8'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1387,8'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1388,5'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1388,5'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1399,8'
          Dst:             mail_get_headers
        - Src:             'cmd-vacation.c:1401,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1409,31'
          Dst:             t_strsplit
        - Src:             'cmd-vacation.c:1412,24'
          Dst:             t_str_trim
        - Src:             'cmd-vacation.c:1414,9'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1415,9'
          Dst:             strcasecmp
        - Src:             'cmd-vacation.c:1416,6'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1416,6'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1429,6'
          Dst:             _is_system_address
        - Src:             'cmd-vacation.c:1430,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1430,3'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1438,20'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'cmd-vacation.c:1448,9'
          Dst:             mail_get_headers
        - Src:             'cmd-vacation.c:1450,11'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-vacation.c:1456,8'
          Dst:             _contains_my_address
        - Src:             'cmd-vacation.c:1458,5'
          Dst:             message_address_init_from_smtp
        - Src:             'cmd-vacation.c:1464,9'
          Dst:             smtp_address_isnull
        - Src:             'cmd-vacation.c:1465,8'
          Dst:             _contains_my_address
        - Src:             'cmd-vacation.c:1467,5'
          Dst:             message_address_init_from_smtp
        - Src:             'cmd-vacation.c:1479,19'
          Dst:             _contains_my_address
        - Src:             'cmd-vacation.c:1483,7'
          Dst:             message_address_init_from_smtp
        - Src:             'cmd-vacation.c:1495,8'
          Dst:             _contains_my_address
        - Src:             'cmd-vacation.c:1497,5'
          Dst:             message_address_init_from_smtp
        - Src:             'cmd-vacation.c:1512,18'
          Dst:             sieve_get_user_email
        - Src:             'cmd-vacation.c:1513,4'
          Dst:             message_address_init_from_smtp
        - Src:             'cmd-vacation.c:1523,9'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1521,6'
          Dst:             t_strdup_printf
        - Src:             'cmd-vacation.c:1529,6'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1527,22'
          Dst:             t_strdup_printf
        - Src:             'cmd-vacation.c:1532,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1532,4'
          Dst:             sieve_result_global_log
        - Src:             'cmd-vacation.c:1546,2'
          Dst:             t_push
        - Src:             'cmd-vacation.c:1547,9'
          Dst:             act_vacation_send
        - Src:             'cmd-vacation.c:1551,4'
          Dst:             t_pop
        - Src:             'cmd-vacation.c:1551,4'
          Dst:             i_panic
        - Src:             'cmd-vacation.c:1559,4'
          Dst:             sieve_action_create_finish_event
        - Src:             'cmd-vacation.c:1561,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-vacation.c:1561,3'
          Dst:             sieve_result_event_log
        - Src:             'cmd-vacation.c:1575,4'
          Dst:             sieve_action_duplicate_mark
    - 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:    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:    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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_vacation_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation-common.c:43,2'
          Dst:             pool_unref
        - Src:             'ext-vacation-common.c:44,2'
          Dst:             p_free_internal
    - functionName:    ext_vacation_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vacation/ext-vacation-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - ext_vacation_unload
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vacation-common.c:20,3'
          Dst:             ext_vacation_unload
        - Src:             'ext-vacation-common.c:24,6'
          Dst:             settings_get
        - Src:             'ext-vacation-common.c:26,3'
          Dst:             e_error
        - Src:             'ext-vacation-common.c:30,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-vacation-common.c:30,11'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,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:    mcht_relational_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/relational/ext-relational-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          337
      EdgeCount:       59
      CyclomaticComplexity: 10
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_argument_type_name
        - sieve_ast_arguments_detach
        - sieve_ast_pool
        - sieve_validator_error
        - str_c
        - str_len
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ext-relational-common.c:75,3'
          Branch Sides:    []
        - Branch String:   'ext-relational-common.c:78,4'
          Branch Sides:    []
        - Branch String:   'ext-relational-common.c:91,4'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-relational-common.c:45,16'
          Dst:             sieve_ast_pool
        - Src:             'ext-relational-common.c:58,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'ext-relational-common.c:58,3'
          Dst:             sieve_validator_error
        - Src:             'ext-relational-common.c:72,6'
          Dst:             str_len
        - Src:             'ext-relational-common.c:73,30'
          Dst:             str_c
        - Src:             'ext-relational-common.c:123,3'
          Dst:             str_c
        - Src:             'ext-relational-common.c:123,3'
          Dst:             str_sanitize
        - Src:             'ext-relational-common.c:123,3'
          Dst:             sieve_validator_error
        - Src:             'ext-relational-common.c:134,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'ext-relational-common.c:142,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-relational-common.c:142,9'
          Dst:             p_malloc
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_operand_runtime_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_read
        - sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:57,7'
          Dst:             sieve_operand_read
        - Src:             './../../sieve-code.h:58,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_is_omitted
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_flag_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/cmd-flag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          154
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - i_unreached
        - sieve_operand_is_omitted
        - sieve_operand_runtime_read
        - sieve_opr_stringlist_read
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_variable_operand_read_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-flag.c:207,8'
          Dst:             sieve_operand_runtime_read
        - Src:             'cmd-flag.c:212,7'
          Dst:             sieve_operand_is_omitted
        - Src:             'cmd-flag.c:214,9'
          Dst:             sieve_variable_operand_read_data
        - Src:             'cmd-flag.c:221,9'
          Dst:             sieve_opr_stringlist_read
        - Src:             'cmd-flag.c:232,9'
          Dst:             sieve_opr_stringlist_read
        - Src:             'cmd-flag.c:245,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-flag.c:249,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-flag.c:253,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-flag.c:257,3'
          Dst:             i_unreached
        - Src:             'cmd-flag.c:260,2'
          Dst:             sieve_runtime_trace_descend
    - functionName:    cmd_flag_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/cmd-flag.c'
      linkageType:     externalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_operand_is_omitted
        - sieve_operand_read
        - sieve_opr_string_dump_data
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-flag.c:168,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-flag.c:169,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-flag.c:171,2'
          Dst:             sieve_code_mark
        - Src:             'cmd-flag.c:172,7'
          Dst:             sieve_operand_read
        - Src:             'cmd-flag.c:173,3'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-flag.c:177,7'
          Dst:             sieve_operand_is_omitted
        - Src:             'cmd-flag.c:178,11'
          Dst:             sieve_opr_string_dump_data
        - Src:             'cmd-flag.c:180,4'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'cmd-flag.c:183,9'
          Dst:             sieve_opr_stringlist_dump
    - functionName:    cmd_flag_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/cmd-flag.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - sieve_generate_argument
        - sieve_operation_emit
        - sieve_opr_omitted_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-flag.c:131,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-flag.c:134,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-flag.c:137,3'
          Dst:             sieve_operation_emit
        - Src:             'cmd-flag.c:146,3'
          Dst:             sieve_opr_omitted_emit
        - Src:             'cmd-flag.c:147,8'
          Dst:             sieve_generate_argument
        - Src:             'cmd-flag.c:151,8'
          Dst:             sieve_generate_argument
        - Src:             'cmd-flag.c:153,8'
          Dst:             sieve_generate_argument
    - functionName:    _get_initial_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mail_get_flags
        - mail_get_keywords
        - sieve_result_get_message_data
        - str_printfa
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:195,3'
          Dst:             sieve_result_get_message_data
        - Src:             'ext-imap4flags-common.c:199,15'
          Dst:             mail_get_flags
        - Src:             'ext-imap4flags-common.c:200,18'
          Dst:             mail_get_keywords
        - Src:             'ext-imap4flags-common.c:203,3'
          Dst:             str_printfa
        - Src:             'ext-imap4flags-common.c:205,3'
          Dst:             str_printfa
        - Src:             'ext-imap4flags-common.c:207,3'
          Dst:             str_printfa
        - Src:             'ext-imap4flags-common.c:209,3'
          Dst:             str_printfa
        - Src:             'ext-imap4flags-common.c:211,3'
          Dst:             str_printfa
        - Src:             'ext-imap4flags-common.c:214,3'
          Dst:             str_printfa
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    _get_result_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _get_initial_flags
        - malloc_multiply_check
        - p_malloc
        - sieve_result_extension_get_context
        - sieve_result_extension_set_context
        - sieve_result_pool
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:225,4'
          Dst:             sieve_result_extension_get_context
        - Src:             'ext-imap4flags-common.c:228,17'
          Dst:             sieve_result_pool
        - Src:             'ext-imap4flags-common.c:230,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-imap4flags-common.c:230,10'
          Dst:             p_malloc
        - Src:             'ext-imap4flags-common.c:231,26'
          Dst:             str_new
        - Src:             'ext-imap4flags-common.c:232,3'
          Dst:             _get_initial_flags
        - Src:             'ext-imap4flags-common.c:234,3'
          Dst:             sieve_result_extension_set_context
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flags_list_set_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flags_list_add_flags
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:471,2'
          Dst:             str_truncate
        - Src:             'ext-imap4flags-common.c:472,2'
          Dst:             flags_list_add_flags
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    flags_list_add_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          62
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - flags_list_flag_exists
        - sieve_ext_imap4flags_flag_is_valid
        - str_append
        - str_append_c
        - str_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:446,2'
          Dst:             ext_imap4flags_iter_init
        - Src:             'ext-imap4flags-common.c:448,16'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'ext-imap4flags-common.c:449,7'
          Dst:             sieve_ext_imap4flags_flag_is_valid
        - Src:             'ext-imap4flags-common.c:450,8'
          Dst:             flags_list_flag_exists
        - Src:             'ext-imap4flags-common.c:451,8'
          Dst:             str_len
        - Src:             'ext-imap4flags-common.c:452,5'
          Dst:             str_append_c
        - Src:             'ext-imap4flags-common.c:453,4'
          Dst:             str_append
    - functionName:    ext_imap4flags_iter_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_imap4flags_iter_clear
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:324,2'
          Dst:             ext_imap4flags_iter_clear
    - functionName:    ext_imap4flags_iter_get_flag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_imap4flags_iter_get_flag_str
        - str_c
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:386,19'
          Dst:             ext_imap4flags_iter_get_flag_str
        - Src:             'ext-imap4flags-common.c:391,9'
          Dst:             str_c
    - functionName:    sieve_ext_imap4flags_flag_is_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          211
      EdgeCount:       62
      CyclomaticComplexity: 20
      functionsReached:
        - strcmp
        - t_str_ucase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:285,22'
          Dst:             t_str_ucase
        - Src:             'ext-imap4flags-common.c:287,7'
          Dst:             strcmp
        - Src:             'ext-imap4flags-common.c:288,7'
          Dst:             strcmp
        - Src:             'ext-imap4flags-common.c:289,7'
          Dst:             strcmp
        - Src:             'ext-imap4flags-common.c:290,7'
          Dst:             strcmp
        - Src:             'ext-imap4flags-common.c:291,7'
          Dst:             strcmp
    - functionName:    flags_list_flag_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:420,2'
          Dst:             ext_imap4flags_iter_init
        - Src:             'ext-imap4flags-common.c:421,16'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'ext-imap4flags-common.c:422,7'
          Dst:             strcasecmp
    - 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:    6
      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:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    ext_imap4flags_iter_get_flag_str
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          177
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - str_append_data
        - str_data
        - str_len
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:342,8'
          Dst:             str_len
        - Src:             'ext-imap4flags-common.c:347,11'
          Dst:             str_data
        - Src:             'ext-imap4flags-common.c:361,22'
          Dst:             t_str_new
        - Src:             'ext-imap4flags-common.c:362,5'
          Dst:             str_append_data
    - 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_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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    ext_imap4flags_iter_clear
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_imap4flags_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_imap4flags_iter_clear
        - ext_imap4flags_iter_init
        - sieve_stringlist_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:700,3'
          Dst:             sieve_stringlist_reset
        - Src:             'ext-imap4flags-common.c:701,3'
          Dst:             ext_imap4flags_iter_clear
        - Src:             'ext-imap4flags-common.c:703,3'
          Dst:             ext_imap4flags_iter_init
    - functionName:    ext_imap4flags_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 663
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ext_imap4flags_iter_get_flag_str
        - ext_imap4flags_iter_init
        - flags_list_set_flags
        - sieve_stringlist_next_item
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:667,19'
          Dst:             ext_imap4flags_iter_get_flag_str
        - Src:             'ext-imap4flags-common.c:674,9'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-imap4flags-common.c:682,29'
          Dst:             t_str_new
        - Src:             'ext-imap4flags-common.c:684,4'
          Dst:             flags_list_set_flags
        - Src:             'ext-imap4flags-common.c:689,3'
          Dst:             ext_imap4flags_iter_init
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:77,2'
          Dst:             buffer_delete
    - functionName:    ext_imap4flags_iter_delete_last
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_delete
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:397,21'
          Dst:             str_len
        - Src:             'ext-imap4flags-common.c:398,18'
          Dst:             str_len
        - Src:             'ext-imap4flags-common.c:399,22'
          Dst:             str_len
        - Src:             'ext-imap4flags-common.c:402,2'
          Dst:             str_delete
    - functionName:    flags_list_flag_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_imap4flags_iter_delete_last
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:433,2'
          Dst:             ext_imap4flags_iter_init
        - Src:             'ext-imap4flags-common.c:435,16'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'ext-imap4flags-common.c:436,7'
          Dst:             strcasecmp
        - Src:             'ext-imap4flags-common.c:437,4'
          Dst:             ext_imap4flags_iter_delete_last
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_imap4flags_get_implicit_flags_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_flags_string
        - ext_imap4flags_iter_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:726,24'
          Dst:             _get_flags_string
        - Src:             'ext-imap4flags-common.c:728,2'
          Dst:             ext_imap4flags_iter_init
    - functionName:    _get_flags_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _get_result_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:244,3'
          Dst:             _get_result_context
    - functionName:    ext_imap4flags_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:624,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-imap4flags-common.c:624,12'
          Dst:             t_malloc0
    - functionName:    ext_imap4flags_stringlist_create_single
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_imap4flags_iter_init
        - flags_list_set_flags
        - malloc_multiply_check
        - t_malloc0
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:642,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-imap4flags-common.c:642,12'
          Dst:             t_malloc0
        - Src:             'ext-imap4flags-common.c:650,27'
          Dst:             t_str_new
        - Src:             'ext-imap4flags-common.c:651,3'
          Dst:             flags_list_set_flags
        - Src:             'ext-imap4flags-common.c:656,2'
          Dst:             ext_imap4flags_iter_init
    - functionName:    sieve_ext_imap4flags_get_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - _get_flags_string
        - ext_imap4flags_stringlist_create
        - ext_imap4flags_stringlist_create_single
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:715,3'
          Dst:             i_panic
        - Src:             'ext-imap4flags-common.c:717,10'
          Dst:             _get_flags_string
        - Src:             'ext-imap4flags-common.c:716,10'
          Dst:             ext_imap4flags_stringlist_create_single
        - Src:             'ext-imap4flags-common.c:719,9'
          Dst:             ext_imap4flags_stringlist_create
    - functionName:    flags_list_remove_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - flags_list_flag_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:463,2'
          Dst:             ext_imap4flags_iter_init
        - Src:             'ext-imap4flags-common.c:465,16'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'ext-imap4flags-common.c:466,3'
          Dst:             flags_list_flag_delete
    - functionName:    sieve_ext_imap4flags_remove_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ext_imap4flags_get_flag_variable
        - flags_list_remove_flags
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:576,24'
          Dst:             ext_imap4flags_get_flag_variable
        - Src:             'ext-imap4flags-common.c:583,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-imap4flags-common.c:587,10'
          Dst:             str_c
        - Src:             'ext-imap4flags-common.c:585,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-imap4flags-common.c:589,4'
          Dst:             flags_list_remove_flags
    - functionName:    ext_imap4flags_get_flag_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - _get_flags_string
        - i_panic
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_variable_get_identifier
        - sieve_variable_get_modifiable
        - sieve_variable_get_varid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:489,7'
          Dst:             sieve_runtime_trace_active
        - Src:             'ext-imap4flags-common.c:492,10'
          Dst:             sieve_variable_get_identifier
        - Src:             'ext-imap4flags-common.c:494,13'
          Dst:             sieve_variable_get_varid
        - Src:             'ext-imap4flags-common.c:496,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-imap4flags-common.c:501,8'
          Dst:             sieve_variable_get_modifiable
        - Src:             'ext-imap4flags-common.c:504,3'
          Dst:             i_panic
        - Src:             'ext-imap4flags-common.c:505,11'
          Dst:             _get_flags_string
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_ext_imap4flags_add_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ext_imap4flags_get_flag_variable
        - flags_list_add_flags
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:546,24'
          Dst:             ext_imap4flags_get_flag_variable
        - Src:             'ext-imap4flags-common.c:553,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-imap4flags-common.c:557,10'
          Dst:             str_c
        - Src:             'ext-imap4flags-common.c:555,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-imap4flags-common.c:559,4'
          Dst:             flags_list_add_flags
    - functionName:    flags_list_clear_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:477,2'
          Dst:             str_truncate
    - functionName:    sieve_ext_imap4flags_set_flags
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ext_imap4flags_get_flag_variable
        - flags_list_add_flags
        - flags_list_clear_flags
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:516,24'
          Dst:             ext_imap4flags_get_flag_variable
        - Src:             'ext-imap4flags-common.c:523,3'
          Dst:             flags_list_clear_flags
        - Src:             'ext-imap4flags-common.c:524,17'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-imap4flags-common.c:528,10'
          Dst:             str_c
        - Src:             'ext-imap4flags-common.c:526,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-imap4flags-common.c:530,4'
          Dst:             flags_list_add_flags
    - functionName:    ext_imap4flags_runtime_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_add_implicit_side_effect
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:259,2'
          Dst:             sieve_result_add_implicit_side_effect
    - functionName:    sieve_ext_imap4flags_register_side_effect
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_persistent_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:180,2'
          Dst:             sieve_validator_register_persistent_tag
    - functionName:    ext_imap4flags_attach_flags_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_external_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:171,2'
          Dst:             sieve_validator_register_external_tag
    - functionName:    ext_imap4flags_command_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          400
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - ext_imap4flags_iter_get_flag
        - ext_imap4flags_iter_init
        - sieve_ast_argument_type_name
        - sieve_command_type_name
        - sieve_ext_imap4flags_flag_is_valid
        - sieve_ext_variables_is_active
        - sieve_validator_argument_activate
        - sieve_validator_error
        - sieve_validator_warning
        - sieve_variable_argument_activate
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-imap4flags-common.c:47,3'
          Dst:             sieve_command_type_name
        - Src:             'ext-imap4flags-common.c:47,3'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:58,3'
          Dst:             sieve_command_type_name
        - Src:             'ext-imap4flags-common.c:58,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'ext-imap4flags-common.c:58,3'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:76,6'
          Dst:             sieve_ast_argument_type_name
        - Src:             'ext-imap4flags-common.c:76,6'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:85,5'
          Dst:             sieve_command_type_name
        - Src:             'ext-imap4flags-common.c:85,5'
          Dst:             sieve_ast_argument_type_name
        - Src:             'ext-imap4flags-common.c:85,5'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:100,8'
          Dst:             sieve_ext_variables_is_active
        - Src:             'ext-imap4flags-common.c:101,4'
          Dst:             sieve_command_type_name
        - Src:             'ext-imap4flags-common.c:101,4'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:110,8'
          Dst:             sieve_variable_argument_activate
        - Src:             'ext-imap4flags-common.c:117,4'
          Dst:             sieve_command_type_name
        - Src:             'ext-imap4flags-common.c:117,4'
          Dst:             sieve_ast_argument_type_name
        - Src:             'ext-imap4flags-common.c:117,4'
          Dst:             sieve_validator_error
        - Src:             'ext-imap4flags-common.c:130,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'ext-imap4flags-common.c:139,3'
          Dst:             ext_imap4flags_iter_init
        - Src:             'ext-imap4flags-common.c:141,18'
          Dst:             ext_imap4flags_iter_get_flag
        - Src:             'ext-imap4flags-common.c:142,9'
          Dst:             sieve_ext_imap4flags_flag_is_valid
        - Src:             'ext-imap4flags-common.c:143,5'
          Dst:             str_sanitize
        - Src:             'ext-imap4flags-common.c:143,5'
          Dst:             sieve_validator_warning
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    _create_variable_argument
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-global.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_argument_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-global.c:69,3'
          Dst:             sieve_argument_create
    - functionName:    opc_global_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-global.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          124
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_include_binary_get_global_scope
        - ext_include_interpreter_get_global_variables
        - sieve_binary_read_unsigned
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_variable_get_modifiable
        - sieve_variable_scope_binary_get
        - sieve_variable_scope_get_variables
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-global.c:249,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-global.c:250,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-global.c:255,16'
          Dst:             ext_include_binary_get_global_scope
        - Src:             'cmd-global.c:256,17'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'cmd-global.c:257,9'
          Dst:             sieve_variable_scope_get_variables
        - Src:             'cmd-global.c:258,12'
          Dst:             ext_include_interpreter_get_global_variables
        - Src:             'cmd-global.c:264,8'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-global.c:266,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-global.c:272,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-global.c:279,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-global.c:285,9'
          Dst:             sieve_variable_get_modifiable
    - functionName:    opc_global_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-global.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ext_include_binary_get_global_scope
        - sieve_binary_read_unsigned
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_variable_scope_binary_get
        - sieve_variable_scope_get_variables
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-global.c:208,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-global.c:211,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-global.c:213,16'
          Dst:             ext_include_binary_get_global_scope
        - Src:             'cmd-global.c:214,17'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'cmd-global.c:215,9'
          Dst:             sieve_variable_scope_get_variables
        - Src:             'cmd-global.c:217,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-global.c:222,3'
          Dst:             sieve_code_mark
        - Src:             'cmd-global.c:223,8'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-global.c:228,3'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_global_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-global.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_unreached
        - sieve_binary_emit_unsigned
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-global.c:164,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-global.c:171,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'cmd-global.c:172,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'cmd-global.c:178,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'cmd-global.c:185,10'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'cmd-global.c:190,3'
          Dst:             i_unreached
    - functionName:    cmd_global_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-global.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          274
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - _create_variable_argument
        - ext_include_validator_have_variables
        - ext_include_variable_import_global
        - sieve_ast_argument_type_name
        - sieve_ast_node_detach
        - sieve_ast_stringlist_join
        - sieve_command_prev
        - sieve_validator_error
        - sieve_validator_failed
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-global.c:80,31'
          Dst:             sieve_command_prev
        - Src:             'cmd-global.c:83,7'
          Dst:             ext_include_validator_have_variables
        - Src:             'cmd-global.c:84,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-global.c:94,28'
          Dst:             str_c
        - Src:             'cmd-global.c:97,9'
          Dst:             ext_include_variable_import_global
        - Src:             'cmd-global.c:102,19'
          Dst:             _create_variable_argument
        - Src:             'cmd-global.c:110,5'
          Dst:             str_c
        - Src:             'cmd-global.c:113,10'
          Dst:             ext_include_variable_import_global
        - Src:             'cmd-global.c:118,24'
          Dst:             _create_variable_argument
        - Src:             'cmd-global.c:123,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'cmd-global.c:123,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-global.c:133,7'
          Dst:             sieve_validator_failed
        - Src:             'cmd-global.c:135,28'
          Dst:             sieve_ast_stringlist_join
        - Src:             'cmd-global.c:141,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-global.c:148,3'
          Dst:             sieve_ast_node_detach
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    ext_include_script_location_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./ext-include-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   './ext-include-common.h:39,2'
          Branch Sides:    []
      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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_include_validate_boolean_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:172,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    cmd_include_validate_location_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:136,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-include.c:153,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    opc_include_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ext_include_execute_include
        - sieve_binary_read_unsigned
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:393,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-include.c:394,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-include.c:398,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-include.c:399,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-include.c:403,9'
          Dst:             ext_include_execute_include
    - functionName:    opc_include_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - ext_include_binary_get_context
        - ext_include_binary_script_get_included
        - sieve_binary_block_get_id
        - sieve_binary_read_byte
        - sieve_binary_read_unsigned
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_script_label
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:348,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-include.c:350,2'
          Dst:             sieve_code_mark
        - Src:             'cmd-include.c:351,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'cmd-include.c:353,7'
          Dst:             sieve_binary_read_byte
        - Src:             'cmd-include.c:356,11'
          Dst:             ext_include_binary_get_context
        - Src:             'cmd-include.c:357,13'
          Dst:             ext_include_binary_script_get_included
        - Src:             'cmd-include.c:364,3'
          Dst:             sieve_code_descend
        - Src:             'cmd-include.c:365,3'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-include.c:372,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-include.c:375,3'
          Dst:             sieve_script_label
        - Src:             'cmd-include.c:378,15'
          Dst:             sieve_binary_block_get_id
        - Src:             'cmd-include.c:373,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_include_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_include_generate_include
        - sieve_binary_emit_byte
        - sieve_binary_emit_unsigned
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:322,8'
          Dst:             ext_include_generate_include
        - Src:             'cmd-include.c:329,10'
          Dst:             sieve_operation_emit
        - Src:             'cmd-include.c:331,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'cmd-include.c:332,9'
          Dst:             sieve_binary_emit_byte
    - functionName:    cmd_include_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          267
      EdgeCount:       52
      CyclomaticComplexity: 15
      functionsReached:
        - ext_include_ast_link_included_script
        - ext_include_open_script
        - ext_include_script_location_name
        - p_strdup
        - sieve_ast_arguments_detach
        - sieve_ast_pool
        - sieve_script_name_is_valid
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_compile_flags
        - sieve_validator_error
        - sieve_validator_script_cause
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:230,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-include.c:234,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-include.c:241,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-include.c:249,16'
          Dst:             str_c
        - Src:             'cmd-include.c:251,7'
          Dst:             sieve_script_name_is_valid
        - Src:             'cmd-include.c:252,4'
          Dst:             str_sanitize
        - Src:             'cmd-include.c:252,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-include.c:260,9'
          Dst:             sieve_validator_script_cause
        - Src:             'cmd-include.c:259,6'
          Dst:             ext_include_open_script
        - Src:             'cmd-include.c:263,4'
          Dst:             ext_include_script_location_name
        - Src:             'cmd-include.c:263,4'
          Dst:             str_sanitize
        - Src:             'cmd-include.c:263,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-include.c:273,5'
          Dst:             sieve_validator_compile_flags
        - Src:             'cmd-include.c:279,5'
          Dst:             ext_include_script_location_name
        - Src:             'cmd-include.c:279,5'
          Dst:             str_sanitize
        - Src:             'cmd-include.c:279,5'
          Dst:             sieve_validator_warning
        - Src:             'cmd-include.c:288,5'
          Dst:             ext_include_script_location_name
        - Src:             'cmd-include.c:288,5'
          Dst:             str_sanitize
        - Src:             'cmd-include.c:288,5'
          Dst:             sieve_validator_error
        - Src:             'cmd-include.c:298,2'
          Dst:             ext_include_ast_link_included_script
        - Src:             'cmd-include.c:299,35'
          Dst:             sieve_ast_pool
        - Src:             'cmd-include.c:299,26'
          Dst:             p_strdup
        - Src:             'cmd-include.c:302,8'
          Dst:             sieve_ast_arguments_detach
    - functionName:    cmd_include_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:209,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-include.c:209,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-include.c:209,13'
          Dst:             p_malloc
    - functionName:    cmd_include_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-include.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-include.c:186,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-include.c:188,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-include.c:190,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-include.c:192,2'
          Dst:             sieve_validator_register_tag
    - functionName:    opc_return_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-return.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_execute_return
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-return.c:69,2'
          Dst:             ext_include_execute_return
    - functionName:    cmd_return_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/cmd-return.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-return.c:56,2'
          Dst:             sieve_operation_emit
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - 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:             'dovecot/src/lib/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:    4
      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_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    ext_include_script_info_cmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_script_cmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:80,10'
          Dst:             strcmp
        - Src:             'ext-include-binary.c:83,9'
          Dst:             sieve_script_cmp
    - functionName:    ext_include_script_info_hash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:92,3'
          Dst:             str_hash
    - functionName:    ext_include_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./ext-include-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      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:    ext_include_code_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_binary_get_context
        - ext_include_get_context
        - sieve_ext_variables_dump_set_scope
        - sieve_variable_scope_binary_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:529,3'
          Dst:             ext_include_binary_get_context
        - Src:             'ext-include-binary.c:530,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-binary.c:534,3'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'ext-include-binary.c:532,2'
          Dst:             sieve_ext_variables_dump_set_scope
    - functionName:    ext_include_binary_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_include_binary_create_context
        - sieve_binary_extension_get_context
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:120,3'
          Dst:             sieve_binary_extension_get_context
        - Src:             'ext-include-binary.c:123,9'
          Dst:             ext_include_binary_create_context
    - functionName:    ext_include_binary_create_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - ext_include_script_info_cmp
        - ext_include_script_info_hash
        - hash_table_create
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_extension_set
        - sieve_binary_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:99,16'
          Dst:             sieve_binary_pool
        - Src:             'ext-include-binary.c:102,3'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-binary.c:102,3'
          Dst:             p_malloc
        - Src:             'ext-include-binary.c:105,2'
          Dst:             hash_table_create
        - Src:             'ext-include-binary.c:105,2'
          Dst:             ext_include_script_info_hash
        - Src:             'ext-include-binary.c:105,2'
          Dst:             ext_include_script_info_cmp
        - Src:             'ext-include-binary.c:108,2'
          Dst:             array_create_i
        - Src:             'ext-include-binary.c:110,2'
          Dst:             sieve_binary_extension_set
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_include_binary_pre_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          132
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - ext_include_variables_save
        - sieve_binary_block_clear
        - sieve_binary_block_get_id
        - sieve_binary_emit_byte
        - sieve_binary_emit_cstring
        - sieve_binary_emit_unsigned
        - sieve_script_binary_write_metadata
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:254,2'
          Dst:             sieve_binary_block_clear
        - Src:             'ext-include-binary.c:256,12'
          Dst:             array_get_i
        - Src:             'ext-include-binary.c:258,2'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-include-binary.c:266,5'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-binary.c:264,4'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-include-binary.c:268,4'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-include-binary.c:270,3'
          Dst:             sieve_binary_emit_byte
        - Src:             'ext-include-binary.c:271,3'
          Dst:             sieve_binary_emit_cstring
        - Src:             'ext-include-binary.c:272,3'
          Dst:             sieve_binary_emit_byte
        - Src:             'ext-include-binary.c:274,4'
          Dst:             sieve_script_binary_write_metadata
        - Src:             'ext-include-binary.c:279,11'
          Dst:             ext_include_variables_save
    - functionName:    ext_include_binary_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          424
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - ext_include_binary_script_include
        - ext_include_open_script
        - ext_include_variables_load
        - sieve_binary_block_get
        - sieve_binary_block_get_id
        - sieve_binary_extension_get_block
        - sieve_binary_path
        - sieve_binary_read_byte
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_binary_script
        - sieve_script_binary_read_metadata
        - sieve_script_cause
        - sieve_script_label
        - sieve_script_unref
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:292,36'
          Dst:             sieve_binary_script
        - Src:             'ext-include-binary.c:295,9'
          Dst:             sieve_script_cause
        - Src:             'ext-include-binary.c:300,11'
          Dst:             sieve_binary_extension_get_block
        - Src:             'ext-include-binary.c:302,3'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:302,3'
          Dst:             e_error
        - Src:             'ext-include-binary.c:307,13'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-binary.c:311,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-include-binary.c:312,3'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:312,3'
          Dst:             e_error
        - Src:             'ext-include-binary.c:321,3'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:321,3'
          Dst:             e_error
        - Src:             'ext-include-binary.c:339,8'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-include-binary.c:341,8'
          Dst:             sieve_binary_read_byte
        - Src:             'ext-include-binary.c:342,8'
          Dst:             sieve_binary_read_string
        - Src:             'ext-include-binary.c:343,8'
          Dst:             sieve_binary_read_byte
        - Src:             'ext-include-binary.c:345,4'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:345,4'
          Dst:             e_error
        - Src:             'ext-include-binary.c:353,18'
          Dst:             sieve_binary_block_get
        - Src:             'ext-include-binary.c:355,4'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:355,4'
          Dst:             e_error
        - Src:             'ext-include-binary.c:365,4'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:365,4'
          Dst:             e_error
        - Src:             'ext-include-binary.c:374,10'
          Dst:             str_c
        - Src:             'ext-include-binary.c:373,7'
          Dst:             ext_include_open_script
        - Src:             'ext-include-binary.c:384,6'
          Dst:             event_want_level
        - Src:             'ext-include-binary.c:384,6'
          Dst:             str_c
        - Src:             'ext-include-binary.c:384,6'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:384,6'
          Dst:             e_debug
        - Src:             'ext-include-binary.c:384,6'
          Dst:             event_send_abort
        - Src:             'ext-include-binary.c:397,5'
          Dst:             event_want_level
        - Src:             'ext-include-binary.c:397,5'
          Dst:             str_c
        - Src:             'ext-include-binary.c:397,5'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:397,5'
          Dst:             e_debug
        - Src:             'ext-include-binary.c:397,5'
          Dst:             event_send_abort
        - Src:             'ext-include-binary.c:403,4'
          Dst:             sieve_script_unref
        - Src:             'ext-include-binary.c:409,10'
          Dst:             sieve_script_binary_read_metadata
        - Src:             'ext-include-binary.c:413,4'
          Dst:             sieve_binary_path
        - Src:             'ext-include-binary.c:413,4'
          Dst:             sieve_script_label
        - Src:             'ext-include-binary.c:413,4'
          Dst:             e_error
        - Src:             'ext-include-binary.c:418,4'
          Dst:             sieve_script_unref
        - Src:             'ext-include-binary.c:426,8'
          Dst:             str_c
        - Src:             'ext-include-binary.c:425,9'
          Dst:             ext_include_binary_script_include
        - Src:             'ext-include-binary.c:429,3'
          Dst:             sieve_script_unref
        - Src:             'ext-include-binary.c:432,7'
          Dst:             ext_include_variables_load
    - functionName:    ext_include_binary_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_destroy
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - sieve_script_unref
        - sieve_variable_scope_binary_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:461,9'
          Dst:             hash_table_iterate_init
        - Src:             'ext-include-binary.c:462,9'
          Dst:             hash_table_iterate
        - Src:             'ext-include-binary.c:464,3'
          Dst:             sieve_script_unref
        - Src:             'ext-include-binary.c:465,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'ext-include-binary.c:467,2'
          Dst:             hash_table_destroy
        - Src:             'ext-include-binary.c:470,3'
          Dst:             sieve_variable_scope_binary_unref
    - functionName:    ext_include_binary_up_to_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_include_binary_script_include
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_count_i
        - hash_table_insert
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_binary_pool
        - sieve_script_ref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:165,16'
          Dst:             sieve_binary_pool
        - Src:             'ext-include-binary.c:169,14'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-binary.c:169,14'
          Dst:             p_malloc
        - Src:             'ext-include-binary.c:170,18'
          Dst:             array_count_i
        - Src:             'ext-include-binary.c:172,27'
          Dst:             p_strdup
        - Src:             'ext-include-binary.c:180,3'
          Dst:             sieve_script_ref
        - Src:             'ext-include-binary.c:182,2'
          Dst:             hash_table_insert
        - Src:             'ext-include-binary.c:183,2'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    ext_include_script_location_name
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./ext-include-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './ext-include-common.h:39,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ext_include_binary_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          123
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_include_binary_get_context
        - ext_include_script_location_name
        - ext_include_variables_dump
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - sieve_binary_block_get_id
        - sieve_binary_dump_sectionf
        - sieve_code_dumper_create
        - sieve_code_dumper_free
        - sieve_code_dumper_run
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:482,3'
          Dst:             ext_include_binary_get_context
        - Src:             'ext-include-binary.c:487,7'
          Dst:             ext_include_variables_dump
        - Src:             'ext-include-binary.c:490,9'
          Dst:             hash_table_iterate_init
        - Src:             'ext-include-binary.c:491,9'
          Dst:             hash_table_iterate
        - Src:             'ext-include-binary.c:496,5'
          Dst:             ext_include_script_location_name
        - Src:             'ext-include-binary.c:494,4'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'ext-include-binary.c:501,5'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-binary.c:505,5'
          Dst:             ext_include_script_location_name
        - Src:             'ext-include-binary.c:503,4'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'ext-include-binary.c:510,20'
          Dst:             sieve_code_dumper_create
        - Src:             'ext-include-binary.c:515,4'
          Dst:             sieve_code_dumper_run
        - Src:             'ext-include-binary.c:516,4'
          Dst:             sieve_code_dumper_free
        - Src:             'ext-include-binary.c:519,2'
          Dst:             hash_table_iterate_deinit
    - functionName:    ext_include_binary_get_global_scope
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_binary_get_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:233,3'
          Dst:             ext_include_binary_get_context
    - functionName:    ext_include_binary_script_get_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:221,9'
          Dst:             array_count_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    ext_include_binary_script_get_included
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:209,25'
          Dst:             array_count_i
        - Src:             'ext-include-binary.c:211,4'
          Dst:             array_idx_i
    - functionName:    ext_include_binary_script_get_include_info
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:201,9'
          Dst:             hash_table_lookup
    - functionName:    ext_include_binary_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_include_binary_get_context
        - ext_include_get_ast_context
        - sieve_binary_extension_create_block
        - sieve_variable_scope_binary_create
        - sieve_variable_scope_binary_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-binary.c:133,3'
          Dst:             ext_include_get_ast_context
        - Src:             'ext-include-binary.c:137,8'
          Dst:             ext_include_binary_get_context
        - Src:             'ext-include-binary.c:142,4'
          Dst:             sieve_binary_extension_create_block
        - Src:             'ext-include-binary.c:145,22'
          Dst:             sieve_variable_scope_binary_create
        - Src:             'ext-include-binary.c:147,3'
          Dst:             sieve_variable_scope_binary_ref
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_include_runtime_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          103
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - ext_include_binary_get_global_scope
        - ext_include_get_context
        - malloc_multiply_check
        - p_malloc
        - sieve_ext_variables_runtime_set_storage
        - sieve_variable_storage_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:359,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-common.c:362,17'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-common.c:362,17'
          Dst:             p_malloc
        - Src:             'ext-include-common.c:364,3'
          Dst:             array_create_i
        - Src:             'ext-include-common.c:367,4'
          Dst:             ext_include_binary_get_global_scope
        - Src:             'ext-include-common.c:370,4'
          Dst:             sieve_variable_storage_create
        - Src:             'ext-include-common.c:377,2'
          Dst:             sieve_ext_variables_runtime_set_storage
    - functionName:    ext_include_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./ext-include-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    ext_include_ast_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - sieve_script_unref
        - sieve_variable_scope_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:184,12'
          Dst:             array_get_modifiable_i
        - Src:             'ext-include-common.c:186,3'
          Dst:             sieve_script_unref
        - Src:             'ext-include-common.c:191,3'
          Dst:             sieve_variable_scope_unref
    - functionName:    ext_include_execute_return
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_interpreter_context
        - sieve_interpreter_interrupt
        - sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:918,3'
          Dst:             ext_include_get_interpreter_context
        - Src:             'ext-include-common.c:920,2'
          Dst:             sieve_runtime_trace
        - Src:             'ext-include-common.c:923,2'
          Dst:             sieve_interpreter_interrupt
    - functionName:    ext_include_get_interpreter_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_interpreter_extension_get_context
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:420,3'
          Dst:             sieve_interpreter_extension_get_context
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    ext_include_interpreter_context_init_child
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_interpreter_context_create
        - sieve_interpreter_extension_register
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:432,3'
          Dst:             ext_include_interpreter_context_create
        - Src:             'ext-include-common.c:435,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_include_interpreter_context_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_interpreter_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:400,16'
          Dst:             sieve_interpreter_pool
        - Src:             'ext-include-common.c:401,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-common.c:401,8'
          Dst:             p_malloc
    - functionName:    ext_include_runtime_check_circular
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_script_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:667,7'
          Dst:             sieve_script_equals
    - functionName:    sieve_script_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-script.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_cmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-script.h:155,10'
          Dst:             sieve_script_cmp
    - functionName:    ext_include_runtime_include_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_get_i
        - sieve_script_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:684,13'
          Dst:             array_get_i
        - Src:             'ext-include-common.c:686,7'
          Dst:             sieve_script_equals
        - Src:             'ext-include-common.c:690,2'
          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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    ext_include_execute_include
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          539
      EdgeCount:       94
      CyclomaticComplexity: 26
      functionsReached:
        - ext_include_binary_get_context
        - ext_include_binary_script_get_included
        - ext_include_get_interpreter_context
        - ext_include_interpreter_context_init_child
        - ext_include_runtime_check_circular
        - ext_include_runtime_include_mark
        - sieve_binary_block_get_id
        - sieve_interpreter_continue
        - sieve_interpreter_create_for_block
        - sieve_interpreter_free
        - sieve_interpreter_interrupt
        - sieve_interpreter_start
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_script_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:704,3'
          Dst:             ext_include_binary_get_context
        - Src:             'ext-include-common.c:709,13'
          Dst:             ext_include_binary_script_get_included
        - Src:             'ext-include-common.c:711,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-include-common.c:717,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-include-common.c:727,8'
          Dst:             ext_include_get_interpreter_context
        - Src:             'ext-include-common.c:728,13'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-common.c:731,6'
          Dst:             ext_include_runtime_include_mark
        - Src:             'ext-include-common.c:735,4'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:732,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-include-common.c:743,4'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:739,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-include-common.c:751,6'
          Dst:             ext_include_runtime_check_circular
        - Src:             'ext-include-common.c:755,4'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:752,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-include-common.c:782,16'
          Dst:             sieve_interpreter_create_for_block
        - Src:             'ext-include-common.c:786,14'
          Dst:             ext_include_interpreter_context_init_child
        - Src:             'ext-include-common.c:791,14'
          Dst:             sieve_interpreter_start
        - Src:             'ext-include-common.c:816,6'
          Dst:             sieve_interpreter_free
        - Src:             'ext-include-common.c:821,7'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:823,7'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-common.c:818,6'
          Dst:             sieve_runtime_trace
        - Src:             'ext-include-common.c:836,15'
          Dst:             sieve_interpreter_continue
        - Src:             'ext-include-common.c:853,20'
          Dst:             sieve_interpreter_create_for_block
        - Src:             'ext-include-common.c:857,18'
          Dst:             ext_include_interpreter_context_init_child
        - Src:             'ext-include-common.c:864,18'
          Dst:             sieve_interpreter_start
        - Src:             'ext-include-common.c:875,7'
          Dst:             sieve_interpreter_interrupt
        - Src:             'ext-include-common.c:891,4'
          Dst:             sieve_interpreter_free
        - Src:             'ext-include-common.c:896,5'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:898,5'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-include-common.c:893,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-include-common.c:908,3'
          Dst:             sieve_interpreter_interrupt
    - functionName:    ext_include_initialize_generator_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_create_generator_context
        - sieve_generator_extension_set_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:306,3'
          Dst:             ext_include_create_generator_context
        - Src:             'ext-include-common.c:304,2'
          Dst:             sieve_generator_extension_set_context
    - functionName:    ext_include_create_generator_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_generator_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:275,16'
          Dst:             sieve_generator_pool
        - Src:             'ext-include-common.c:276,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-common.c:276,8'
          Dst:             p_malloc
        - Src:             'ext-include-common.c:279,21'
          Dst:             p_strdup
    - functionName:    ext_include_generate_include
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          557
      EdgeCount:       115
      CyclomaticComplexity: 31
      functionsReached:
        - ext_include_binary_init
        - ext_include_binary_script_get_count
        - ext_include_binary_script_get_include_info
        - ext_include_binary_script_include
        - ext_include_create_ast_context
        - ext_include_get_generator_context
        - ext_include_initialize_generator_context
        - i_panic
        - sieve_ast_unref
        - sieve_binary_block_create
        - sieve_generator_create
        - sieve_generator_error
        - sieve_generator_error_handler
        - sieve_generator_free
        - sieve_generator_run
        - sieve_generator_warning
        - sieve_get_errors
        - sieve_parse
        - sieve_script_equals
        - sieve_validate
        - str_sanitize
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:493,3'
          Dst:             ext_include_get_generator_context
        - Src:             'ext-include-common.c:496,3'
          Dst:             sieve_generator_error_handler
        - Src:             'ext-include-common.c:504,6'
          Dst:             sieve_get_errors
        - Src:             'ext-include-common.c:509,3'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:521,8'
          Dst:             strcmp
        - Src:             'ext-include-common.c:523,9'
          Dst:             sieve_script_equals
        - Src:             'ext-include-common.c:529,6'
          Dst:             sieve_generator_warning
        - Src:             'ext-include-common.c:535,5'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:545,11'
          Dst:             ext_include_binary_init
        - Src:             'ext-include-common.c:548,13'
          Dst:             ext_include_binary_script_get_include_info
        - Src:             'ext-include-common.c:562,7'
          Dst:             ext_include_binary_script_get_count
        - Src:             'ext-include-common.c:564,5'
          Dst:             str_sanitize
        - Src:             'ext-include-common.c:564,5'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:577,4'
          Dst:             i_panic
        - Src:             'ext-include-common.c:579,15'
          Dst:             ext_include_binary_script_include
        - Src:             'ext-include-common.c:585,5'
          Dst:             sieve_binary_block_create
        - Src:             'ext-include-common.c:588,15'
          Dst:             ext_include_binary_script_include
        - Src:             'ext-include-common.c:593,15'
          Dst:             sieve_parse
        - Src:             'ext-include-common.c:595,6'
          Dst:             str_sanitize
        - Src:             'ext-include-common.c:595,6'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:603,10'
          Dst:             ext_include_create_ast_context
        - Src:             'ext-include-common.c:614,9'
          Dst:             sieve_validate
        - Src:             'ext-include-common.c:615,5'
          Dst:             str_sanitize
        - Src:             'ext-include-common.c:615,5'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:619,6'
          Dst:             sieve_ast_unref
        - Src:             'ext-include-common.c:628,16'
          Dst:             sieve_generator_create
        - Src:             'ext-include-common.c:629,4'
          Dst:             ext_include_initialize_generator_context
        - Src:             'ext-include-common.c:633,8'
          Dst:             sieve_generator_run
        - Src:             'ext-include-common.c:634,5'
          Dst:             str_sanitize
        - Src:             'ext-include-common.c:634,5'
          Dst:             sieve_generator_error
        - Src:             'ext-include-common.c:641,4'
          Dst:             sieve_generator_free
        - Src:             'ext-include-common.c:644,4'
          Dst:             sieve_ast_unref
    - functionName:    ext_include_get_generator_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generator_extension_get_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:294,3'
          Dst:             sieve_generator_extension_get_context
    - functionName:    ext_include_create_ast_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          95
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - ext_include_get_context
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_extension_get_context
        - sieve_ast_extension_register
        - sieve_ast_pool
        - sieve_variable_scope_create
        - sieve_variable_scope_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:205,16'
          Dst:             sieve_ast_pool
        - Src:             'ext-include-common.c:206,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-common.c:206,9'
          Dst:             p_malloc
        - Src:             'ext-include-common.c:207,2'
          Dst:             array_create_i
        - Src:             'ext-include-common.c:212,4'
          Dst:             sieve_ast_extension_get_context
        - Src:             'ext-include-common.c:215,3'
          Dst:             i_panic
        - Src:             'ext-include-common.c:217,3'
          Dst:             sieve_variable_scope_ref
        - Src:             'ext-include-common.c:220,4'
          Dst:             ext_include_get_context
        - Src:             'ext-include-common.c:222,23'
          Dst:             sieve_variable_scope_create
        - Src:             'ext-include-common.c:226,2'
          Dst:             sieve_ast_extension_register
    - functionName:    ext_include_interpreter_get_global_variables
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_interpreter_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:469,3'
          Dst:             ext_include_get_interpreter_context
    - functionName:    ext_include_interpreter_context_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_include_get_interpreter_context
        - ext_include_interpreter_context_create
        - sieve_interpreter_extension_register
        - sieve_interpreter_script
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:446,3'
          Dst:             ext_include_get_interpreter_context
        - Src:             'ext-include-common.c:453,12'
          Dst:             sieve_interpreter_script
        - Src:             'ext-include-common.c:454,9'
          Dst:             ext_include_interpreter_context_create
        - Src:             'ext-include-common.c:457,3'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_include_register_generator_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - ext_include_binary_init
        - ext_include_create_generator_context
        - ext_include_get_ast_context
        - ext_include_get_generator_context
        - i_panic
        - sieve_generator_extension_set_context
        - sieve_script_name
        - sieve_script_storage_type
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:316,3'
          Dst:             ext_include_get_generator_context
        - Src:             'ext-include-common.c:320,3'
          Dst:             i_panic
        - Src:             'ext-include-common.c:324,4'
          Dst:             sieve_script_storage_type
        - Src:             'ext-include-common.c:326,7'
          Dst:             strcasecmp
        - Src:             'ext-include-common.c:329,12'
          Dst:             strcasecmp
        - Src:             'ext-include-common.c:337,4'
          Dst:             sieve_script_name
        - Src:             'ext-include-common.c:335,9'
          Dst:             ext_include_create_generator_context
        - Src:             'ext-include-common.c:339,3'
          Dst:             sieve_generator_extension_set_context
        - Src:             'ext-include-common.c:344,8'
          Dst:             ext_include_get_ast_context
        - Src:             'ext-include-common.c:345,8'
          Dst:             ext_include_binary_init
    - functionName:    ext_include_get_ast_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_include_create_ast_context
        - sieve_ast_extension_get_context
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:237,3'
          Dst:             sieve_ast_extension_get_context
        - Src:             'ext-include-common.c:241,9'
          Dst:             ext_include_create_ast_context
    - functionName:    ext_include_validator_have_variables
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_context
        - sieve_ext_variables_is_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:257,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-common.c:259,9'
          Dst:             sieve_ext_variables_is_active
    - functionName:    ext_include_ast_link_included_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - ext_include_get_ast_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:249,3'
          Dst:             ext_include_get_ast_context
        - Src:             'ext-include-common.c:251,2'
          Dst:             array_append_i
    - functionName:    ext_include_open_script_global
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_script_create_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:138,9'
          Dst:             sieve_script_create_open
    - functionName:    ext_include_open_script_personal
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_storage_create_personal
        - sieve_storage_open_script
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:123,6'
          Dst:             sieve_storage_create_personal
        - Src:             'ext-include-common.c:128,9'
          Dst:             sieve_storage_open_script
    - functionName:    ext_include_open_script
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - ext_include_open_script_global
        - ext_include_open_script_personal
        - i_unreached
      functionUses:    2
      BranchProfiles:
        - Branch String:   'ext-include-common.c:154,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-include-common.c:156,9'
          Dst:             ext_include_open_script_personal
        - Src:             'ext-include-common.c:161,9'
          Dst:             ext_include_open_script_global
        - Src:             'ext-include-common.c:165,3'
          Dst:             i_unreached
    - 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:    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:    ext_include_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
        - sieve_storage_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:106,2'
          Dst:             sieve_storage_unref
        - Src:             'ext-include-common.c:107,2'
          Dst:             pool_unref
        - Src:             'ext-include-common.c:108,2'
          Dst:             p_free_internal
    - functionName:    sieve_ext_variables_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../variables/sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../variables/sieve-ext-variables.h:35,9'
          Dst:             sieve_extension_register
    - functionName:    ext_include_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
        - sieve_ext_variables_get_extension
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-common.c:83,6'
          Dst:             sieve_ext_variables_get_extension
        - Src:             'ext-include-common.c:86,6'
          Dst:             settings_get
        - Src:             'ext-include-common.c:88,3'
          Dst:             e_error
        - Src:             'ext-include-common.c:92,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-include-common.c:92,11'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:    vnspc_global_variables_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_context
        - sieve_variables_opr_variable_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:242,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-variables.c:245,2'
          Dst:             sieve_variables_opr_variable_emit
    - functionName:    ext_include_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./ext-include-common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vnspc_global_variables_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          168
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_idx_i
        - ext_include_get_ast_context
        - ext_include_get_context
        - i_panic
        - sieve_validator_error
        - sieve_variable_scope_declare
        - sieve_variables_get_max_scope_count
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:188,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-variables.c:190,3'
          Dst:             ext_include_get_ast_context
        - Src:             'ext-include-variables.c:196,2'
          Dst:             i_panic
        - Src:             'ext-include-variables.c:200,6'
          Dst:             array_count_i
        - Src:             'ext-include-variables.c:201,3'
          Dst:             sieve_validator_error
        - Src:             'ext-include-variables.c:208,17'
          Dst:             array_idx_i
        - Src:             'ext-include-variables.c:210,3'
          Dst:             sieve_validator_error
        - Src:             'ext-include-variables.c:217,13'
          Dst:             str_c
        - Src:             'ext-include-variables.c:221,8'
          Dst:             sieve_variable_scope_declare
        - Src:             'ext-include-variables.c:223,3'
          Dst:             sieve_variables_get_max_scope_count
        - Src:             'ext-include-variables.c:223,3'
          Dst:             sieve_validator_error
    - functionName:    ext_include_variables_global_namespace_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_context
        - sieve_variables_namespace_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:252,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-variables.c:254,2'
          Dst:             sieve_variables_namespace_register
    - functionName:    ext_include_variables_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - sieve_binary_dump_sectionf
        - sieve_binary_dumpf
        - sieve_variable_scope_binary_get
        - sieve_variable_scope_get_variables
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:133,3'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'ext-include-variables.c:137,2'
          Dst:             i_panic
        - Src:             'ext-include-variables.c:139,9'
          Dst:             sieve_variable_scope_get_variables
        - Src:             'ext-include-variables.c:144,3'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'ext-include-variables.c:147,4'
          Dst:             sieve_binary_dumpf
    - functionName:    ext_include_variables_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ext_include_get_context
        - i_panic
        - sieve_variable_scope_binary_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:118,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-variables.c:121,2'
          Dst:             i_panic
        - Src:             'ext-include-variables.c:123,19'
          Dst:             sieve_variable_scope_binary_read
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    ext_include_variables_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_emit_cstring
        - sieve_binary_emit_offset
        - sieve_binary_emit_unsigned
        - sieve_binary_resolve_offset
        - sieve_variable_scope_binary_get
        - sieve_variable_scope_get_variables
        - sieve_variable_scope_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:90,3'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'ext-include-variables.c:91,23'
          Dst:             sieve_variable_scope_size
        - Src:             'ext-include-variables.c:94,2'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-include-variables.c:96,9'
          Dst:             sieve_binary_emit_offset
        - Src:             'ext-include-variables.c:101,4'
          Dst:             sieve_variable_scope_get_variables
        - Src:             'ext-include-variables.c:104,4'
          Dst:             sieve_binary_emit_cstring
        - Src:             'ext-include-variables.c:108,2'
          Dst:             sieve_binary_resolve_offset
    - functionName:    ext_include_variable_import_global
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/include/ext-include-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          180
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - ext_include_get_ast_context
        - ext_include_get_context
        - i_panic
        - sieve_ext_variables_get_local_scope
        - sieve_validator_error
        - sieve_variable_identifier_is_valid
        - sieve_variable_scope_declare
        - sieve_variable_scope_get_variable
        - sieve_variable_scope_import
        - sieve_variables_get_max_scope_count
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-include-variables.c:35,3'
          Dst:             ext_include_get_ast_context
        - Src:             'ext-include-variables.c:36,39'
          Dst:             ext_include_get_context
        - Src:             'ext-include-variables.c:42,2'
          Dst:             i_panic
        - Src:             'ext-include-variables.c:44,7'
          Dst:             sieve_variable_identifier_is_valid
        - Src:             'ext-include-variables.c:45,3'
          Dst:             str_sanitize
        - Src:             'ext-include-variables.c:45,3'
          Dst:             sieve_validator_error
        - Src:             'ext-include-variables.c:52,15'
          Dst:             sieve_variable_scope_declare
        - Src:             'ext-include-variables.c:56,3'
          Dst:             sieve_variables_get_max_scope_count
        - Src:             'ext-include-variables.c:56,3'
          Dst:             sieve_validator_error
        - Src:             'ext-include-variables.c:65,16'
          Dst:             sieve_ext_variables_get_local_scope
        - Src:             'ext-include-variables.c:68,14'
          Dst:             sieve_variable_scope_get_variable
        - Src:             'ext-include-variables.c:71,3'
          Dst:             sieve_validator_error
        - Src:             'ext-include-variables.c:78,9'
          Dst:             sieve_variable_scope_import
    - functionName:    ext_body_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/ext-body-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_body_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/ext-body-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_str_new_const
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-body-common.c:92,11'
          Dst:             t_str_new_const
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    ext_body_get_part_list
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/body/ext-body-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          128
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - malloc_multiply_check
        - sieve_message_body_get_content
        - sieve_message_body_get_raw
        - sieve_message_body_get_text
        - t_malloc0
      functionUses:    1
      BranchProfiles:
        - Branch String:   'ext-body-common.c:51,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-body-common.c:53,14'
          Dst:             sieve_message_body_get_raw
        - Src:             'ext-body-common.c:57,14'
          Dst:             sieve_message_body_get_content
        - Src:             'ext-body-common.c:62,14'
          Dst:             sieve_message_body_get_text
        - Src:             'ext-body-common.c:66,3'
          Dst:             i_unreached
        - Src:             'ext-body-common.c:69,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-body-common.c:69,12'
          Dst:             t_malloc0
    - functionName:    sieve_runtime_trace_here
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:159,3'
          Dst:             _sieve_runtime_trace_address
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_set_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/cmd-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          145
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - sieve_opr_string_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_here
        - sieve_variable_assign
        - sieve_variable_get_identifier
        - sieve_variable_get_varid
        - sieve_variable_operand_read
        - sieve_variables_modifiers_apply
        - sieve_variables_modifiers_code_read
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-set.c:189,8'
          Dst:             sieve_variable_operand_read
        - Src:             'cmd-set.c:194,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-set.c:198,8'
          Dst:             sieve_variables_modifiers_code_read
        - Src:             'cmd-set.c:207,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-set.c:208,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-set.c:211,8'
          Dst:             sieve_variables_modifiers_apply
        - Src:             'cmd-set.c:217,2'
          Dst:             i_panic
        - Src:             'cmd-set.c:218,7'
          Dst:             sieve_variable_assign
        - Src:             'cmd-set.c:222,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-set.c:225,9'
          Dst:             sieve_variable_get_identifier
        - Src:             'cmd-set.c:227,12'
          Dst:             sieve_variable_get_varid
        - Src:             'cmd-set.c:230,25'
          Dst:             str_c
        - Src:             'cmd-set.c:229,3'
          Dst:             sieve_runtime_trace_here
    - functionName:    cmd_set_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/cmd-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
        - sieve_variables_modifiers_code_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-set.c:159,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-set.c:160,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-set.c:163,7'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-set.c:164,7'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-set.c:167,9'
          Dst:             sieve_variables_modifiers_code_dump
    - functionName:    cmd_set_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/cmd-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
        - sieve_variables_modifiers_generate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-set.c:139,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-set.c:142,7'
          Dst:             sieve_generate_arguments
        - Src:             'cmd-set.c:146,7'
          Dst:             sieve_variables_modifiers_generate
    - functionName:    cmd_set_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/cmd-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_variable_argument_activate
        - sieve_variables_modifiers_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-set.c:99,16'
          Dst:             sieve_ast_pool
        - Src:             'cmd-set.c:103,9'
          Dst:             malloc_multiply_check
        - Src:             'cmd-set.c:103,9'
          Dst:             p_malloc
        - Src:             'cmd-set.c:104,2'
          Dst:             array_create_i
        - Src:             'cmd-set.c:108,7'
          Dst:             sieve_variables_modifiers_validate
        - Src:             'cmd-set.c:112,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-set.c:115,7'
          Dst:             sieve_variable_argument_activate
        - Src:             'cmd-set.c:121,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-set.c:124,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    cmd_set_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/cmd-set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variables_modifiers_link_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-set.c:85,2'
          Dst:             sieve_variables_modifiers_link_tag
    - functionName:    ext_variables_match_value_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_argument_create
        - sieve_validator_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:120,3'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-arguments.c:126,3'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-arguments.c:132,18'
          Dst:             sieve_argument_create
    - functionName:    arg_match_value_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variables_opr_match_value_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:164,2'
          Dst:             sieve_variables_opr_match_value_emit
    - functionName:    ext_variables_variable_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_variables_validator_declare_variable
        - sieve_argument_create
        - sieve_validator_error
        - sieve_variables_get_max_scope_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:47,8'
          Dst:             ext_variables_validator_declare_variable
        - Src:             'ext-variables-arguments.c:51,3'
          Dst:             sieve_variables_get_max_scope_count
        - Src:             'ext-variables-arguments.c:51,3'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-arguments.c:59,18'
          Dst:             sieve_argument_create
    - functionName:    arg_variable_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variables_opr_variable_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:93,2'
          Dst:             sieve_variables_opr_variable_emit
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    ext_variables_match_value_argument_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_match_value_argument_activate
        - sieve_ast_argument_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:146,12'
          Dst:             sieve_ast_argument_create
        - Src:             'ext-variables-arguments.c:150,7'
          Dst:             ext_variables_match_value_argument_activate
    - functionName:    ext_variables_variable_argument_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_variable_argument_activate
        - sieve_ast_argument_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:74,12'
          Dst:             sieve_ast_argument_create
        - Src:             'ext-variables-arguments.c:78,7'
          Dst:             ext_variables_variable_argument_activate
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - 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_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:    _sieve_variable_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          171
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - array_idx_i
        - ext_variable_name_parse
        - ext_variables_match_value_argument_activate
        - ext_variables_namespace_argument_activate
        - ext_variables_variable_argument_activate
        - i_panic
        - pool_datastack_create
        - sieve_validator_error
        - str_c
        - str_len
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:359,2'
          Dst:             t_push
        - Src:             'ext-variables-arguments.c:360,3'
          Dst:             pool_datastack_create
        - Src:             'ext-variables-arguments.c:360,3'
          Dst:             array_create_i
        - Src:             'ext-variables-arguments.c:363,12'
          Dst:             str_c
        - Src:             'ext-variables-arguments.c:364,12'
          Dst:             str_len
        - Src:             'ext-variables-arguments.c:365,15'
          Dst:             ext_variable_name_parse
        - Src:             'ext-variables-arguments.c:370,4'
          Dst:             str_c
        - Src:             'ext-variables-arguments.c:370,4'
          Dst:             str_sanitize
        - Src:             'ext-variables-arguments.c:370,4'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-arguments.c:378,5'
          Dst:             array_idx_i
        - Src:             'ext-variables-arguments.c:384,6'
          Dst:             str_c
        - Src:             'ext-variables-arguments.c:382,14'
          Dst:             ext_variables_variable_argument_activate
        - Src:             'ext-variables-arguments.c:388,14'
          Dst:             ext_variables_match_value_argument_activate
        - Src:             'ext-variables-arguments.c:395,13'
          Dst:             ext_variables_namespace_argument_activate
        - Src:             'ext-variables-arguments.c:398,4'
          Dst:             t_pop
        - Src:             'ext-variables-arguments.c:398,4'
          Dst:             i_panic
    - functionName:    sieve_variable_argument_activate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - _sieve_variable_argument_activate
        - i_panic
        - sieve_argument_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-arguments.c:412,10'
          Dst:             _sieve_variable_argument_activate
        - Src:             'ext-variables-arguments.c:418,3'
          Dst:             i_panic
        - Src:             'ext-variables-arguments.c:422,9'
          Dst:             _sieve_variable_argument_activate
        - Src:             'ext-variables-arguments.c:430,19'
          Dst:             sieve_argument_create
    - functionName:    arg_variable_string_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-arguments.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          407
      EdgeCount:       75
      CyclomaticComplexity: 17
      functionsReached:
        - array_create_i
        - array_idx_i
        - ext_variable_name_parse
        - ext_variables_match_value_argument_create
        - ext_variables_namespace_argument_create
        - ext_variables_variable_argument_create
        - i_panic
        - pool_datastack_create
        - sieve_arg_catenated_string_add_element
        - sieve_arg_catenated_string_create
        - sieve_ast_argument_string_create_raw
        - sieve_ast_pool
        - sieve_validator_argument_activate_super
        - str_append_data
        - str_c
        - str_data
        - str_len
        - str_new
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ext-variables-arguments.c:208,4'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-variables-arguments.c:191,16'
          Dst:             sieve_ast_pool
        - Src:             'ext-variables-arguments.c:195,38'
          Dst:             str_data
        - Src:             'ext-variables-arguments.c:196,32'
          Dst:             str_len
        - Src:             'ext-variables-arguments.c:201,2'
          Dst:             t_push
        - Src:             'ext-variables-arguments.c:203,3'
          Dst:             pool_datastack_create
        - Src:             'ext-variables-arguments.c:203,3'
          Dst:             array_create_i
        - Src:             'ext-variables-arguments.c:227,17'
          Dst:             ext_variable_name_parse
        - Src:             'ext-variables-arguments.c:243,16'
          Dst:             sieve_arg_catenated_string_create
        - Src:             'ext-variables-arguments.c:252,26'
          Dst:             str_new
        - Src:             'ext-variables-arguments.c:253,7'
          Dst:             str_append_data
        - Src:             'ext-variables-arguments.c:255,16'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'ext-variables-arguments.c:257,7'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'ext-variables-arguments.c:262,12'
          Dst:             sieve_validator_argument_activate_super
        - Src:             'ext-variables-arguments.c:272,8'
          Dst:             array_idx_i
        - Src:             'ext-variables-arguments.c:278,9'
          Dst:             str_c
        - Src:             'ext-variables-arguments.c:276,17'
          Dst:             ext_variables_variable_argument_create
        - Src:             'ext-variables-arguments.c:282,17'
          Dst:             ext_variables_match_value_argument_create
        - Src:             'ext-variables-arguments.c:287,16'
          Dst:             ext_variables_namespace_argument_create
        - Src:             'ext-variables-arguments.c:292,7'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'ext-variables-arguments.c:304,4'
          Dst:             t_pop
        - Src:             'ext-variables-arguments.c:304,4'
          Dst:             i_panic
        - Src:             'ext-variables-arguments.c:315,10'
          Dst:             sieve_validator_argument_activate_super
        - Src:             'ext-variables-arguments.c:324,22'
          Dst:             str_new
        - Src:             'ext-variables-arguments.c:325,3'
          Dst:             str_append_data
        - Src:             'ext-variables-arguments.c:327,12'
          Dst:             sieve_ast_argument_string_create_raw
        - Src:             'ext-variables-arguments.c:329,3'
          Dst:             sieve_arg_catenated_string_add_element
        - Src:             'ext-variables-arguments.c:333,8'
          Dst:             sieve_validator_argument_activate_super
    - functionName:    ext_variables_interpreter_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variable_scope_binary_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:819,2'
          Dst:             sieve_variable_scope_binary_unref
    - functionName:    sieve_variable_scope_binary_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variable_scope_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:366,2'
          Dst:             sieve_variable_scope_unref
    - functionName:    sieve_variable_scope_unref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_destroy
        - i_panic
        - pool_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:157,2'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:162,2'
          Dst:             hash_table_destroy
        - Src:             'ext-variables-common.c:165,2'
          Dst:             pool_unref
    - 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:    ext_variables_ast_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variable_scope_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:645,2'
          Dst:             sieve_variable_scope_unref
    - functionName:    ext_variables_create_local_scope
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_extension_register
        - sieve_variable_scope_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:659,10'
          Dst:             sieve_variable_scope_create
        - Src:             'ext-variables-common.c:661,2'
          Dst:             sieve_ast_extension_register
    - functionName:    sieve_variable_scope_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcase_hash
        - strcasecmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:131,2'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:133,9'
          Dst:             pool_alloconly_create
        - Src:             'ext-variables-common.c:134,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:134,10'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:142,2'
          Dst:             hash_table_create
        - Src:             'ext-variables-common.c:142,2'
          Dst:             strcase_hash
        - Src:             'ext-variables-common.c:142,2'
          Dst:             strcasecmp
        - Src:             'ext-variables-common.c:143,2'
          Dst:             array_create_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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    sieve_ext_variables_runtime_set_storage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_set_i
        - ext_variables_interpreter_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:914,3'
          Dst:             ext_variables_interpreter_context_get
        - Src:             'ext-variables-common.c:921,2'
          Dst:             array_idx_set_i
    - functionName:    ext_variables_interpreter_context_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_interpreter_extension_get_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:880,2'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:882,3'
          Dst:             sieve_interpreter_extension_get_context
    - functionName:    sieve_ext_variables_runtime_get_storage
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 890
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - ext_variables_interpreter_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:892,3'
          Dst:             ext_variables_interpreter_context_get
        - Src:             'ext-variables-common.c:898,22'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:901,13'
          Dst:             array_idx_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:    9
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    ext_variables_interpreter_context_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_extensions_get_count
        - sieve_interpreter_extension_register
        - sieve_interpreter_pool
        - sieve_variable_storage_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:834,16'
          Dst:             sieve_interpreter_pool
        - Src:             'ext-variables-common.c:837,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:837,8'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:842,3'
          Dst:             sieve_variable_storage_create
        - Src:             'ext-variables-common.c:843,2'
          Dst:             sieve_extensions_get_count
        - Src:             'ext-variables-common.c:843,2'
          Dst:             array_create_i
        - Src:             'ext-variables-common.c:846,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    sieve_variable_storage_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_variable_scope_binary_get_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:490,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:490,12'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:496,23'
          Dst:             sieve_variable_scope_binary_get_count
        - Src:             'ext-variables-common.c:498,2'
          Dst:             array_create_i
    - functionName:    sieve_variable_scope_binary_get_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:467,9'
          Dst:             array_count_i
    - functionName:    ext_variables_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_interpreter_context_create
        - sieve_match_values_set_enabled
        - sieve_variable_scope_binary_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:859,11'
          Dst:             sieve_variable_scope_binary_read
        - Src:             'ext-variables-common.c:865,8'
          Dst:             ext_variables_interpreter_context_create
        - Src:             'ext-variables-common.c:869,8'
          Dst:             sieve_match_values_set_enabled
    - functionName:    sieve_variable_scope_binary_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          132
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - sieve_binary_read_offset
        - sieve_binary_read_unsigned
        - sieve_variable_scope_binary_create
        - sieve_variable_scope_create
        - sieve_variables_get_max_scope_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:386,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-common.c:387,3'
          Dst:             e_error
        - Src:             'ext-variables-common.c:393,20'
          Dst:             sieve_variables_get_max_scope_count
        - Src:             'ext-variables-common.c:395,3'
          Dst:             e_error
        - Src:             'ext-variables-common.c:403,7'
          Dst:             sieve_binary_read_offset
        - Src:             'ext-variables-common.c:404,3'
          Dst:             e_error
        - Src:             'ext-variables-common.c:410,10'
          Dst:             sieve_variable_scope_create
        - Src:             'ext-variables-common.c:412,11'
          Dst:             sieve_variable_scope_binary_create
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_variables_get_max_scope_count
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_get_context
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:35,3'
          Dst:             ext_variables_get_context
    - functionName:    sieve_variable_scope_binary_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:352,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:352,11'
          Dst:             p_malloc
    - functionName:    ext_variables_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:88,2'
          Dst:             i_panic
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    ext_variables_ast_get_local_scope
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_ast_extension_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:672,4'
          Dst:             sieve_ast_extension_get_context
    - functionName:    ext_variables_generator_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          86
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ext_variables_ast_get_local_scope
        - sieve_binary_emit_cstring
        - sieve_binary_emit_offset
        - sieve_binary_emit_unsigned
        - sieve_binary_resolve_offset
        - sieve_variable_scope_get_variables
        - sieve_variable_scope_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:774,3'
          Dst:             ext_variables_ast_get_local_scope
        - Src:             'ext-variables-common.c:775,23'
          Dst:             sieve_variable_scope_size
        - Src:             'ext-variables-common.c:778,2'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-variables-common.c:780,9'
          Dst:             sieve_binary_emit_offset
        - Src:             'ext-variables-common.c:785,4'
          Dst:             sieve_variable_scope_get_variables
        - Src:             'ext-variables-common.c:788,4'
          Dst:             sieve_binary_emit_cstring
        - Src:             'ext-variables-common.c:793,2'
          Dst:             sieve_binary_resolve_offset
    - functionName:    sieve_variable_scope_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      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:             'ext-variables-common.c:275,9'
          Dst:             array_count_i
    - functionName:    sieve_variable_scope_get_variables
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:282,9'
          Dst:             array_get_i
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    sieve_ext_variables_is_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_validator_context_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:761,3'
          Dst:             ext_variables_validator_context_get
    - functionName:    ext_variables_validator_context_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_validator_context_create
        - i_panic
        - sieve_validator_extension_get_context
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:704,2'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:706,3'
          Dst:             sieve_validator_extension_get_context
        - Src:             'ext-variables-common.c:709,9'
          Dst:             ext_variables_validator_context_create
    - functionName:    ext_variables_validator_context_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_create_local_scope
        - malloc_multiply_check
        - p_malloc
        - sieve_validator_ast
        - sieve_validator_extension_set_context
        - sieve_validator_object_registry_create
        - sieve_validator_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:685,16'
          Dst:             sieve_validator_pool
        - Src:             'ext-variables-common.c:687,26'
          Dst:             sieve_validator_ast
        - Src:             'ext-variables-common.c:689,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:689,8'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:690,19'
          Dst:             sieve_validator_object_registry_create
        - Src:             'ext-variables-common.c:691,20'
          Dst:             sieve_validator_object_registry_create
        - Src:             'ext-variables-common.c:692,21'
          Dst:             ext_variables_create_local_scope
        - Src:             'ext-variables-common.c:694,2'
          Dst:             sieve_validator_extension_set_context
    - functionName:    sieve_ext_variables_get_local_scope
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:752,3'
          Dst:             ext_variables_validator_context_get
    - functionName:    ext_variables_validator_declare_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_variable_scope_declare
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:742,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-common.c:744,9'
          Dst:             sieve_variable_scope_declare
    - functionName:    sieve_variable_scope_declare
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          125
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_count_i
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_variables_get_max_scope_count
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:180,8'
          Dst:             hash_table_lookup
        - Src:             'ext-variables-common.c:184,20'
          Dst:             sieve_variables_get_max_scope_count
        - Src:             'ext-variables-common.c:185,6'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:187,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:187,10'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:198,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:198,8'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:200,20'
          Dst:             p_strdup
        - Src:             'ext-variables-common.c:201,15'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:203,2'
          Dst:             hash_table_insert
        - Src:             'ext-variables-common.c:204,2'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    ext_variables_validator_get_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_variable_scope_get_variable
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:731,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-common.c:733,9'
          Dst:             sieve_variable_scope_get_variable
    - functionName:    sieve_variable_scope_get_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:212,9'
          Dst:             hash_table_lookup
    - functionName:    ext_variables_validator_initialize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_register_core_modifiers
        - ext_variables_validator_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:719,8'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-common.c:721,2'
          Dst:             ext_variables_register_core_modifiers
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_variable_assign_cstr
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_variables_get_context
        - sieve_variable_get_modifiable
        - str_append
        - str_len
        - str_truncate
        - str_truncate_utf8
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:617,3'
          Dst:             ext_variables_get_context
        - Src:             'ext-variables-common.c:620,7'
          Dst:             sieve_variable_get_modifiable
        - Src:             'ext-variables-common.c:623,2'
          Dst:             str_truncate
        - Src:             'ext-variables-common.c:624,2'
          Dst:             str_append
        - Src:             'ext-variables-common.c:627,6'
          Dst:             str_len
        - Src:             'ext-variables-common.c:628,3'
          Dst:             str_truncate_utf8
    - functionName:    sieve_variable_get_modifiable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_set_i
        - sieve_variable_get
        - str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:583,7'
          Dst:             sieve_variable_get
        - Src:             'ext-variables-common.c:587,12'
          Dst:             str_new
        - Src:             'ext-variables-common.c:588,3'
          Dst:             array_idx_set_i
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    sieve_variable_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_variable_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:562,14'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:565,12'
          Dst:             array_idx_i
        - Src:             'ext-variables-common.c:568,14'
          Dst:             sieve_variable_valid
    - functionName:    sieve_variable_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:             'dovecot/src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    sieve_variable_assign
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ext_variables_get_context
        - sieve_variable_get_modifiable
        - str_append_str
        - str_len
        - str_truncate
        - str_truncate_utf8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:597,3'
          Dst:             ext_variables_get_context
        - Src:             'ext-variables-common.c:600,7'
          Dst:             sieve_variable_get_modifiable
        - Src:             'ext-variables-common.c:603,2'
          Dst:             str_truncate
        - Src:             'ext-variables-common.c:604,2'
          Dst:             str_append_str
        - Src:             'ext-variables-common.c:607,6'
          Dst:             str_len
        - Src:             'ext-variables-common.c:608,3'
          Dst:             str_truncate_utf8
    - functionName:    sieve_ext_variables_get_varid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-ext-variables.h:232,10'
          Dst:             t_strdup_printf
        - Src:             './sieve-ext-variables.h:234,9'
          Dst:             t_strdup_printf
    - functionName:    sieve_variable_get_varid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_ext_variables_get_varid
        - sieve_variable_scope_binary_get
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:545,10'
          Dst:             t_strdup_printf
        - Src:             'ext-variables-common.c:549,4'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'ext-variables-common.c:554,9'
          Dst:             sieve_ext_variables_get_varid
    - functionName:    sieve_variable_scope_binary_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - i_panic
        - sieve_binary_read_string
        - sieve_variable_scope_declare
        - str_c
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:439,9'
          Dst:             sieve_binary_read_string
        - Src:             'ext-variables-common.c:441,5'
          Dst:             e_error
        - Src:             'ext-variables-common.c:448,11'
          Dst:             str_c
        - Src:             'ext-variables-common.c:447,10'
          Dst:             sieve_variable_scope_declare
        - Src:             'ext-variables-common.c:450,4'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:451,4'
          Dst:             i_panic
    - functionName:    sieve_variable_get_identifier
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_idx_i
        - sieve_variable_scope_binary_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:525,4'
          Dst:             sieve_variable_scope_binary_get
        - Src:             'ext-variables-common.c:531,15'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:534,8'
          Dst:             array_idx_i
    - functionName:    sieve_variable_scope_binary_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variable_scope_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:360,2'
          Dst:             sieve_variable_scope_ref
    - functionName:    sieve_variable_scope_ref
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      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:    sieve_variable_scope_binary_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          112
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_binary_read_offset
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - sieve_code_dumpf
        - sieve_code_mark
        - sieve_variable_scope_create
        - sieve_variable_scope_declare
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:313,2'
          Dst:             sieve_code_mark
        - Src:             'ext-variables-common.c:314,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-common.c:319,7'
          Dst:             sieve_binary_read_offset
        - Src:             'ext-variables-common.c:323,16'
          Dst:             sieve_variable_scope_create
        - Src:             'ext-variables-common.c:327,2'
          Dst:             sieve_code_dumpf
        - Src:             'ext-variables-common.c:333,3'
          Dst:             sieve_code_mark
        - Src:             'ext-variables-common.c:334,8'
          Dst:             sieve_binary_read_string
        - Src:             'ext-variables-common.c:338,42'
          Dst:             str_c
        - Src:             'ext-variables-common.c:338,3'
          Dst:             sieve_code_dumpf
        - Src:             'ext-variables-common.c:341,10'
          Dst:             str_c
        - Src:             'ext-variables-common.c:340,9'
          Dst:             sieve_variable_scope_declare
    - functionName:    sieve_variable_scope_get_indexed
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:291,15'
          Dst:             array_count_i
        - Src:             'ext-variables-common.c:294,8'
          Dst:             array_idx_i
    - functionName:    sieve_variable_scope_declarations
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_count
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:270,9'
          Dst:             hash_table_count
    - functionName:    sieve_variable_scope_iterate_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_iterate_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:263,2'
          Dst:             hash_table_iterate_deinit
    - functionName:    sieve_variable_scope_iterate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_iterate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:256,9'
          Dst:             hash_table_iterate
    - functionName:    sieve_variable_scope_iterate_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_iterate_init
        - malloc_multiply_check
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:244,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:244,9'
          Dst:             t_malloc0
        - Src:             'ext-variables-common.c:246,15'
          Dst:             hash_table_iterate_init
    - 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:             'dovecot/src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    sieve_variable_scope_import
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - i_memcpy
        - i_panic
        - malloc_multiply_check
        - memcmp
        - p_malloc
        - sieve_variable_scope_get_variable
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:221,12'
          Dst:             sieve_variable_scope_get_variable
        - Src:             'ext-variables-common.c:223,3'
          Dst:             memcmp
        - Src:             'ext-variables-common.c:223,3'
          Dst:             i_panic
        - Src:             'ext-variables-common.c:227,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:227,12'
          Dst:             p_malloc
        - Src:             'ext-variables-common.c:228,2'
          Dst:             i_memcpy
        - Src:             'ext-variables-common.c:230,2'
          Dst:             hash_table_insert
    - functionName:    sieve_variable_scope_pool
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 170
      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:    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:    ext_variables_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:79,2'
          Dst:             pool_unref
        - Src:             'ext-variables-common.c:80,2'
          Dst:             p_free_internal
    - functionName:    ext_variables_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:60,6'
          Dst:             settings_get
        - Src:             'ext-variables-common.c:62,3'
          Dst:             e_error
        - Src:             'ext-variables-common.c:66,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-common.c:66,11'
          Dst:             p_malloc
    - functionName:    sieve_variables_get_max_value_size
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_get_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-common.c:44,3'
          Dst:             ext_variables_get_context
    - functionName:    ext_variables_code_dumper_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-dump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_variable_scope_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-dump.c:46,2'
          Dst:             sieve_variable_scope_unref
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:    ext_variables_dump_get_identifier
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-dump.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_idx_i
        - ext_variables_dump_get_context
        - sieve_variable_scope_get_indexed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-dump.c:118,3'
          Dst:             ext_variables_dump_get_context
        - Src:             'ext-variables-dump.c:128,24'
          Dst:             array_count_i
        - Src:             'ext-variables-dump.c:131,15'
          Dst:             array_idx_i
        - Src:             'ext-variables-dump.c:139,8'
          Dst:             sieve_variable_scope_get_indexed
    - functionName:    ext_variables_dump_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-dump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sieve_code_dumper_pool
        - sieve_dump_extension_get_context
        - sieve_dump_extension_register
        - sieve_extensions_get_count
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-dump.c:57,2'
          Dst:             i_panic
        - Src:             'ext-variables-dump.c:58,9'
          Dst:             sieve_dump_extension_get_context
        - Src:             'ext-variables-dump.c:62,10'
          Dst:             sieve_code_dumper_pool
        - Src:             'ext-variables-dump.c:63,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-dump.c:63,10'
          Dst:             p_malloc
        - Src:             'ext-variables-dump.c:64,3'
          Dst:             sieve_extensions_get_count
        - Src:             'ext-variables-dump.c:64,3'
          Dst:             array_create_i
        - Src:             'ext-variables-dump.c:67,3'
          Dst:             sieve_dump_extension_register
    - functionName:    sieve_ext_variables_dump_set_scope
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-dump.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
        - ext_variables_dump_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-dump.c:99,3'
          Dst:             ext_variables_dump_get_context
        - Src:             'ext-variables-dump.c:104,2'
          Dst:             array_idx_set_i
    - functionName:    ext_variables_code_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-dump.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_dump_get_context
        - sieve_variable_scope_binary_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-dump.c:80,16'
          Dst:             sieve_variable_scope_binary_dump
        - Src:             'ext-variables-dump.c:83,9'
          Dst:             ext_variables_dump_get_context
    - 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:    tag_modifier_is_instance_of
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ext_variables_modifier_create_instance
        - ext_variables_modifier_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:371,10'
          Dst:             ext_variables_modifier_exists
        - Src:             'ext-variables-modifiers.c:373,9'
          Dst:             ext_variables_modifier_create_instance
    - functionName:    ext_variables_modifier_exists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:84,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-modifiers.c:86,9'
          Dst:             sieve_validator_object_registry_find
    - functionName:    ext_variables_modifier_create_instance
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_variables_validator_context_get
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validator_object_registry_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:97,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-modifiers.c:102,7'
          Dst:             sieve_validator_object_registry_find
        - Src:             'ext-variables-modifiers.c:106,9'
          Dst:             sieve_ast_pool
        - Src:             'ext-variables-modifiers.c:107,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-variables-modifiers.c:107,9'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - 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:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_here
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:159,3'
          Dst:             _sieve_runtime_trace_address
    - 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:    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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:61,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:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_variables_modifiers_apply
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          210
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - array_get_i
        - array_is_created_i
        - ext_variables_get_context
        - sieve_runtime_trace_here
        - str_append_str
        - str_c
        - str_len
        - str_sanitize
        - str_truncate_utf8
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:542,3'
          Dst:             ext_variables_get_context
        - Src:             'ext-variables-modifiers.c:547,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:550,4'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:551,3'
          Dst:             str_append_str
        - Src:             'ext-variables-modifiers.c:553,3'
          Dst:             str_truncate_utf8
        - Src:             'ext-variables-modifiers.c:556,7'
          Dst:             array_is_created_i
        - Src:             'ext-variables-modifiers.c:559,10'
          Dst:             array_get_i
        - Src:             'ext-variables-modifiers.c:579,18'
          Dst:             str_c
        - Src:             'ext-variables-modifiers.c:579,5'
          Dst:             str_sanitize
        - Src:             'ext-variables-modifiers.c:580,18'
          Dst:             str_c
        - Src:             'ext-variables-modifiers.c:580,5'
          Dst:             str_sanitize
        - Src:             'ext-variables-modifiers.c:575,4'
          Dst:             sieve_runtime_trace_here
        - Src:             'ext-variables-modifiers.c:583,8'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:584,5'
          Dst:             str_truncate_utf8
    - 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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_variables_opr_modifier_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./ext-variables-modifiers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_object_read
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './ext-variables-modifiers.h:51,7'
          Dst:             sieve_opr_object_read
        - Src:             './ext-variables-modifiers.h:54,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_variables_modifiers_code_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_create_i
        - ext_variables_opr_modifier_read
        - pool_datastack_create
        - sieve_binary_read_byte
        - sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:504,7'
          Dst:             sieve_binary_read_byte
        - Src:             'ext-variables-modifiers.c:505,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-variables-modifiers.c:509,2'
          Dst:             pool_datastack_create
        - Src:             'ext-variables-modifiers.c:509,2'
          Dst:             array_create_i
        - Src:             'ext-variables-modifiers.c:515,8'
          Dst:             ext_variables_opr_modifier_read
        - Src:             'ext-variables-modifiers.c:520,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-variables-modifiers.c:526,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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    ext_variables_opr_modifier_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./ext-variables-modifiers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_dump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './ext-variables-modifiers.h:67,9'
          Dst:             sieve_opr_object_dump
    - functionName:    sieve_variables_modifiers_code_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ext_variables_opr_modifier_dump
        - sieve_binary_read_byte
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:486,7'
          Dst:             sieve_binary_read_byte
        - Src:             'ext-variables-modifiers.c:491,8'
          Dst:             ext_variables_opr_modifier_dump
    - functionName:    ext_variables_opr_modifier_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./ext-variables-modifiers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_opr_object_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './ext-variables-modifiers.h:42,2'
          Dst:             sieve_opr_object_emit
    - functionName:    sieve_variables_modifiers_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_get_i
        - ext_variables_opr_modifier_emit
        - sieve_binary_emit_byte
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:452,33'
          Dst:             array_count_i
        - Src:             'ext-variables-modifiers.c:452,2'
          Dst:             sieve_binary_emit_byte
        - Src:             'ext-variables-modifiers.c:454,10'
          Dst:             array_get_i
        - Src:             'ext-variables-modifiers.c:456,3'
          Dst:             ext_variables_opr_modifier_emit
    - 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:             'dovecot/src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    sieve_variables_modifiers_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          223
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_get_i
        - array_insert_i
        - sieve_ast_arguments_detach
        - sieve_validator_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:415,11'
          Dst:             array_get_i
        - Src:             'ext-variables-modifiers.c:419,5'
          Dst:             sieve_validator_error
        - Src:             'ext-variables-modifiers.c:428,5'
          Dst:             array_insert_i
        - Src:             'ext-variables-modifiers.c:434,4'
          Dst:             array_append_i
        - Src:             'ext-variables-modifiers.c:439,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    sieve_variables_modifiers_link_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:388,2'
          Dst:             sieve_validator_register_tag
    - functionName:    mod_length_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_data
        - str_len
        - str_printfa
        - t_str_new
        - uni_utf8_strlen_n
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:278,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:280,25'
          Dst:             str_data
        - Src:             'ext-variables-modifiers.c:280,39'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:280,7'
          Dst:             uni_utf8_strlen_n
        - Src:             'ext-variables-modifiers.c:279,2'
          Dst:             str_printfa
    - functionName:    mod_quotewildcard_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          219
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - sieve_variables_get_max_value_size
        - str_append_c
        - str_append_data
        - str_data
        - str_len
        - t_str_new
        - uni_utf8_char_bytes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:289,3'
          Dst:             sieve_variables_get_max_value_size
        - Src:             'ext-variables-modifiers.c:293,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:300,13'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:303,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:306,6'
          Dst:             str_data
        - Src:             'ext-variables-modifiers.c:307,13'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:310,20'
          Dst:             uni_utf8_char_bytes
        - Src:             'ext-variables-modifiers.c:313,4'
          Dst:             str_append_data
        - Src:             'ext-variables-modifiers.c:316,8'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:319,4'
          Dst:             str_append_c
        - Src:             'ext-variables-modifiers.c:320,15'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:330,2'
          Dst:             str_append_data
    - functionName:    mod_upperfirst_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_str
        - str_c_modifiable
        - str_len
        - t_str_new
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:204,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:209,22'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:209,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:210,2'
          Dst:             str_append_str
        - Src:             'ext-variables-modifiers.c:212,12'
          Dst:             str_c_modifiable
        - Src:             'ext-variables-modifiers.c:213,15'
          Dst:             toupper
    - functionName:    mod_lowerfirst_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_str
        - str_c_modifiable
        - str_len
        - t_str_new
        - tolower
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:223,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:228,22'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:228,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:229,2'
          Dst:             str_append_str
        - Src:             'ext-variables-modifiers.c:231,12'
          Dst:             str_c_modifiable
        - Src:             'ext-variables-modifiers.c:232,15'
          Dst:             tolower
    - functionName:    mod_upper_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_str
        - str_c_modifiable
        - str_len
        - str_ucase
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:242,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:247,22'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:247,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:248,2'
          Dst:             str_append_str
        - Src:             'ext-variables-modifiers.c:250,12'
          Dst:             str_c_modifiable
        - Src:             'ext-variables-modifiers.c:251,8'
          Dst:             str_ucase
    - functionName:    mod_lower_modify
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_str
        - str_c_modifiable
        - str_lcase
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:261,6'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:266,22'
          Dst:             str_len
        - Src:             'ext-variables-modifiers.c:266,12'
          Dst:             t_str_new
        - Src:             'ext-variables-modifiers.c:267,2'
          Dst:             str_append_str
        - Src:             'ext-variables-modifiers.c:269,12'
          Dst:             str_c_modifiable
        - Src:             'ext-variables-modifiers.c:270,8'
          Dst:             str_lcase
    - functionName:    ext_variables_register_core_modifiers
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validator_object_registry_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:123,3'
          Dst:             sieve_validator_object_registry_add
    - functionName:    sieve_variables_modifier_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.c'
      linkageType:     externalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_variables_validator_context_get
        - sieve_validator_object_registry_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-modifiers.c:73,3'
          Dst:             ext_variables_validator_context_get
        - Src:             'ext-variables-modifiers.c:75,2'
          Dst:             sieve_validator_object_registry_add
    - 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_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:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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_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:             'dovecot/src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    ext_variable_name_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-name.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          253
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - array_append_space_i
        - array_clear_i
        - array_count_i
        - str_append_c
        - str_len
        - str_parse_data_uintmax
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-name.c:43,2'
          Dst:             array_clear_i
        - Src:             'ext-variables-name.c:52,7'
          Dst:             array_count_i
        - Src:             'ext-variables-name.c:55,17'
          Dst:             array_append_space_i
        - Src:             'ext-variables-name.c:56,41'
          Dst:             t_str_new
        - Src:             'ext-variables-name.c:61,20'
          Dst:             __ctype_b_loc
        - Src:             'ext-variables-name.c:63,4'
          Dst:             str_truncate
        - Src:             'ext-variables-name.c:64,4'
          Dst:             str_append_c
        - Src:             'ext-variables-name.c:67,39'
          Dst:             __ctype_b_loc
        - Src:             'ext-variables-name.c:68,9'
          Dst:             str_len
        - Src:             'ext-variables-name.c:71,5'
          Dst:             str_append_c
        - Src:             'ext-variables-name.c:76,14'
          Dst:             str_parse_data_uintmax
        - Src:             'ext-variables-name.c:87,8'
          Dst:             array_count_i
        - Src:             'ext-variables-name.c:108,9'
          Dst:             array_count_i
    - functionName:    sieve_variable_identifier_is_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-name.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-name.c:19,16'
          Dst:             strlen
        - Src:             'ext-variables-name.c:27,19'
          Dst:             __ctype_b_loc
        - Src:             'ext-variables-name.c:30,36'
          Dst:             __ctype_b_loc
    - 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:    sieve_ext_variables_get_varid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './sieve-ext-variables.h:232,10'
          Dst:             t_strdup_printf
        - Src:             './sieve-ext-variables.h:234,9'
          Dst:             t_strdup_printf
    - functionName:    sieve_variables_opr_match_value_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_binary_emit_unsigned
        - sieve_operand_emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:236,2'
          Dst:             i_panic
        - Src:             'ext-variables-operands.c:237,8'
          Dst:             sieve_operand_emit
        - Src:             'ext-variables-operands.c:238,8'
          Dst:             sieve_binary_emit_unsigned
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - functionName:    opr_match_value_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_unsigned
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:247,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-operands.c:249,4'
          Dst:             sieve_code_dumpf
        - Src:             'ext-variables-operands.c:253,4'
          Dst:             sieve_code_dumpf
    - functionName:    opr_match_value_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ext_variables_get_context
        - sieve_binary_read_unsigned
        - sieve_match_values_get
        - sieve_runtime_trace_operand_error
        - str_len
        - str_truncate_utf8
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:269,3'
          Dst:             ext_variables_get_context
        - Src:             'ext-variables-operands.c:272,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-operands.c:276,4'
          Dst:             sieve_match_values_get
        - Src:             'ext-variables-operands.c:279,14'
          Dst:             t_str_new
        - Src:             'ext-variables-operands.c:280,13'
          Dst:             str_len
        - Src:             'ext-variables-operands.c:282,5'
          Dst:             str_truncate_utf8
        - Src:             'ext-variables-operands.c:289,2'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_runtime_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_read
        - sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:57,7'
          Dst:             sieve_operand_read
        - Src:             './../../sieve-code.h:58,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_variable_operand_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_operand_runtime_read
        - sieve_variable_operand_read_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:199,8'
          Dst:             sieve_operand_runtime_read
        - Src:             'ext-variables-operands.c:203,9'
          Dst:             sieve_variable_operand_read_data
    - functionName:    sieve_variable_operand_read_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          117
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - sieve_binary_read_extension
        - sieve_binary_read_unsigned
        - sieve_ext_variables_runtime_get_storage
        - sieve_operand_is_variable
        - sieve_runtime_trace_operand_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:159,7'
          Dst:             sieve_operand_is_variable
        - Src:             'ext-variables-operands.c:160,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-variables-operands.c:165,7'
          Dst:             sieve_binary_read_extension
        - Src:             'ext-variables-operands.c:166,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-variables-operands.c:172,15'
          Dst:             sieve_ext_variables_runtime_get_storage
        - Src:             'ext-variables-operands.c:175,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-variables-operands.c:180,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-operands.c:181,3'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_operand_is_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/./sieve-ext-variables.h'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    opr_variable_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ext_variables_dump_get_identifier
        - sieve_binary_read_extension
        - sieve_binary_read_unsigned
        - sieve_code_dumpf
        - sieve_ext_variables_get_varid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:80,7'
          Dst:             sieve_binary_read_extension
        - Src:             'ext-variables-operands.c:82,7'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-operands.c:85,15'
          Dst:             ext_variables_dump_get_identifier
        - Src:             'ext-variables-operands.c:92,6'
          Dst:             sieve_ext_variables_get_varid
        - Src:             'ext-variables-operands.c:90,3'
          Dst:             sieve_code_dumpf
        - Src:             'ext-variables-operands.c:96,6'
          Dst:             sieve_ext_variables_get_varid
        - Src:             'ext-variables-operands.c:95,3'
          Dst:             sieve_code_dumpf
    - functionName:    opr_variable_read_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - sieve_binary_read_extension
        - sieve_binary_read_unsigned
        - sieve_ext_variables_runtime_get_storage
        - sieve_runtime_trace_operand_error
        - sieve_variable_get
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:113,7'
          Dst:             sieve_binary_read_extension
        - Src:             'ext-variables-operands.c:114,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-variables-operands.c:120,12'
          Dst:             sieve_ext_variables_runtime_get_storage
        - Src:             'ext-variables-operands.c:122,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-variables-operands.c:128,6'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-variables-operands.c:133,9'
          Dst:             sieve_variable_get
        - Src:             'ext-variables-operands.c:137,14'
          Dst:             t_str_new
        - Src:             'ext-variables-operands.c:142,2'
          Dst:             sieve_runtime_trace_operand_error
    - functionName:    sieve_variables_opr_variable_emit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-operands.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_binary_emit_byte
        - sieve_binary_emit_extension
        - sieve_binary_emit_unsigned
        - sieve_operand_emit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-variables-operands.c:55,2'
          Dst:             i_panic
        - Src:             'ext-variables-operands.c:59,9'
          Dst:             sieve_operand_emit
        - Src:             'ext-variables-operands.c:60,9'
          Dst:             sieve_binary_emit_byte
        - Src:             'ext-variables-operands.c:61,9'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-variables-operands.c:65,8'
          Dst:             sieve_operand_emit
        - Src:             'ext-variables-operands.c:66,8'
          Dst:             sieve_binary_emit_extension
        - Src:             'ext-variables-operands.c:67,8'
          Dst:             sieve_binary_emit_unsigned
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_notify_validate_stringlist_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:213,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-notify.c:218,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_notify_validate_string_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:179,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-notify.c:185,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_notify_validate_importance_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          185
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - sieve_argument_create
        - sieve_ast_argument_number_substitute
        - sieve_ast_argument_type_name
        - sieve_ast_arguments_detach
        - sieve_validator_error
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:240,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-notify.c:246,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-notify.c:254,3'
          Dst:             sieve_ast_argument_type_name
        - Src:             'cmd-notify.c:254,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-notify.c:261,11'
          Dst:             str_c
        - Src:             'cmd-notify.c:264,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-notify.c:271,2'
          Dst:             sieve_ast_argument_number_substitute
        - Src:             'cmd-notify.c:272,21'
          Dst:             sieve_argument_create
    - functionName:    act_notify_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          130
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    act_notify_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_result_action_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:602,3'
          Dst:             sieve_result_action_printf
    - functionName:    act_notify_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          143
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - event_create
        - event_set_append_log_prefix
        - event_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:578,15'
          Dst:             event_create
        - Src:             'cmd-notify.c:579,2'
          Dst:             event_set_append_log_prefix
        - Src:             'cmd-notify.c:583,2'
          Dst:             event_unref
    - functionName:    cmd_notify_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          290
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - ext_enotify_runtime_check_operands
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_opr_number_read
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read
        - sieve_result_add_action
        - sieve_result_pool
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-notify.c:457,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-notify.c:451,14'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-notify.c:459,10'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-notify.c:463,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-notify.c:467,10'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-notify.c:471,10'
          Dst:             sieve_opr_stringlist_read
        - Src:             'cmd-notify.c:475,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-notify.c:486,13'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-notify.c:503,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-notify.c:504,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-notify.c:505,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-notify.c:507,22'
          Dst:             str_c
        - Src:             'cmd-notify.c:507,9'
          Dst:             str_sanitize
        - Src:             'cmd-notify.c:506,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-notify.c:512,13'
          Dst:             ext_enotify_runtime_check_operands
        - Src:             'cmd-notify.c:517,4'
          Dst:             sieve_runtime_error
        - Src:             'cmd-notify.c:522,10'
          Dst:             sieve_result_pool
        - Src:             'cmd-notify.c:523,9'
          Dst:             malloc_multiply_check
        - Src:             'cmd-notify.c:523,9'
          Dst:             p_malloc
        - Src:             'cmd-notify.c:528,34'
          Dst:             str_c
        - Src:             'cmd-notify.c:528,19'
          Dst:             p_strdup
        - Src:             'cmd-notify.c:530,31'
          Dst:             str_c
        - Src:             'cmd-notify.c:530,16'
          Dst:             p_strdup
        - Src:             'cmd-notify.c:532,7'
          Dst:             sieve_result_add_action
    - functionName:    cmd_notify_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-notify.c:394,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-notify.c:378,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-notify.c:379,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-notify.c:387,14'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-notify.c:396,11'
          Dst:             sieve_opr_number_dump
        - Src:             'cmd-notify.c:400,11'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-notify.c:403,11'
          Dst:             sieve_opr_stringlist_dump
        - Src:             'cmd-notify.c:407,11'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-notify.c:418,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_notify_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:362,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-notify.c:365,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_notify_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          132
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - ext_enotify_compile_check_arguments
        - i_panic
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:331,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-notify.c:335,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-notify.c:339,2'
          Dst:             t_push
        - Src:             'cmd-notify.c:340,13'
          Dst:             ext_enotify_compile_check_arguments
        - Src:             'cmd-notify.c:343,4'
          Dst:             t_pop
        - Src:             'cmd-notify.c:343,4'
          Dst:             i_panic
        - Src:             'cmd-notify.c:348,3'
          Dst:             sieve_validator_error
    - functionName:    cmd_notify_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:316,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-notify.c:316,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-notify.c:316,13'
          Dst:             p_malloc
    - functionName:    cmd_notify_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/cmd-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-notify.c:291,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-notify.c:294,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-notify.c:296,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-notify.c:299,2'
          Dst:             sieve_validator_register_tag
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:    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:             'dovecot/src/lib/array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:    sieve_enotify_create_finish_event
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create_passthrough
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:738,3'
          Dst:             event_create_passthrough
    - functionName:    sieve_enotify_method_printf
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_vprintf
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:726,2'
          Dst:             sieve_result_vprintf
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    ext_enotify_option_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          274
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - sieve_event_log
        - str_sanitize
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:272,3'
          Dst:             sieve_event_log
        - Src:             'ext-enotify-common.c:277,6'
          Dst:             __ctype_b_loc
        - Src:             'ext-enotify-common.c:281,10'
          Dst:             __ctype_b_loc
        - Src:             'ext-enotify-common.c:287,3'
          Dst:             str_sanitize
        - Src:             'ext-enotify-common.c:287,3'
          Dst:             sieve_event_log
        - Src:             'ext-enotify-common.c:295,17'
          Dst:             t_strdup_until
        - Src:             'ext-enotify-common.c:314,3'
          Dst:             str_sanitize
        - Src:             'ext-enotify-common.c:314,3'
          Dst:             sieve_event_log
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_enotify_runtime_check_operands
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          214
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - ext_enotify_get_method
        - ext_enotify_option_parse
        - sieve_result_pool
        - sieve_runtime_get_full_command_location
        - sieve_runtime_trace_error
        - sieve_stringlist_next_item
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:636,11'
          Dst:             ext_enotify_get_method
        - Src:             'ext-enotify-common.c:650,19'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'ext-enotify-common.c:651,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:652,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:656,11'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:657,4'
          Dst:             sieve_result_pool
        - Src:             'ext-enotify-common.c:665,19'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-enotify-common.c:673,14'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:672,10'
          Dst:             ext_enotify_option_parse
        - Src:             'ext-enotify-common.c:691,6'
          Dst:             sieve_runtime_trace_error
        - Src:             'ext-enotify-common.c:706,3'
          Dst:             event_unref
    - functionName:    ext_enotify_get_method
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ext_enotify_method_find
        - ext_enotify_uri_scheme_parse
        - sieve_runtime_error
        - str_c
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:562,20'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:568,16'
          Dst:             ext_enotify_uri_scheme_parse
        - Src:             'ext-enotify-common.c:569,3'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:569,3'
          Dst:             str_sanitize
        - Src:             'ext-enotify-common.c:569,3'
          Dst:             sieve_runtime_error
        - Src:             'ext-enotify-common.c:576,16'
          Dst:             ext_enotify_method_find
        - Src:             'ext-enotify-common.c:577,3'
          Dst:             sieve_runtime_error
    - functionName:    ext_enotify_uri_scheme_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __ctype_b_loc
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:214,21'
          Dst:             t_str_new
        - Src:             'ext-enotify-common.c:225,7'
          Dst:             __ctype_b_loc
        - Src:             'ext-enotify-common.c:228,2'
          Dst:             str_append_c
        - Src:             'ext-enotify-common.c:232,8'
          Dst:             __ctype_b_loc
        - Src:             'ext-enotify-common.c:235,3'
          Dst:             str_append_c
        - Src:             'ext-enotify-common.c:245,9'
          Dst:             str_c
    - functionName:    ext_enotify_method_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:176,12'
          Dst:             array_get_i
        - Src:             'ext-enotify-common.c:181,7'
          Dst:             strcasecmp
    - 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:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_enotify_runtime_get_method_capability
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          111
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - ext_enotify_get_method
        - sieve_runtime_get_full_command_location
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:598,11'
          Dst:             ext_enotify_get_method
        - Src:             'ext-enotify-common.c:611,19'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'ext-enotify-common.c:612,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:613,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:618,11'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:620,3'
          Dst:             event_unref
    - functionName:    ext_enotify_runtime_method_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          129
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - ext_enotify_method_find
        - ext_enotify_uri_scheme_parse
        - sieve_runtime_get_full_command_location
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:520,20'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:526,16'
          Dst:             ext_enotify_uri_scheme_parse
        - Src:             'ext-enotify-common.c:528,16'
          Dst:             ext_enotify_method_find
        - Src:             'ext-enotify-common.c:540,19'
          Dst:             sieve_runtime_get_full_command_location
        - Src:             'ext-enotify-common.c:541,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:542,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:547,11'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:549,3'
          Dst:             event_unref
    - functionName:    _ext_enotify_option_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - ext_enotify_option_parse
        - sieve_error_script_location
        - sieve_validator_error_handler
        - sieve_validator_script
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:342,23'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:351,18'
          Dst:             sieve_validator_error_handler
        - Src:             'ext-enotify-common.c:353,3'
          Dst:             sieve_validator_script
        - Src:             'ext-enotify-common.c:352,18'
          Dst:             sieve_error_script_location
        - Src:             'ext-enotify-common.c:354,15'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:355,2'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:369,8'
          Dst:             ext_enotify_option_parse
        - Src:             'ext-enotify-common.c:374,8'
          Dst:             ext_enotify_option_parse
        - Src:             'ext-enotify-common.c:387,2'
          Dst:             event_unref
    - functionName:    ext_enotify_compile_check_arguments
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          420
      EdgeCount:       75
      CyclomaticComplexity: 23
      functionsReached:
        - _ext_enotify_option_check
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - ext_enotify_method_find
        - ext_enotify_uri_scheme_parse
        - sieve_ast_arguments_detach
        - sieve_ast_stringlist_map
        - sieve_error_script_location
        - sieve_validator_error
        - sieve_validator_error_handler
        - sieve_validator_script
        - sieve_validator_warning
        - str_c
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:400,20'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:414,16'
          Dst:             ext_enotify_uri_scheme_parse
        - Src:             'ext-enotify-common.c:415,3'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:415,3'
          Dst:             str_sanitize
        - Src:             'ext-enotify-common.c:415,3'
          Dst:             sieve_validator_error
        - Src:             'ext-enotify-common.c:423,16'
          Dst:             ext_enotify_method_find
        - Src:             'ext-enotify-common.c:424,3'
          Dst:             sieve_validator_error
        - Src:             'ext-enotify-common.c:441,19'
          Dst:             sieve_validator_error_handler
        - Src:             'ext-enotify-common.c:443,4'
          Dst:             sieve_validator_script
        - Src:             'ext-enotify-common.c:442,19'
          Dst:             sieve_error_script_location
        - Src:             'ext-enotify-common.c:444,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:445,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:449,11'
          Dst:             str_c
        - Src:             'ext-enotify-common.c:457,3'
          Dst:             event_unref
        - Src:             'ext-enotify-common.c:458,19'
          Dst:             sieve_validator_error_handler
        - Src:             'ext-enotify-common.c:460,4'
          Dst:             sieve_validator_script
        - Src:             'ext-enotify-common.c:459,19'
          Dst:             sieve_error_script_location
        - Src:             'ext-enotify-common.c:461,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:462,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:474,3'
          Dst:             event_unref
        - Src:             'ext-enotify-common.c:475,19'
          Dst:             sieve_validator_error_handler
        - Src:             'ext-enotify-common.c:477,4'
          Dst:             sieve_validator_script
        - Src:             'ext-enotify-common.c:476,19'
          Dst:             sieve_error_script_location
        - Src:             'ext-enotify-common.c:478,16'
          Dst:             event_create
        - Src:             'ext-enotify-common.c:479,3'
          Dst:             event_set_append_log_prefix
        - Src:             'ext-enotify-common.c:486,2'
          Dst:             event_unref
        - Src:             'ext-enotify-common.c:495,13'
          Dst:             sieve_ast_stringlist_map
        - Src:             'ext-enotify-common.c:495,13'
          Dst:             _ext_enotify_option_check
        - Src:             'ext-enotify-common.c:501,4'
          Dst:             sieve_validator_warning
        - Src:             'ext-enotify-common.c:504,10'
          Dst:             sieve_ast_arguments_detach
    - functionName:    sieve_enotify_method_unregister
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:152,2'
          Dst:             i_panic
        - Src:             'ext-enotify-common.c:153,2'
          Dst:             i_panic
        - Src:             'ext-enotify-common.c:159,21'
          Dst:             array_count_i
        - Src:             'ext-enotify-common.c:161,4'
          Dst:             array_idx_modifiable_i
    - functionName:    sieve_enotify_method_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - ext_enotify_method_register
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:140,2'
          Dst:             i_panic
        - Src:             'ext-enotify-common.c:141,2'
          Dst:             i_panic
        - Src:             'ext-enotify-common.c:145,9'
          Dst:             ext_enotify_method_register
    - functionName:    ext_enotify_method_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_delete_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:88,21'
          Dst:             array_count_i
        - Src:             'ext-enotify-common.c:90,9'
          Dst:             array_append_space_i
        - Src:             'ext-enotify-common.c:98,3'
          Dst:             array_count_i
        - Src:             'ext-enotify-common.c:98,3'
          Dst:             array_delete_i
    - 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:             'dovecot/src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    ext_enotify_methods_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:126,12'
          Dst:             array_get_i
        - Src:             'ext-enotify-common.c:132,2'
          Dst:             array_free_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    ext_enotify_methods_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - ext_enotify_method_register
        - ext_enotify_methods_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:111,2'
          Dst:             array_create_i
        - Src:             'ext-enotify-common.c:113,6'
          Dst:             ext_enotify_method_register
        - Src:             'ext-enotify-common.c:115,3'
          Dst:             ext_enotify_methods_deinit
    - functionName:    sieve_ext_enotify_require_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_require
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:73,9'
          Dst:             sieve_extension_require
    - functionName:    sieve_ext_enotify_get_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_extension_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:66,9'
          Dst:             sieve_extension_register
    - functionName:    ext_notify_get_methods_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/ext-enotify-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - str_append
        - str_append_c
        - str_c
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-enotify-common.c:193,21'
          Dst:             t_str_new
        - Src:             'ext-enotify-common.c:195,12'
          Dst:             array_get_i
        - Src:             'ext-enotify-common.c:198,8'
          Dst:             str_len
        - Src:             'ext-enotify-common.c:199,5'
          Dst:             str_append_c
        - Src:             'ext-enotify-common.c:201,5'
          Dst:             str_append
        - Src:             'ext-enotify-common.c:203,10'
          Dst:             str_c
    - 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_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:    _contains_8bit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/./../../../util/rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../util/rfc2822.h:33,8'
          Dst:             rfc2822_header_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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    ntfy_mailto_send
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 761
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         98
      ICount:          748
      EdgeCount:       126
      CyclomaticComplexity: 30
      functionsReached:
        - _contains_8bit
        - array_get_i
        - mail_get_headers_utf8
        - message_date_create
        - o_stream_nsend
        - rfc2822_header_field_name_sanitize
        - rfc2822_header_printf
        - rfc2822_header_utf8_printf
        - rfc2822_header_write
        - rfc2822_header_write_address
        - sieve_address_source_get_address
        - sieve_enotify_create_finish_event
        - sieve_event_log
        - sieve_get_postmaster_address
        - sieve_get_postmaster_smtp
        - sieve_message_get_new_id
        - sieve_message_get_sender
        - sieve_smtp_add_rcpt
        - sieve_smtp_available
        - sieve_smtp_finish
        - sieve_smtp_send
        - sieve_smtp_start
        - smtp_address_encode
        - smtp_address_encode_path
        - str_append
        - str_c
        - str_data
        - str_len
        - str_printfa
        - str_sanitize
        - str_sanitize_utf8
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'ntfy-mailto.c:677,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ntfy-mailto.c:543,15'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:545,3'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:552,7'
          Dst:             sieve_smtp_available
        - Src:             'ntfy-mailto.c:553,3'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:571,15'
          Dst:             sieve_message_get_sender
        - Src:             'ntfy-mailto.c:579,8'
          Dst:             sieve_address_source_get_address
        - Src:             'ntfy-mailto.c:589,16'
          Dst:             sieve_get_postmaster_smtp
        - Src:             'ntfy-mailto.c:591,12'
          Dst:             sieve_get_postmaster_address
        - Src:             'ntfy-mailto.c:598,11'
          Dst:             sieve_get_postmaster_address
        - Src:             'ntfy-mailto.c:601,5'
          Dst:             smtp_address_encode
        - Src:             'ntfy-mailto.c:600,11'
          Dst:             t_strdup_printf
        - Src:             'ntfy-mailto.c:607,13'
          Dst:             str_sanitize_utf8
        - Src:             'ntfy-mailto.c:613,7'
          Dst:             mail_get_headers_utf8
        - Src:             'ntfy-mailto.c:616,5'
          Dst:             t_strdup_printf
        - Src:             'ntfy-mailto.c:615,14'
          Dst:             str_sanitize_utf8
        - Src:             'ntfy-mailto.c:626,8'
          Dst:             t_str_new
        - Src:             'ntfy-mailto.c:630,10'
          Dst:             t_str_new
        - Src:             'ntfy-mailto.c:631,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:633,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:634,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:638,10'
          Dst:             t_str_new
        - Src:             'ntfy-mailto.c:639,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:641,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:642,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:647,5'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:649,10'
          Dst:             smtp_address_encode_path
        - Src:             'ntfy-mailto.c:648,4'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:652,4'
          Dst:             str_printfa
        - Src:             'ntfy-mailto.c:656,8'
          Dst:             t_str_new
        - Src:             'ntfy-mailto.c:657,13'
          Dst:             sieve_message_get_new_id
        - Src:             'ntfy-mailto.c:659,2'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:660,2'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:661,36'
          Dst:             message_date_create
        - Src:             'ntfy-mailto.c:661,2'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:662,2'
          Dst:             rfc2822_header_utf8_printf
        - Src:             'ntfy-mailto.c:664,2'
          Dst:             rfc2822_header_write_address
        - Src:             'ntfy-mailto.c:667,43'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:667,3'
          Dst:             rfc2822_header_write_address
        - Src:             'ntfy-mailto.c:669,43'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:669,3'
          Dst:             rfc2822_header_write_address
        - Src:             'ntfy-mailto.c:673,10'
          Dst:             smtp_address_encode
        - Src:             'ntfy-mailto.c:671,2'
          Dst:             rfc2822_header_printf
        - Src:             'ntfy-mailto.c:674,2'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:679,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:680,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:683,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:684,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:688,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:689,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:695,12'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:698,4'
          Dst:             rfc2822_header_field_name_sanitize
        - Src:             'ntfy-mailto.c:700,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:705,2'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:707,7'
          Dst:             _contains_8bit
        - Src:             'ntfy-mailto.c:708,4'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:710,4'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:713,4'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:715,4'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:718,3'
          Dst:             str_printfa
        - Src:             'ntfy-mailto.c:721,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:723,3'
          Dst:             rfc2822_header_write
        - Src:             'ntfy-mailto.c:726,3'
          Dst:             str_append
        - Src:             'ntfy-mailto.c:729,9'
          Dst:             sieve_smtp_start
        - Src:             'ntfy-mailto.c:733,3'
          Dst:             sieve_smtp_add_rcpt
        - Src:             'ntfy-mailto.c:735,11'
          Dst:             sieve_smtp_send
        - Src:             'ntfy-mailto.c:736,25'
          Dst:             str_data
        - Src:             'ntfy-mailto.c:736,40'
          Dst:             str_len
        - Src:             'ntfy-mailto.c:736,2'
          Dst:             o_stream_nsend
        - Src:             'ntfy-mailto.c:738,13'
          Dst:             sieve_smtp_finish
        - Src:             'ntfy-mailto.c:740,4'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:740,4'
          Dst:             str_sanitize
        - Src:             'ntfy-mailto.c:740,4'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:745,4'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:745,4'
          Dst:             str_sanitize
        - Src:             'ntfy-mailto.c:745,4'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:752,4'
          Dst:             sieve_enotify_create_finish_event
        - Src:             'ntfy-mailto.c:753,29'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:755,3'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:755,3'
          Dst:             sieve_event_log
    - 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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:    2
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    smtp_address_equals
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-smtp/smtp-address.h:191,10'
          Dst:             smtp_address_cmp
    - functionName:    ntfy_mailto_uri_logv
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_event_logv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:209,2'
          Dst:             sieve_event_logv
    - functionName:    ntfy_mailto_uri_env_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:229,2'
          Dst:             event_unref
    - functionName:    ntfy_mailto_uri_env_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - event_set_append_log_prefix
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:220,18'
          Dst:             event_create
        - Src:             'ntfy-mailto.c:221,2'
          Dst:             event_set_append_log_prefix
    - functionName:    ntfy_mailto_get_settings
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      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:    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:    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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ntfy_mailto_action_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          239
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - mail_get_headers
        - mailbox_get_last_internal_error
        - ntfy_mailto_send
        - sieve_critical
        - sieve_event_log
        - sieve_get_postmaster_smtp
        - sieve_message_get_final_recipient
        - sieve_message_get_sender
        - smtp_address_encode
        - strcasecmp
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:777,17'
          Dst:             sieve_message_get_final_recipient
        - Src:             'ntfy-mailto.c:779,17'
          Dst:             sieve_get_postmaster_smtp
        - Src:             'ntfy-mailto.c:780,2'
          Dst:             i_panic
        - Src:             'ntfy-mailto.c:783,8'
          Dst:             mail_get_headers
        - Src:             'ntfy-mailto.c:785,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'ntfy-mailto.c:785,3'
          Dst:             sieve_critical
        - Src:             'ntfy-mailto.c:797,8'
          Dst:             strcasecmp
        - Src:             'ntfy-mailto.c:802,15'
          Dst:             sieve_message_get_sender
        - Src:             'ntfy-mailto.c:805,8'
          Dst:             smtp_address_encode
        - Src:             'ntfy-mailto.c:804,6'
          Dst:             t_strdup_printf
        - Src:             'ntfy-mailto.c:807,5'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:816,2'
          Dst:             t_push
        - Src:             'ntfy-mailto.c:817,9'
          Dst:             ntfy_mailto_send
        - Src:             'ntfy-mailto.c:818,4'
          Dst:             t_pop
        - Src:             'ntfy-mailto.c:818,4'
          Dst:             i_panic
    - functionName:    ntfy_mailto_action_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          226
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - array_get_i
        - sieve_enotify_method_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:437,2'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:441,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:445,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:451,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:457,2'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:459,15'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:461,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:466,5'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:470,5'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:479,12'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:481,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:483,4'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:492,3'
          Dst:             sieve_enotify_method_printf
        - Src:             'ntfy-mailto.c:499,2'
          Dst:             sieve_enotify_method_printf
    - functionName:    ntfy_mailto_action_check_duplicates
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          183
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - smtp_address_equals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:385,14'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:386,14'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:390,8'
          Dst:             smtp_address_equals
        - Src:             'ntfy-mailto.c:399,5'
          Dst:             array_delete_i
        - Src:             'ntfy-mailto.c:404,17'
          Dst:             array_get_i
        - Src:             'ntfy-mailto.c:418,3'
          Dst:             array_delete_i
        - Src:             'ntfy-mailto.c:419,10'
          Dst:             array_count_i
    - functionName:    ntfy_mailto_runtime_check_operands
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          151
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - ntfy_mailto_get_settings
        - ntfy_mailto_uri_env_deinit
        - ntfy_mailto_uri_env_init
        - p_malloc
        - sieve_address_parse_str
        - sieve_event_log
        - smtp_address_clone
        - str_c
        - str_sanitize
        - t_pop
        - t_push
        - uri_mailto_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:322,43'
          Dst:             ntfy_mailto_get_settings
        - Src:             'ntfy-mailto.c:330,11'
          Dst:             malloc_multiply_check
        - Src:             'ntfy-mailto.c:330,11'
          Dst:             p_malloc
        - Src:             'ntfy-mailto.c:334,3'
          Dst:             t_push
        - Src:             'ntfy-mailto.c:335,14'
          Dst:             sieve_address_parse_str
        - Src:             'ntfy-mailto.c:337,5'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:337,5'
          Dst:             str_sanitize
        - Src:             'ntfy-mailto.c:337,5'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:344,6'
          Dst:             smtp_address_clone
        - Src:             'ntfy-mailto.c:346,5'
          Dst:             t_pop
        - Src:             'ntfy-mailto.c:346,5'
          Dst:             i_panic
        - Src:             'ntfy-mailto.c:352,2'
          Dst:             ntfy_mailto_uri_env_init
        - Src:             'ntfy-mailto.c:353,15'
          Dst:             uri_mailto_parse
        - Src:             'ntfy-mailto.c:357,2'
          Dst:             ntfy_mailto_uri_env_deinit
    - functionName:    ntfy_mailto_runtime_get_notify_capability
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ntfy_mailto_get_settings
        - strcasecmp
        - uri_mailto_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:292,43'
          Dst:             ntfy_mailto_get_settings
        - Src:             'ntfy-mailto.c:294,7'
          Dst:             uri_mailto_validate
        - Src:             'ntfy-mailto.c:298,6'
          Dst:             strcasecmp
    - functionName:    ntfy_mailto_runtime_check_uri
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntfy_mailto_get_settings
        - uri_mailto_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:308,43'
          Dst:             ntfy_mailto_get_settings
        - Src:             'ntfy-mailto.c:310,9'
          Dst:             uri_mailto_validate
    - functionName:    ntfy_mailto_compile_check_from
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_address_validate_str
        - sieve_event_log
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:262,2'
          Dst:             t_push
        - Src:             'ntfy-mailto.c:263,12'
          Dst:             sieve_address_validate_str
        - Src:             'ntfy-mailto.c:265,4'
          Dst:             str_c
        - Src:             'ntfy-mailto.c:265,4'
          Dst:             str_sanitize
        - Src:             'ntfy-mailto.c:265,4'
          Dst:             sieve_event_log
        - Src:             'ntfy-mailto.c:271,4'
          Dst:             t_pop
        - Src:             'ntfy-mailto.c:271,4'
          Dst:             i_panic
    - functionName:    ntfy_mailto_compile_check_uri
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntfy_mailto_get_settings
        - ntfy_mailto_uri_env_deinit
        - ntfy_mailto_uri_env_init
        - uri_mailto_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:241,43'
          Dst:             ntfy_mailto_get_settings
        - Src:             'ntfy-mailto.c:245,2'
          Dst:             ntfy_mailto_uri_env_init
        - Src:             'ntfy-mailto.c:246,11'
          Dst:             uri_mailto_validate
        - Src:             'ntfy-mailto.c:250,2'
          Dst:             ntfy_mailto_uri_env_deinit
    - functionName:    ntfy_mailto_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:185,2'
          Dst:             pool_unref
        - Src:             'ntfy-mailto.c:186,2'
          Dst:             p_free_internal
    - functionName:    ntfy_mailto_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ntfy-mailto.c:166,6'
          Dst:             settings_get
        - Src:             'ntfy-mailto.c:168,3'
          Dst:             e_error
        - Src:             'ntfy-mailto.c:172,10'
          Dst:             malloc_multiply_check
        - Src:             'ntfy-mailto.c:172,10'
          Dst:             p_malloc
    - 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:    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:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_mailto_header_is_unique
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:102,7'
          Dst:             strcasecmp
    - functionName:    uri_mailto_parse_header_recipients
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
        - str_data
        - str_len
        - str_truncate
        - t_str_new
        - uri_mailto_add_valid_recipient
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:310,17'
          Dst:             t_str_new
        - Src:             'uri-mailto.c:311,32'
          Dst:             str_data
        - Src:             'uri-mailto.c:312,25'
          Dst:             str_len
        - Src:             'uri-mailto.c:317,9'
          Dst:             uri_mailto_add_valid_recipient
        - Src:             'uri-mailto.c:321,4'
          Dst:             str_truncate
        - Src:             'uri-mailto.c:324,4'
          Dst:             str_append_c
        - Src:             'uri-mailto.c:330,7'
          Dst:             uri_mailto_add_valid_recipient
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_mailto_add_valid_recipient
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          191
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_space_i
        - array_get_modifiable_i
        - p_strdup
        - sieve_address_parse_str
        - smtp_address_clone
        - smtp_address_equals
        - str_c
        - str_sanitize
        - uri_mailto_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:194,17'
          Dst:             sieve_address_parse_str
        - Src:             'uri-mailto.c:195,3'
          Dst:             str_c
        - Src:             'uri-mailto.c:195,3'
          Dst:             str_sanitize
        - Src:             'uri-mailto.c:195,3'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:203,11'
          Dst:             array_get_modifiable_i
        - Src:             'uri-mailto.c:209,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:220,8'
          Dst:             smtp_address_equals
        - Src:             'uri-mailto.c:226,5'
          Dst:             str_c
        - Src:             'uri-mailto.c:226,5'
          Dst:             str_sanitize
        - Src:             'uri-mailto.c:226,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:235,19'
          Dst:             array_append_space_i
        - Src:             'uri-mailto.c:237,48'
          Dst:             str_c
        - Src:             'uri-mailto.c:237,25'
          Dst:             p_strdup
        - Src:             'uri-mailto.c:239,4'
          Dst:             smtp_address_clone
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    uri_mailto_log
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             'dovecot/src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    smtp_address_equals
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-smtp/smtp-address.h:191,10'
          Dst:             smtp_address_cmp
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    uri_mailto_header_is_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - strcasecmp
        - uri_mailto_header_is_unique
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:347,6'
          Dst:             uri_mailto_header_is_unique
        - Src:             'uri-mailto.c:351,10'
          Dst:             array_get_i
        - Src:             'uri-mailto.c:353,8'
          Dst:             strcasecmp
    - functionName:    uri_mailto_header_is_reserved
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:84,7'
          Dst:             strcasecmp
    - functionName:    _decode_hex_digit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          123
      EdgeCount:       54
      CyclomaticComplexity: 28
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'uri-mailto.c:143,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    _is_qchar
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _parse_hex_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - _decode_hex_digit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:159,15'
          Dst:             _decode_hex_digit
        - Src:             'uri-mailto.c:165,15'
          Dst:             _decode_hex_digit
    - functionName:    uri_mailto_parse_headers
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         114
      ICount:          576
      EdgeCount:       150
      CyclomaticComplexity: 38
      functionsReached:
        - _is_qchar
        - _parse_hex_value
        - array_append_space_i
        - p_strdup
        - rfc2822_header_field_body_verify
        - rfc2822_header_field_name_verify
        - str_append_c
        - str_c
        - str_len
        - str_sanitize
        - str_truncate
        - strcasecmp
        - t_str_new
        - uri_mailto_header_is_duplicate
        - uri_mailto_header_is_reserved
        - uri_mailto_log
        - uri_mailto_parse_header_recipients
      functionUses:    1
      BranchProfiles:
        - Branch String:   'uri-mailto.c:504,3'
          Branch Sides:    []
      Callsites:
        - Src:             'uri-mailto.c:365,20'
          Dst:             t_str_new
        - Src:             'uri-mailto.c:387,10'
          Dst:             _parse_hex_value
        - Src:             'uri-mailto.c:388,6'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:392,29'
          Dst:             _is_qchar
        - Src:             'uri-mailto.c:393,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:400,4'
          Dst:             str_append_c
        - Src:             'uri-mailto.c:406,41'
          Dst:             str_c
        - Src:             'uri-mailto.c:407,13'
          Dst:             str_len
        - Src:             'uri-mailto.c:406,8'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'uri-mailto.c:408,4'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:417,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:428,17'
          Dst:             str_c
        - Src:             'uri-mailto.c:429,8'
          Dst:             strcasecmp
        - Src:             'uri-mailto.c:431,13'
          Dst:             strcasecmp
        - Src:             'uri-mailto.c:433,13'
          Dst:             strcasecmp
        - Src:             'uri-mailto.c:435,13'
          Dst:             strcasecmp
        - Src:             'uri-mailto.c:437,14'
          Dst:             uri_mailto_header_is_reserved
        - Src:             'uri-mailto.c:439,11'
          Dst:             uri_mailto_header_is_duplicate
        - Src:             'uri-mailto.c:440,14'
          Dst:             array_append_space_i
        - Src:             'uri-mailto.c:441,20'
          Dst:             p_strdup
        - Src:             'uri-mailto.c:443,7'
          Dst:             str_sanitize
        - Src:             'uri-mailto.c:443,7'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:453,5'
          Dst:             str_sanitize
        - Src:             'uri-mailto.c:453,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:464,3'
          Dst:             str_truncate
        - Src:             'uri-mailto.c:473,10'
          Dst:             _parse_hex_value
        - Src:             'uri-mailto.c:474,6'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:478,29'
          Dst:             _is_qchar
        - Src:             'uri-mailto.c:479,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:485,4'
          Dst:             str_append_c
        - Src:             'uri-mailto.c:495,5'
          Dst:             str_c
        - Src:             'uri-mailto.c:495,19'
          Dst:             str_len
        - Src:             'uri-mailto.c:494,9'
          Dst:             rfc2822_header_field_body_verify
        - Src:             'uri-mailto.c:496,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:509,9'
          Dst:             uri_mailto_parse_header_recipients
        - Src:             'uri-mailto.c:515,9'
          Dst:             uri_mailto_parse_header_recipients
        - Src:             'uri-mailto.c:524,30'
          Dst:             str_c
        - Src:             'uri-mailto.c:524,7'
          Dst:             p_strdup
        - Src:             'uri-mailto.c:526,6'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:537,21'
          Dst:             str_c
        - Src:             'uri-mailto.c:536,18'
          Dst:             p_strdup
        - Src:             'uri-mailto.c:539,6'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:546,41'
          Dst:             str_c
        - Src:             'uri-mailto.c:546,18'
          Dst:             p_strdup
        - Src:             'uri-mailto.c:551,3'
          Dst:             str_truncate
    - functionName:    uri_mailto_parse_recipients
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          223
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - _is_qchar
        - _parse_hex_value
        - i_panic
        - str_append_c
        - str_truncate
        - t_str_new
        - uri_mailto_add_valid_recipient
        - uri_mailto_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:249,17'
          Dst:             t_str_new
        - Src:             'uri-mailto.c:263,9'
          Dst:             _parse_hex_value
        - Src:             'uri-mailto.c:264,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:271,10'
          Dst:             uri_mailto_add_valid_recipient
        - Src:             'uri-mailto.c:276,5'
          Dst:             str_truncate
        - Src:             'uri-mailto.c:279,5'
          Dst:             str_append_c
        - Src:             'uri-mailto.c:283,9'
          Dst:             _is_qchar
        - Src:             'uri-mailto.c:284,5'
          Dst:             uri_mailto_log
        - Src:             'uri-mailto.c:291,4'
          Dst:             str_append_c
        - Src:             'uri-mailto.c:296,2'
          Dst:             i_panic
        - Src:             'uri-mailto.c:299,7'
          Dst:             uri_mailto_add_valid_recipient
    - 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:    uri_mailto_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     externalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - uri_mailto_log
        - uri_mailto_parse_uri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:667,15'
          Dst:             malloc_multiply_check
        - Src:             'uri-mailto.c:667,15'
          Dst:             p_malloc
        - Src:             'uri-mailto.c:668,2'
          Dst:             array_create_i
        - Src:             'uri-mailto.c:669,2'
          Dst:             array_create_i
        - Src:             'uri-mailto.c:671,7'
          Dst:             uri_mailto_parse_uri
        - Src:             'uri-mailto.c:675,7'
          Dst:             array_count_i
        - Src:             'uri-mailto.c:676,4'
          Dst:             uri_mailto_log
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    uri_mailto_parse_uri
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - uri_mailto_parse_headers
        - uri_mailto_parse_recipients
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:589,7'
          Dst:             uri_mailto_parse_recipients
        - Src:             'uri-mailto.c:594,2'
          Dst:             i_panic
        - Src:             'uri-mailto.c:602,8'
          Dst:             uri_mailto_parse_headers
    - functionName:    uri_mailto_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/enotify/mailto/uri-mailto.c'
      linkageType:     externalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_datastack_create
        - uri_mailto_log
        - uri_mailto_parse_uri
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-mailto.c:628,17'
          Dst:             pool_datastack_create
        - Src:             'uri-mailto.c:630,16'
          Dst:             malloc_multiply_check
        - Src:             'uri-mailto.c:630,16'
          Dst:             p_malloc
        - Src:             'uri-mailto.c:631,3'
          Dst:             array_create_i
        - Src:             'uri-mailto.c:632,3'
          Dst:             array_create_i
        - Src:             'uri-mailto.c:635,7'
          Dst:             uri_mailto_parse_uri
        - Src:             'uri-mailto.c:639,7'
          Dst:             array_count_i
        - Src:             'uri-mailto.c:640,4'
          Dst:             uri_mailto_log
    - 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:    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:             'dovecot/src/lib/lib.h:75,2'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_environment_interpreter_context_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create
        - malloc_multiply_check
        - p_malloc
        - sieve_interpreter_extension_register
        - sieve_interpreter_pool
        - str_hash
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:62,16'
          Dst:             sieve_interpreter_pool
        - Src:             'ext-environment-common.c:65,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-environment-common.c:65,8'
          Dst:             p_malloc
        - Src:             'ext-environment-common.c:67,2'
          Dst:             hash_table_create
        - Src:             'ext-environment-common.c:67,2'
          Dst:             str_hash
        - Src:             'ext-environment-common.c:67,2'
          Dst:             strcmp
        - Src:             'ext-environment-common.c:68,2'
          Dst:             array_create_i
        - Src:             'ext-environment-common.c:70,2'
          Dst:             sieve_interpreter_extension_register
    - functionName:    ext_environment_interpreter_extension_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash_table_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:84,2'
          Dst:             hash_table_destroy
        - Src:             'ext-environment-common.c:85,2'
          Dst:             array_free_i
    - 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:             'dovecot/src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    envit_phase_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ext-environment-common.c:315,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    envit_location_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ext-environment-common.c:282,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    envit_host_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    envit_domain_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_environment_item_lookup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          197
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - hash_table_lookup
        - i_memcpy
        - i_panic
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:177,9'
          Dst:             hash_table_lookup
        - Src:             'ext-environment-common.c:181,2'
          Dst:             i_memcpy
        - Src:             'ext-environment-common.c:182,3'
          Dst:             i_panic
        - Src:             'ext-environment-common.c:184,7'
          Dst:             str_begins
        - Src:             'ext-environment-common.c:184,7'
          Dst:             strlen
        - Src:             'ext-environment-common.c:184,7'
          Dst:             strncmp
        - Src:             'ext-environment-common.c:184,7'
          Dst:             strlen
        - Src:             'ext-environment-common.c:184,7'
          Dst:             str_begins_builtin_success
    - functionName:    ext_environment_item_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - ext_environment_interpreter_context_get
        - ext_environment_item_lookup
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:203,2'
          Dst:             i_panic
        - Src:             'ext-environment-common.c:204,8'
          Dst:             ext_environment_interpreter_context_get
        - Src:             'ext-environment-common.c:206,9'
          Dst:             ext_environment_item_lookup
        - Src:             'ext-environment-common.c:210,2'
          Dst:             i_panic
    - functionName:    ext_environment_interpreter_context_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_environment_interpreter_context_create
        - sieve_interpreter_extension_get_context
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:94,3'
          Dst:             sieve_interpreter_extension_get_context
        - Src:             'ext-environment-common.c:97,9'
          Dst:             ext_environment_interpreter_context_create
    - functionName:    sieve_environment_item_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ext_environment_interpreter_context_get
        - i_panic
        - sieve_environment_item_insert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:160,2'
          Dst:             i_panic
        - Src:             'ext-environment-common.c:161,8'
          Dst:             ext_environment_interpreter_context_get
        - Src:             'ext-environment-common.c:163,2'
          Dst:             sieve_environment_item_insert
    - functionName:    sieve_environment_item_insert
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - hash_table_insert
        - malloc_multiply_check
        - p_malloc
        - sieve_interpreter_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:139,16'
          Dst:             sieve_interpreter_pool
        - Src:             'ext-environment-common.c:142,13'
          Dst:             malloc_multiply_check
        - Src:             'ext-environment-common.c:142,13'
          Dst:             p_malloc
        - Src:             'ext-environment-common.c:148,3'
          Dst:             hash_table_insert
        - Src:             'ext-environment-common.c:150,3'
          Dst:             array_append_i
    - functionName:    sieve_ext_environment_is_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_environment_interpreter_context_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:124,3'
          Dst:             ext_environment_interpreter_context_get
    - functionName:    ext_environment_interpreter_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/environment/ext-environment-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ext_environment_interpreter_context_get
        - sieve_environment_item_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-environment-common.c:110,8'
          Dst:             ext_environment_interpreter_context_get
        - Src:             'ext-environment-common.c:113,3'
          Dst:             sieve_environment_item_insert
    - functionName:    sieve_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_date_weekday_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:435,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_zone_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:428,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_std11_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_date_zone_part_get
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:412,11'
          Dst:             ext_date_zone_part_get
        - Src:             'ext-date-common.c:408,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_iso8601_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iso8601_date_create_tm
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:402,9'
          Dst:             iso8601_date_create_tm
    - functionName:    ext_date_time_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:386,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_second_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:380,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_minute_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:374,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_hour_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:368,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_julian_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          83
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:362,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_date_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:335,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_day_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:329,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_month_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:323,9'
          Dst:             t_strdup_printf
    - functionName:    ext_date_year_part_get
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:317,9'
          Dst:             t_strdup_printf
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_date_stringlist_reset
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_stringlist_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:586,3'
          Dst:             sieve_stringlist_reset
    - functionName:    ext_date_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          199
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - ext_date_part_extract
        - gmtime
        - message_date_parse
        - sieve_stringlist_next_item
        - str_c
        - strlen
        - strrchr
        - t_str_new_const
      functionUses:    1
      BranchProfiles:
        - Branch String:   'ext-date-common.c:549,3'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-date-common.c:512,9'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-date-common.c:519,18'
          Dst:             str_c
        - Src:             'ext-date-common.c:520,17'
          Dst:             strrchr
        - Src:             'ext-date-common.c:532,12'
          Dst:             strlen
        - Src:             'ext-date-common.c:531,7'
          Dst:             message_date_parse
        - Src:             'ext-date-common.c:564,18'
          Dst:             gmtime
        - Src:             'ext-date-common.c:566,17'
          Dst:             ext_date_part_extract
        - Src:             'ext-date-common.c:576,39'
          Dst:             strlen
        - Src:             'ext-date-common.c:576,11'
          Dst:             t_str_new_const
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_date_part_extract
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    ext_date_stringlist_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          62
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_date_get_current_date
        - malloc_multiply_check
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:472,12'
          Dst:             malloc_multiply_check
        - Src:             'ext-date-common.c:472,12'
          Dst:             t_malloc0
        - Src:             'ext-date-common.c:482,3'
          Dst:             ext_date_get_current_date
    - functionName:    ext_date_get_current_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ext_date_runtime_init
        - i_panic
        - sieve_message_context_extension_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:112,3'
          Dst:             sieve_message_context_extension_get
        - Src:             'ext-date-common.c:115,3'
          Dst:             ext_date_runtime_init
        - Src:             'ext-date-common.c:117,4'
          Dst:             sieve_message_context_extension_get
        - Src:             'ext-date-common.c:120,3'
          Dst:             i_panic
    - functionName:    ext_date_runtime_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          63
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - localtime
        - malloc_multiply_check
        - p_malloc
        - sieve_message_context_extension_set
        - sieve_message_context_pool
        - sieve_message_context_time
        - utc_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:42,2'
          Dst:             sieve_message_context_time
        - Src:             'ext-date-common.c:45,7'
          Dst:             localtime
        - Src:             'ext-date-common.c:46,16'
          Dst:             utc_offset
        - Src:             'ext-date-common.c:49,9'
          Dst:             sieve_message_context_pool
        - Src:             'ext-date-common.c:50,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-date-common.c:50,9'
          Dst:             p_malloc
        - Src:             'ext-date-common.c:54,2'
          Dst:             sieve_message_context_extension_set
    - functionName:    ext_date_part_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:287,7'
          Dst:             strcasecmp
    - functionName:    ext_date_parse_timezone
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          190
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:84,15'
          Dst:             strlen
        - Src:             'ext-date-common.c:89,8'
          Dst:             __ctype_b_loc
        - Src:             'ext-date-common.c:89,30'
          Dst:             __ctype_b_loc
        - Src:             'ext-date-common.c:90,8'
          Dst:             __ctype_b_loc
        - Src:             'ext-date-common.c:90,30'
          Dst:             __ctype_b_loc
    - functionName:    ext_date_interpreter_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/date/ext-date-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_interpreter_extension_register
        - sieve_message_context_extension_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-date-common.c:69,6'
          Dst:             sieve_message_context_extension_get
        - Src:             'ext-date-common.c:70,3'
          Dst:             sieve_interpreter_extension_register
    - 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:    ext_spamvirustest_parse_strlen_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:127,14'
          Dst:             t_strdup_printf
    - 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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,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:    2
      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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    ext_spamvirustest_get_score
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - float
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:257,9'
          Dst:             t_strdup_printf
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    ext_spamvirustest_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          586
      EdgeCount:       106
      CyclomaticComplexity: 27
      functionsReached:
        - array_count_i
        - array_create_i
        - array_idx_i
        - ext_spamvirustest_get_score
        - ext_spamvirustest_parse_decimal_value
        - ext_spamvirustest_parse_strlen_value
        - i_unreached
        - mail_get_first_header_utf8
        - malloc_multiply_check
        - p_malloc
        - pool_datastack_create
        - sieve_interpreter_pool
        - sieve_message_context_extension_get
        - sieve_message_context_extension_set
        - sieve_message_get_mail
        - sieve_runtime_mail_error
        - sieve_runtime_trace
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'ext-spamvirustest-common.c:448,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:274,16'
          Dst:             sieve_interpreter_pool
        - Src:             'ext-spamvirustest-common.c:283,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:293,3'
          Dst:             sieve_message_context_extension_get
        - Src:             'ext-spamvirustest-common.c:297,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-spamvirustest-common.c:297,10'
          Dst:             p_malloc
        - Src:             'ext-spamvirustest-common.c:298,3'
          Dst:             sieve_message_context_extension_set
        - Src:             'ext-spamvirustest-common.c:301,14'
          Dst:             ext_spamvirustest_get_score
        - Src:             'ext-spamvirustest-common.c:314,9'
          Dst:             sieve_message_get_mail
        - Src:             'ext-spamvirustest-common.c:321,8'
          Dst:             mail_get_first_header_utf8
        - Src:             'ext-spamvirustest-common.c:324,12'
          Dst:             sieve_runtime_mail_error
        - Src:             'ext-spamvirustest-common.c:331,5'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:339,5'
          Dst:             pool_datastack_create
        - Src:             'ext-spamvirustest-common.c:339,5'
          Dst:             array_create_i
        - Src:             'ext-spamvirustest-common.c:345,7'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:353,7'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:362,9'
          Dst:             array_count_i
        - Src:             'ext-spamvirustest-common.c:363,6'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:370,11'
          Dst:             array_idx_i
        - Src:             'ext-spamvirustest-common.c:375,9'
          Dst:             ext_spamvirustest_parse_decimal_value
        - Src:             'ext-spamvirustest-common.c:377,5'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:388,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:402,6'
          Dst:             mail_get_first_header_utf8
        - Src:             'ext-spamvirustest-common.c:404,10'
          Dst:             sieve_runtime_mail_error
        - Src:             'ext-spamvirustest-common.c:409,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:418,3'
          Dst:             pool_datastack_create
        - Src:             'ext-spamvirustest-common.c:418,3'
          Dst:             array_create_i
        - Src:             'ext-spamvirustest-common.c:422,6'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:428,5'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:436,7'
          Dst:             array_count_i
        - Src:             'ext-spamvirustest-common.c:437,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:443,12'
          Dst:             array_idx_i
        - Src:             'ext-spamvirustest-common.c:450,8'
          Dst:             ext_spamvirustest_parse_decimal_value
        - Src:             'ext-spamvirustest-common.c:452,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:460,8'
          Dst:             ext_spamvirustest_parse_strlen_value
        - Src:             'ext-spamvirustest-common.c:462,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:477,8'
          Dst:             strcmp
        - Src:             'ext-spamvirustest-common.c:486,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:494,3'
          Dst:             i_unreached
        - Src:             'ext-spamvirustest-common.c:505,2'
          Dst:             sieve_runtime_trace
        - Src:             'ext-spamvirustest-common.c:510,13'
          Dst:             ext_spamvirustest_get_score
    - 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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_spamvirustest_header_spec_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_spamvirustest_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ext_spamvirustest_header_spec_free
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:223,2'
          Dst:             ext_spamvirustest_header_spec_free
        - Src:             'ext-spamvirustest-common.c:224,2'
          Dst:             ext_spamvirustest_header_spec_free
        - Src:             'ext-spamvirustest-common.c:225,2'
          Dst:             pool_unref
        - Src:             'ext-spamvirustest-common.c:226,2'
          Dst:             pool_unref
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_spamvirustest_header_spec_parse
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          268
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - p_strdup
        - p_strdup_until
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:69,25'
          Dst:             p_strdup
        - Src:             'ext-spamvirustest-common.c:73,24'
          Dst:             p_strdup_until
        - Src:             'ext-spamvirustest-common.c:85,14'
          Dst:             t_strdup_printf
        - Src:             'ext-spamvirustest-common.c:95,14'
          Dst:             t_strdup_printf
    - functionName:    ext_spamvirustest_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          263
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - e_error
        - e_warning
        - ext_spamvirustest_header_spec_parse
        - ext_spamvirustest_unload
        - i_unreached
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_unref
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-spamvirustest-common.c:160,3'
          Dst:             i_unreached
        - Src:             'ext-spamvirustest-common.c:162,6'
          Dst:             settings_get
        - Src:             'ext-spamvirustest-common.c:163,3'
          Dst:             e_error
        - Src:             'ext-spamvirustest-common.c:170,3'
          Dst:             pool_unref
        - Src:             'ext-spamvirustest-common.c:174,9'
          Dst:             pool_alloconly_create
        - Src:             'ext-spamvirustest-common.c:175,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-spamvirustest-common.c:175,11'
          Dst:             p_malloc
        - Src:             'ext-spamvirustest-common.c:180,7'
          Dst:             ext_spamvirustest_header_spec_parse
        - Src:             'ext-spamvirustest-common.c:184,3'
          Dst:             e_error
        - Src:             'ext-spamvirustest-common.c:193,7'
          Dst:             ext_spamvirustest_header_spec_parse
        - Src:             'ext-spamvirustest-common.c:197,3'
          Dst:             e_error
        - Src:             'ext-spamvirustest-common.c:205,3'
          Dst:             e_warning
        - Src:             'ext-spamvirustest-common.c:209,3'
          Dst:             ext_spamvirustest_unload
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    cmd_error_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/cmd-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_error
        - sieve_runtime_trace
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-error.c:122,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-error.c:131,21'
          Dst:             str_c
        - Src:             'cmd-error.c:131,8'
          Dst:             str_sanitize
        - Src:             'cmd-error.c:130,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-error.c:133,2'
          Dst:             str_c
        - Src:             'cmd-error.c:133,2'
          Dst:             sieve_runtime_error
    - functionName:    cmd_error_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/cmd-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-error.c:99,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-error.c:100,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-error.c:102,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_error_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/cmd-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-error.c:84,8'
          Dst:             sieve_operation_emit
        - Src:             'cmd-error.c:88,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_error_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/cmd-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-error.c:70,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-error.c:73,9'
          Dst:             sieve_validator_argument_activate
    - functionName:    sieve_binary_read_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:244,7'
          Dst:             sieve_binary_read_integer
    - functionName:    sieve_binary_emit_unsigned
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/./../../sieve-binary.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_binary_emit_integer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-binary.h:204,9'
          Dst:             sieve_binary_emit_integer
    - 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_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_ihave_binary_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - ext_ihave_binary_get_context
        - sieve_binary_block_get_id
        - sieve_binary_dump_sectionf
        - sieve_binary_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:238,3'
          Dst:             ext_ihave_binary_get_context
        - Src:             'ext-ihave-binary.c:242,9'
          Dst:             array_get_i
        - Src:             'ext-ihave-binary.c:247,4'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-ihave-binary.c:245,3'
          Dst:             sieve_binary_dump_sectionf
        - Src:             'ext-ihave-binary.c:250,4'
          Dst:             sieve_binary_dumpf
    - functionName:    ext_ihave_binary_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ext_ihave_binary_create_context
        - sieve_binary_extension_get_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:77,4'
          Dst:             sieve_binary_extension_get_context
        - Src:             'ext-ihave-binary.c:80,9'
          Dst:             ext_ihave_binary_create_context
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    ext_ihave_binary_create_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_extension_set
        - sieve_binary_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:60,16'
          Dst:             sieve_binary_pool
        - Src:             'ext-ihave-binary.c:62,3'
          Dst:             malloc_multiply_check
        - Src:             'ext-ihave-binary.c:62,3'
          Dst:             p_malloc
        - Src:             'ext-ihave-binary.c:65,2'
          Dst:             array_create_i
        - Src:             'ext-ihave-binary.c:67,2'
          Dst:             sieve_binary_extension_set
    - functionName:    ext_ihave_binary_pre_save
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - sieve_binary_block_clear
        - sieve_binary_emit_cstring
        - sieve_binary_emit_unsigned
        - sieve_binary_extension_create_block
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:129,9'
          Dst:             array_get_i
        - Src:             'ext-ihave-binary.c:132,3'
          Dst:             sieve_binary_block_clear
        - Src:             'ext-ihave-binary.c:137,5'
          Dst:             sieve_binary_extension_create_block
        - Src:             'ext-ihave-binary.c:140,3'
          Dst:             sieve_binary_emit_unsigned
        - Src:             'ext-ihave-binary.c:143,4'
          Dst:             sieve_binary_emit_cstring
    - functionName:    ext_ihave_binary_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - e_error
        - sieve_binary_block_get_id
        - sieve_binary_extension_get_block
        - sieve_binary_path
        - sieve_binary_read_string
        - sieve_binary_read_unsigned
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:159,11'
          Dst:             sieve_binary_extension_get_block
        - Src:             'ext-ihave-binary.c:163,14'
          Dst:             sieve_binary_block_get_id
        - Src:             'ext-ihave-binary.c:168,8'
          Dst:             sieve_binary_read_unsigned
        - Src:             'ext-ihave-binary.c:169,4'
          Dst:             sieve_binary_path
        - Src:             'ext-ihave-binary.c:169,4'
          Dst:             e_error
        - Src:             'ext-ihave-binary.c:181,9'
          Dst:             sieve_binary_read_string
        - Src:             'ext-ihave-binary.c:184,5'
          Dst:             sieve_binary_path
        - Src:             'ext-ihave-binary.c:184,5'
          Dst:             e_error
        - Src:             'ext-ihave-binary.c:191,11'
          Dst:             str_c
        - Src:             'ext-ihave-binary.c:192,4'
          Dst:             array_append_i
    - functionName:    ext_ihave_binary_up_to_date
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - sieve_extension_get_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:210,10'
          Dst:             array_get_i
        - Src:             'ext-ihave-binary.c:212,10'
          Dst:             sieve_extension_get_by_name
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    ext_ihave_binary_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_ihave_binary_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:228,8'
          Dst:             ext_ihave_binary_get_context
    - functionName:    ext_ihave_binary_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_get_i
        - ext_ihave_binary_get_context
        - ext_ihave_get_ast_context
        - p_strdup
        - sieve_binary_extension_create_block
        - sieve_binary_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-binary.c:89,3'
          Dst:             ext_ihave_get_ast_context
        - Src:             'ext-ihave-binary.c:94,11'
          Dst:             ext_ihave_binary_get_context
        - Src:             'ext-ihave-binary.c:96,9'
          Dst:             array_get_i
        - Src:             'ext-ihave-binary.c:98,17'
          Dst:             sieve_binary_pool
        - Src:             'ext-ihave-binary.c:101,20'
          Dst:             sieve_binary_extension_create_block
        - Src:             'ext-ihave-binary.c:106,27'
          Dst:             p_strdup
        - Src:             'ext-ihave-binary.c:108,4'
          Dst:             array_append_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:    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_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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - 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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    ext_ihave_ast_add_missing_extension
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_get_i
        - ext_ihave_get_ast_context
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-common.c:40,3'
          Dst:             ext_ihave_get_ast_context
        - Src:             'ext-ihave-common.c:44,9'
          Dst:             array_get_i
        - Src:             'ext-ihave-common.c:46,7'
          Dst:             strcmp
        - Src:             'ext-ihave-common.c:50,2'
          Dst:             array_append_i
    - functionName:    ext_ihave_get_ast_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/ihave/ext-ihave-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_extension_get_context
        - sieve_ast_extension_set_context
        - sieve_ast_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-ihave-common.c:21,4'
          Dst:             sieve_ast_extension_get_context
        - Src:             'ext-ihave-common.c:27,9'
          Dst:             sieve_ast_pool
        - Src:             'ext-ihave-common.c:28,9'
          Dst:             malloc_multiply_check
        - Src:             'ext-ihave-common.c:28,9'
          Dst:             p_malloc
        - Src:             'ext-ihave-common.c:29,2'
          Dst:             array_create_i
        - Src:             'ext-ihave-common.c:31,2'
          Dst:             sieve_ast_extension_set_context
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - 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_contains_nul
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-addheader.c:97,6'
          Dst:             str_data
        - Src:             'cmd-addheader.c:98,13'
          Dst:             str_len
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmd_addheader_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          186
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - _str_contains_nul
        - edit_mail_header_add
        - ext_editheader_header_allow_add
        - ext_editheader_header_too_large
        - rfc2822_header_field_name_sanitize
        - rfc2822_header_field_name_verify
        - sieve_message_edit
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_error
        - sieve_runtime_warning
        - str_c
        - str_len
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-addheader.c:284,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-addheader.c:278,9'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-addheader.c:289,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-addheader.c:297,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-addheader.c:300,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-addheader.c:308,40'
          Dst:             str_c
        - Src:             'cmd-addheader.c:309,12'
          Dst:             str_len
        - Src:             'cmd-addheader.c:308,7'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'cmd-addheader.c:310,3'
          Dst:             str_c
        - Src:             'cmd-addheader.c:310,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:310,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-addheader.c:317,49'
          Dst:             str_c
        - Src:             'cmd-addheader.c:317,7'
          Dst:             ext_editheader_header_allow_add
        - Src:             'cmd-addheader.c:318,3'
          Dst:             str_c
        - Src:             'cmd-addheader.c:318,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:318,3'
          Dst:             sieve_runtime_warning
        - Src:             'cmd-addheader.c:326,6'
          Dst:             _str_contains_nul
        - Src:             'cmd-addheader.c:327,3'
          Dst:             str_c
        - Src:             'cmd-addheader.c:327,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:327,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-addheader.c:334,48'
          Dst:             str_len
        - Src:             'cmd-addheader.c:334,6'
          Dst:             ext_editheader_header_too_large
        - Src:             'cmd-addheader.c:335,3'
          Dst:             str_c
        - Src:             'cmd-addheader.c:335,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:335,3'
          Dst:             str_len
        - Src:             'cmd-addheader.c:335,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-addheader.c:348,16'
          Dst:             str_c
        - Src:             'cmd-addheader.c:348,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:349,16'
          Dst:             str_c
        - Src:             'cmd-addheader.c:349,3'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:346,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-addheader.c:351,11'
          Dst:             sieve_message_edit
        - Src:             'cmd-addheader.c:353,46'
          Dst:             str_c
        - Src:             'cmd-addheader.c:353,11'
          Dst:             rfc2822_header_field_name_sanitize
        - Src:             'cmd-addheader.c:354,3'
          Dst:             str_c
        - Src:             'cmd-addheader.c:352,2'
          Dst:             edit_mail_header_add
    - functionName:    cmd_addheader_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-addheader.c:229,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-addheader.c:230,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-addheader.c:237,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-addheader.c:244,4'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-addheader.c:249,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-addheader.c:250,3'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_addheader_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-addheader.c:212,8'
          Dst:             sieve_operation_emit
        - Src:             'cmd-addheader.c:216,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_addheader_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          251
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - _str_contains_nul
        - ext_editheader_header_allow_add
        - ext_editheader_header_too_large
        - rfc2822_header_field_body_verify
        - rfc2822_header_field_name_verify
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - sieve_validator_warning
        - str_c
        - str_len
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-addheader.c:119,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-addheader.c:122,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-addheader.c:128,41'
          Dst:             str_c
        - Src:             'cmd-addheader.c:129,13'
          Dst:             str_len
        - Src:             'cmd-addheader.c:128,8'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'cmd-addheader.c:130,4'
          Dst:             str_c
        - Src:             'cmd-addheader.c:130,4'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:130,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-addheader.c:137,50'
          Dst:             str_c
        - Src:             'cmd-addheader.c:137,8'
          Dst:             ext_editheader_header_allow_add
        - Src:             'cmd-addheader.c:138,4'
          Dst:             str_c
        - Src:             'cmd-addheader.c:138,4'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:138,4'
          Dst:             sieve_validator_warning
        - Src:             'cmd-addheader.c:150,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-addheader.c:153,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-addheader.c:159,7'
          Dst:             _str_contains_nul
        - Src:             'cmd-addheader.c:160,4'
          Dst:             str_c
        - Src:             'cmd-addheader.c:160,4'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:160,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-addheader.c:168,41'
          Dst:             str_c
        - Src:             'cmd-addheader.c:169,13'
          Dst:             str_len
        - Src:             'cmd-addheader.c:168,8'
          Dst:             rfc2822_header_field_body_verify
        - Src:             'cmd-addheader.c:170,4'
          Dst:             str_c
        - Src:             'cmd-addheader.c:170,4'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:170,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-addheader.c:178,14'
          Dst:             str_len
        - Src:             'cmd-addheader.c:177,7'
          Dst:             ext_editheader_header_too_large
        - Src:             'cmd-addheader.c:179,4'
          Dst:             str_c
        - Src:             'cmd-addheader.c:179,4'
          Dst:             str_sanitize
        - Src:             'cmd-addheader.c:179,4'
          Dst:             str_len
        - Src:             'cmd-addheader.c:179,4'
          Dst:             sieve_validator_error
    - functionName:    cmd_addheader_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-addheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-addheader.c:199,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - 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:    cmd_deleteheader_validate_last_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cmd_deleteheader_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:210,13'
          Dst:             cmd_deleteheader_get_context
    - functionName:    cmd_deleteheader_get_context
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:155,13'
          Dst:             sieve_ast_pool
        - Src:             'cmd-deleteheader.c:155,13'
          Dst:             malloc_multiply_check
        - Src:             'cmd-deleteheader.c:155,13'
          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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_deleteheader_validate_index_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          106
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - cmd_deleteheader_get_context
        - sieve_ast_arguments_detach
        - sieve_command_type_name
        - sieve_validate_tag_parameter
        - sieve_validator_warning
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:172,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-deleteheader.c:177,7'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-deleteheader.c:183,3'
          Dst:             sieve_command_type_name
        - Src:             'cmd-deleteheader.c:183,3'
          Dst:             sieve_validator_warning
        - Src:             'cmd-deleteheader.c:194,13'
          Dst:             cmd_deleteheader_get_context
    - functionName:    cmd_deleteheader_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          457
      EdgeCount:       102
      CyclomaticComplexity: 27
      functionsReached:
        - edit_mail_header_delete
        - edit_mail_headers_iterate_deinit
        - edit_mail_headers_iterate_get
        - edit_mail_headers_iterate_init
        - edit_mail_headers_iterate_next
        - edit_mail_headers_iterate_remove
        - ext_editheader_header_allow_delete
        - rfc2822_header_field_name_verify
        - sieve_match_begin
        - sieve_match_end
        - sieve_match_opr_optional_read
        - sieve_match_value
        - sieve_message_edit
        - sieve_opr_number_read
        - sieve_opr_string_read
        - sieve_opr_stringlist_read_ex
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_runtime_warning
        - str_c
        - str_len
        - str_sanitize
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-deleteheader.c:407,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-deleteheader.c:400,9'
          Dst:             sieve_match_opr_optional_read
        - Src:             'cmd-deleteheader.c:409,10'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-deleteheader.c:414,5'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-deleteheader.c:423,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-deleteheader.c:430,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-deleteheader.c:435,8'
          Dst:             sieve_opr_stringlist_read_ex
        - Src:             'cmd-deleteheader.c:444,40'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:445,12'
          Dst:             str_len
        - Src:             'cmd-deleteheader.c:444,7'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'cmd-deleteheader.c:446,3'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:446,3'
          Dst:             str_sanitize
        - Src:             'cmd-deleteheader.c:446,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-deleteheader.c:453,52'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:453,7'
          Dst:             ext_editheader_header_allow_delete
        - Src:             'cmd-deleteheader.c:454,3'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:454,3'
          Dst:             str_sanitize
        - Src:             'cmd-deleteheader.c:454,3'
          Dst:             sieve_runtime_warning
        - Src:             'cmd-deleteheader.c:466,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:469,11'
          Dst:             sieve_message_edit
        - Src:             'cmd-deleteheader.c:471,10'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-deleteheader.c:480,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-deleteheader.c:485,6'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:482,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:492,6'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:489,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:497,48'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:497,9'
          Dst:             edit_mail_headers_iterate_init
        - Src:             'cmd-deleteheader.c:504,11'
          Dst:             sieve_match_begin
        - Src:             'cmd-deleteheader.c:516,6'
          Dst:             edit_mail_headers_iterate_get
        - Src:             'cmd-deleteheader.c:518,20'
          Dst:             strlen
        - Src:             'cmd-deleteheader.c:517,14'
          Dst:             sieve_match_value
        - Src:             'cmd-deleteheader.c:525,7'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:530,12'
          Dst:             edit_mail_headers_iterate_remove
        - Src:             'cmd-deleteheader.c:536,10'
          Dst:             edit_mail_headers_iterate_next
        - Src:             'cmd-deleteheader.c:541,11'
          Dst:             sieve_match_end
        - Src:             'cmd-deleteheader.c:543,4'
          Dst:             edit_mail_headers_iterate_deinit
        - Src:             'cmd-deleteheader.c:550,10'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:549,4'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:552,4'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:552,4'
          Dst:             sieve_runtime_warning
        - Src:             'cmd-deleteheader.c:564,4'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-deleteheader.c:569,6'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:566,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:575,6'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:573,5'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-deleteheader.c:580,41'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:580,9'
          Dst:             edit_mail_header_delete
        - Src:             'cmd-deleteheader.c:582,4'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:582,4'
          Dst:             sieve_runtime_warning
        - Src:             'cmd-deleteheader.c:591,10'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:588,4'
          Dst:             sieve_runtime_trace
    - functionName:    cmd_deleteheader_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_match_opr_optional_dump
        - sieve_opr_number_dump
        - sieve_opr_string_dump
        - sieve_opr_stringlist_dump_ex
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-deleteheader.c:351,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-deleteheader.c:338,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-deleteheader.c:339,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-deleteheader.c:345,9'
          Dst:             sieve_match_opr_optional_dump
        - Src:             'cmd-deleteheader.c:353,9'
          Dst:             sieve_opr_number_dump
        - Src:             'cmd-deleteheader.c:357,4'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-deleteheader.c:364,7'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-deleteheader.c:367,9'
          Dst:             sieve_opr_stringlist_dump_ex
    - functionName:    cmd_deleteheader_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
        - sieve_opr_omitted_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:315,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-deleteheader.c:318,7'
          Dst:             sieve_generate_arguments
        - Src:             'cmd-deleteheader.c:323,3'
          Dst:             sieve_opr_omitted_emit
    - functionName:    cmd_deleteheader_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          259
      EdgeCount:       59
      CyclomaticComplexity: 18
      functionsReached:
        - ext_editheader_header_allow_delete
        - rfc2822_header_field_name_verify
        - sieve_command_type_name
        - sieve_match_type_arguments_remove
        - sieve_match_type_validate
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - sieve_validator_warning
        - str_c
        - str_len
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:237,3'
          Dst:             sieve_command_type_name
        - Src:             'cmd-deleteheader.c:237,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-deleteheader.c:249,3'
          Dst:             sieve_command_type_name
        - Src:             'cmd-deleteheader.c:249,3'
          Dst:             sieve_validator_error
        - Src:             'cmd-deleteheader.c:258,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-deleteheader.c:261,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-deleteheader.c:267,41'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:268,13'
          Dst:             str_len
        - Src:             'cmd-deleteheader.c:267,8'
          Dst:             rfc2822_header_field_name_verify
        - Src:             'cmd-deleteheader.c:269,4'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:269,4'
          Dst:             str_sanitize
        - Src:             'cmd-deleteheader.c:269,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-deleteheader.c:277,14'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:276,8'
          Dst:             ext_editheader_header_allow_delete
        - Src:             'cmd-deleteheader.c:278,4'
          Dst:             str_c
        - Src:             'cmd-deleteheader.c:278,4'
          Dst:             str_sanitize
        - Src:             'cmd-deleteheader.c:278,4'
          Dst:             sieve_validator_warning
        - Src:             'cmd-deleteheader.c:292,3'
          Dst:             sieve_match_type_arguments_remove
        - Src:             'cmd-deleteheader.c:296,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-deleteheader.c:299,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-deleteheader.c:303,9'
          Dst:             sieve_match_type_validate
    - functionName:    cmd_deleteheader_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/cmd-deleteheader.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_comparators_link_tag
        - sieve_match_types_link_tags
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-deleteheader.c:120,2'
          Dst:             sieve_comparators_link_tag
        - Src:             'cmd-deleteheader.c:122,2'
          Dst:             sieve_match_types_link_tags
        - Src:             'cmd-deleteheader.c:125,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-deleteheader.c:127,2'
          Dst:             sieve_validator_register_tag
    - 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:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    ext_editheader_header_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          126
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - e_error
        - ext_editheader_header_find
        - i_panic
        - p_strdup
        - pool_unref
        - settings_get_filter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:63,6'
          Dst:             settings_get_filter
        - Src:             'ext-editheader-common.c:66,3'
          Dst:             e_error
        - Src:             'ext-editheader-common.c:70,2'
          Dst:             ext_editheader_header_find
        - Src:             'ext-editheader-common.c:70,2'
          Dst:             i_panic
        - Src:             'ext-editheader-common.c:72,11'
          Dst:             array_append_space_i
        - Src:             'ext-editheader-common.c:73,17'
          Dst:             p_strdup
        - Src:             'ext-editheader-common.c:77,2'
          Dst:             pool_unref
    - functionName:    ext_editheader_header_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:48,7'
          Dst:             strcasecmp
    - 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:    5
      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:             'dovecot/src/lib/lib.h:75,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:    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:    ext_editheader_header_too_large
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_editheader_header_allow_delete
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ext_editheader_header_find
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:165,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:166,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:168,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:170,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:173,11'
          Dst:             ext_editheader_header_find
    - functionName:    ext_editheader_header_allow_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ext_editheader_header_find
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:147,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:149,6'
          Dst:             strcasecmp
        - Src:             'ext-editheader-common.c:152,11'
          Dst:             ext_editheader_header_find
    - functionName:    ext_editheader_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:133,2'
          Dst:             pool_unref
        - Src:             'ext-editheader-common.c:134,2'
          Dst:             pool_unref
    - functionName:    ext_editheader_config_headers
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - ext_editheader_header_add
        - i_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:87,7'
          Dst:             array_is_created_i
        - Src:             'ext-editheader-common.c:90,2'
          Dst:             i_memcpy
        - Src:             'ext-editheader-common.c:91,7'
          Dst:             ext_editheader_header_add
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_editheader_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/editheader/ext-editheader-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          102
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - e_error
        - ext_editheader_config_headers
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_unref
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-editheader-common.c:105,6'
          Dst:             settings_get
        - Src:             'ext-editheader-common.c:107,3'
          Dst:             e_error
        - Src:             'ext-editheader-common.c:111,9'
          Dst:             pool_alloconly_create
        - Src:             'ext-editheader-common.c:112,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-editheader-common.c:112,11'
          Dst:             p_malloc
        - Src:             'ext-editheader-common.c:115,2'
          Dst:             array_create_i
        - Src:             'ext-editheader-common.c:117,6'
          Dst:             ext_editheader_config_headers
        - Src:             'ext-editheader-common.c:118,3'
          Dst:             pool_unref
        - Src:             'ext-editheader-common.c:119,3'
          Dst:             pool_unref
    - 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:    sieve_action_duplicate_mark
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/./../../sieve-actions.h'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_execute_duplicate_mark
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-actions.h:291,9'
          Dst:             sieve_execute_duplicate_mark
    - functionName:    act_duplicate_mark_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sieve_action_duplicate_mark
        - sieve_execution_exitcode_to_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:110,3'
          Dst:             event_want_level
        - Src:             'ext-duplicate-common.c:110,3'
          Dst:             sieve_execution_exitcode_to_str
        - Src:             'ext-duplicate-common.c:110,3'
          Dst:             e_debug
        - Src:             'ext-duplicate-common.c:110,3'
          Dst:             event_send_abort
        - Src:             'ext-duplicate-common.c:115,2'
          Dst:             event_want_level
        - Src:             'ext-duplicate-common.c:115,2'
          Dst:             e_debug
        - Src:             'ext-duplicate-common.c:115,2'
          Dst:             event_send_abort
        - Src:             'ext-duplicate-common.c:121,2'
          Dst:             sieve_action_duplicate_mark
    - functionName:    act_duplicate_mark_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_result_action_printf
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:95,10'
          Dst:             str_sanitize
        - Src:             'ext-duplicate-common.c:93,3'
          Dst:             sieve_result_action_printf
        - Src:             'ext-duplicate-common.c:97,3'
          Dst:             sieve_result_action_printf
    - 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:    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:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/malloc-overflow.h:18,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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/lib.h:75,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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_duplicate_hash
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - md5_final
        - md5_init
        - md5_update
        - str_c
        - str_len
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:151,2'
          Dst:             md5_init
        - Src:             'ext-duplicate-common.c:152,26'
          Dst:             strlen
        - Src:             'ext-duplicate-common.c:152,2'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:154,3'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:156,3'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:158,3'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:159,23'
          Dst:             str_c
        - Src:             'ext-duplicate-common.c:159,38'
          Dst:             str_len
        - Src:             'ext-duplicate-common.c:159,3'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:161,3'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:163,2'
          Dst:             md5_update
        - Src:             'ext-duplicate-common.c:164,2'
          Dst:             md5_final
    - functionName:    ext_duplicate_check
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          506
      EdgeCount:       91
      CyclomaticComplexity: 25
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - ext_duplicate_hash
        - i_memcpy
        - malloc_multiply_check
        - memcmp
        - null_strcmp
        - p_malloc
        - p_strdup
        - sieve_execute_duplicate_check
        - sieve_execute_duplicate_check_available
        - sieve_message_context_extension_get
        - sieve_message_context_extension_set
        - sieve_message_context_pool
        - sieve_result_add_action
        - sieve_result_pool
        - sieve_runtime_critical
        - sieve_runtime_warning
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:184,7'
          Dst:             sieve_execute_duplicate_check_available
        - Src:             'ext-duplicate-common.c:185,3'
          Dst:             sieve_runtime_warning
        - Src:             'ext-duplicate-common.c:195,2'
          Dst:             ext_duplicate_hash
        - Src:             'ext-duplicate-common.c:198,9'
          Dst:             sieve_message_context_extension_get
        - Src:             'ext-duplicate-common.c:202,14'
          Dst:             sieve_message_context_pool
        - Src:             'ext-duplicate-common.c:203,10'
          Dst:             malloc_multiply_check
        - Src:             'ext-duplicate-common.c:203,10'
          Dst:             p_malloc
        - Src:             'ext-duplicate-common.c:204,3'
          Dst:             sieve_message_context_extension_set
        - Src:             'ext-duplicate-common.c:206,13'
          Dst:             array_is_created_i
        - Src:             'ext-duplicate-common.c:209,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-duplicate-common.c:210,8'
          Dst:             memcmp
        - Src:             'ext-duplicate-common.c:220,30'
          Dst:             str_c
        - Src:             'ext-duplicate-common.c:221,8'
          Dst:             null_strcmp
        - Src:             'ext-duplicate-common.c:229,16'
          Dst:             sieve_result_pool
        - Src:             'ext-duplicate-common.c:230,8'
          Dst:             malloc_multiply_check
        - Src:             'ext-duplicate-common.c:230,8'
          Dst:             p_malloc
        - Src:             'ext-duplicate-common.c:232,39'
          Dst:             str_c
        - Src:             'ext-duplicate-common.c:232,17'
          Dst:             p_strdup
        - Src:             'ext-duplicate-common.c:234,2'
          Dst:             i_memcpy
        - Src:             'ext-duplicate-common.c:238,8'
          Dst:             sieve_execute_duplicate_check
        - Src:             'ext-duplicate-common.c:244,3'
          Dst:             ext_duplicate_hash
        - Src:             'ext-duplicate-common.c:246,9'
          Dst:             sieve_execute_duplicate_check
        - Src:             'ext-duplicate-common.c:251,3'
          Dst:             sieve_runtime_critical
        - Src:             'ext-duplicate-common.c:264,7'
          Dst:             sieve_result_add_action
        - Src:             'ext-duplicate-common.c:272,14'
          Dst:             sieve_message_context_pool
        - Src:             'ext-duplicate-common.c:274,8'
          Dst:             array_is_created_i
        - Src:             'ext-duplicate-common.c:275,4'
          Dst:             array_create_i
        - Src:             'ext-duplicate-common.c:276,17'
          Dst:             array_append_space_i
        - Src:             'ext-duplicate-common.c:277,3'
          Dst:             i_memcpy
        - Src:             'ext-duplicate-common.c:278,3'
          Dst:             array_create_i
        - Src:             'ext-duplicate-common.c:281,18'
          Dst:             array_append_space_i
        - Src:             'ext-duplicate-common.c:283,46'
          Dst:             str_c
        - Src:             'ext-duplicate-common.c:283,27'
          Dst:             p_strdup
    - 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:             'dovecot/src/lib/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:    1
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_duplicate_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:54,2'
          Dst:             pool_unref
        - Src:             'ext-duplicate-common.c:55,2'
          Dst:             p_free_internal
    - functionName:    ext_duplicate_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-duplicate-common.c:35,6'
          Dst:             settings_get
        - Src:             'ext-duplicate-common.c:37,3'
          Dst:             e_error
        - Src:             'ext-duplicate-common.c:41,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-duplicate-common.c:41,11'
          Dst:             p_malloc
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_break_validate_name_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:109,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-break.c:114,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_break_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_offset
        - sieve_interpreter_loop_break
        - sieve_interpreter_loop_get
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:254,7'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-break.c:256,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-break.c:266,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-break.c:267,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-break.c:269,9'
          Dst:             sieve_interpreter_loop_get
        - Src:             'cmd-break.c:272,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-break.c:276,2'
          Dst:             sieve_interpreter_loop_break
    - functionName:    cmd_break_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_offset
        - sieve_code_descend
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:227,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-break.c:228,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-break.c:230,8'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-break.c:233,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_break_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_binary_emit_offset
        - sieve_jumplist_add
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:207,2'
          Dst:             i_panic
        - Src:             'cmd-break.c:210,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-break.c:212,7'
          Dst:             sieve_binary_emit_offset
        - Src:             'cmd-break.c:211,2'
          Dst:             sieve_jumplist_add
    - functionName:    cmd_break_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          215
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - sieve_command_exit_block_unconditionally
        - sieve_validator_error
        - str_c
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:159,15'
          Dst:             str_c
        - Src:             'cmd-break.c:161,2'
          Dst:             i_panic
        - Src:             'cmd-break.c:169,9'
          Dst:             strcmp
        - Src:             'cmd-break.c:179,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-break.c:184,4'
          Dst:             sieve_validator_error
        - Src:             'cmd-break.c:192,2'
          Dst:             sieve_command_exit_block_unconditionally
    - functionName:    cmd_break_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:146,16'
          Dst:             sieve_ast_pool
        - Src:             'cmd-break.c:148,9'
          Dst:             malloc_multiply_check
        - Src:             'cmd-break.c:148,9'
          Dst:             p_malloc
    - functionName:    cmd_break_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-break.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-break.c:133,2'
          Dst:             sieve_validator_register_tag
    - functionName:    sieve_runtime_trace_here
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:159,3'
          Dst:             _sieve_runtime_trace_address
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      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:             'dovecot/src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - 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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_extracttext_validate_first_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-extracttext.c:110,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-extracttext.c:115,7'
          Dst:             sieve_validate_tag_parameter
    - functionName:    cmd_extracttext_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          270
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - ext_foreverypart_runtime_loop_get_current
        - i_panic
        - sieve_message_part_get_data
        - sieve_message_part_iter_current
        - sieve_opr_number_read
        - sieve_opr_optional_read
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - sieve_runtime_trace_here
        - sieve_variable_assign
        - sieve_variable_get_identifier
        - sieve_variable_get_varid
        - sieve_variable_operand_read
        - sieve_variables_modifiers_apply
        - sieve_variables_modifiers_code_read
        - str_append_data
        - str_c
        - t_str_new
        - t_str_new_const
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-extracttext.c:298,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-extracttext.c:292,9'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-extracttext.c:300,10'
          Dst:             sieve_opr_number_read
        - Src:             'cmd-extracttext.c:305,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-extracttext.c:315,8'
          Dst:             sieve_variable_operand_read
        - Src:             'cmd-extracttext.c:322,8'
          Dst:             sieve_variables_modifiers_code_read
        - Src:             'cmd-extracttext.c:331,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-extracttext.c:332,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-extracttext.c:334,12'
          Dst:             ext_foreverypart_runtime_loop_get_current
        - Src:             'cmd-extracttext.c:336,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-extracttext.c:341,10'
          Dst:             sieve_message_part_iter_current
        - Src:             'cmd-extracttext.c:342,2'
          Dst:             i_panic
        - Src:             'cmd-extracttext.c:345,2'
          Dst:             sieve_message_part_get_data
        - Src:             'cmd-extracttext.c:349,11'
          Dst:             t_str_new_const
        - Src:             'cmd-extracttext.c:351,11'
          Dst:             t_str_new
        - Src:             'cmd-extracttext.c:352,3'
          Dst:             str_append_data
        - Src:             'cmd-extracttext.c:356,8'
          Dst:             sieve_variables_modifiers_apply
        - Src:             'cmd-extracttext.c:362,2'
          Dst:             i_panic
        - Src:             'cmd-extracttext.c:363,7'
          Dst:             sieve_variable_assign
        - Src:             'cmd-extracttext.c:367,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-extracttext.c:370,9'
          Dst:             sieve_variable_get_identifier
        - Src:             'cmd-extracttext.c:372,12'
          Dst:             sieve_variable_get_varid
        - Src:             'cmd-extracttext.c:375,25'
          Dst:             str_c
        - Src:             'cmd-extracttext.c:374,3'
          Dst:             sieve_runtime_trace_here
    - functionName:    cmd_extracttext_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_number_dump
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
        - sieve_variables_modifiers_code_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-extracttext.c:243,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-extracttext.c:228,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-extracttext.c:229,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-extracttext.c:237,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-extracttext.c:245,11'
          Dst:             sieve_opr_number_dump
        - Src:             'cmd-extracttext.c:255,7'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-extracttext.c:258,9'
          Dst:             sieve_variables_modifiers_code_dump
    - functionName:    cmd_extracttext_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
        - sieve_variables_modifiers_generate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-extracttext.c:205,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-extracttext.c:208,7'
          Dst:             sieve_generate_arguments
        - Src:             'cmd-extracttext.c:212,7'
          Dst:             sieve_variables_modifiers_generate
    - functionName:    cmd_extracttext_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          178
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
        - sieve_validate_positional_argument
        - sieve_validator_error
        - sieve_variable_argument_activate
        - sieve_variables_modifiers_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-extracttext.c:153,16'
          Dst:             sieve_ast_pool
        - Src:             'cmd-extracttext.c:157,9'
          Dst:             malloc_multiply_check
        - Src:             'cmd-extracttext.c:157,9'
          Dst:             p_malloc
        - Src:             'cmd-extracttext.c:158,2'
          Dst:             array_create_i
        - Src:             'cmd-extracttext.c:162,7'
          Dst:             sieve_variables_modifiers_validate
        - Src:             'cmd-extracttext.c:166,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-extracttext.c:169,7'
          Dst:             sieve_variable_argument_activate
        - Src:             'cmd-extracttext.c:174,2'
          Dst:             i_panic
        - Src:             'cmd-extracttext.c:183,3'
          Dst:             sieve_validator_error
    - functionName:    cmd_extracttext_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-extracttext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
        - sieve_variables_modifiers_link_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-extracttext.c:134,2'
          Dst:             sieve_validator_register_tag
        - Src:             'cmd-extracttext.c:137,2'
          Dst:             sieve_variables_modifiers_link_tag
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmd_foreverypart_validate_name_tag
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_ast_arguments_detach
        - sieve_validate_tag_parameter
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:110,9'
          Dst:             sieve_ast_arguments_detach
        - Src:             'cmd-foreverypart.c:115,8'
          Dst:             sieve_validate_tag_parameter
        - Src:             'cmd-foreverypart.c:118,15'
          Dst:             str_c
        - Src:             'cmd-foreverypart.c:121,9'
          Dst:             sieve_ast_arguments_detach
    - functionName:    cmd_foreverypart_end_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          122
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - sieve_binary_read_offset
        - sieve_interpreter_loop_break
        - sieve_interpreter_loop_get
        - sieve_interpreter_loop_get_context
        - sieve_interpreter_loop_next
        - sieve_message_part_iter_next
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:338,8'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-foreverypart.c:340,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-foreverypart.c:350,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-foreverypart.c:352,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-foreverypart.c:354,9'
          Dst:             sieve_interpreter_loop_get
        - Src:             'cmd-foreverypart.c:357,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-foreverypart.c:362,3'
          Dst:             sieve_interpreter_loop_get_context
        - Src:             'cmd-foreverypart.c:363,2'
          Dst:             i_panic
        - Src:             'cmd-foreverypart.c:364,17'
          Dst:             sieve_message_part_iter_next
        - Src:             'cmd-foreverypart.c:366,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-foreverypart.c:368,10'
          Dst:             sieve_interpreter_loop_break
        - Src:             'cmd-foreverypart.c:371,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-foreverypart.c:373,9'
          Dst:             sieve_interpreter_loop_next
    - functionName:    cmd_foreverypart_end_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_offset
        - sieve_code_descend
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:251,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-foreverypart.c:252,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-foreverypart.c:254,8'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-foreverypart.c:257,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_foreverypart_begin_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          138
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ext_foreverypart_runtime_loop_get_current
        - malloc_multiply_check
        - p_malloc
        - sieve_binary_read_offset
        - sieve_interpreter_loop_break
        - sieve_interpreter_loop_get_pool
        - sieve_interpreter_loop_set_context
        - sieve_interpreter_loop_start
        - sieve_message_part_iter_children
        - sieve_message_part_iter_current
        - sieve_message_part_iter_init
        - sieve_runtime_trace
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:280,8'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-foreverypart.c:282,3'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-foreverypart.c:292,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-foreverypart.c:294,2'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-foreverypart.c:296,12'
          Dst:             ext_foreverypart_runtime_loop_get_current
        - Src:             'cmd-foreverypart.c:298,12'
          Dst:             sieve_interpreter_loop_start
        - Src:             'cmd-foreverypart.c:302,9'
          Dst:             sieve_interpreter_loop_get_pool
        - Src:             'cmd-foreverypart.c:303,11'
          Dst:             malloc_multiply_check
        - Src:             'cmd-foreverypart.c:303,11'
          Dst:             p_malloc
        - Src:             'cmd-foreverypart.c:306,13'
          Dst:             sieve_message_part_iter_init
        - Src:             'cmd-foreverypart.c:310,3'
          Dst:             sieve_message_part_iter_children
        - Src:             'cmd-foreverypart.c:313,17'
          Dst:             sieve_message_part_iter_current
        - Src:             'cmd-foreverypart.c:315,3'
          Dst:             sieve_interpreter_loop_set_context
        - Src:             'cmd-foreverypart.c:318,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-foreverypart.c:320,3'
          Dst:             sieve_interpreter_loop_break
    - functionName:    cmd_foreverypart_begin_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_read_offset
        - sieve_code_descend
        - sieve_code_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:234,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-foreverypart.c:235,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-foreverypart.c:237,9'
          Dst:             sieve_binary_read_offset
        - Src:             'cmd-foreverypart.c:240,2'
          Dst:             sieve_code_dumpf
    - functionName:    cmd_foreverypart_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          115
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_ast_pool
        - sieve_binary_block_get_size
        - sieve_binary_emit_offset
        - sieve_generate_block
        - sieve_jumplist_add
        - sieve_jumplist_create
        - sieve_jumplist_resolve
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:196,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-foreverypart.c:201,4'
          Dst:             sieve_ast_pool
        - Src:             'cmd-foreverypart.c:200,21'
          Dst:             sieve_jumplist_create
        - Src:             'cmd-foreverypart.c:203,3'
          Dst:             sieve_binary_emit_offset
        - Src:             'cmd-foreverypart.c:202,2'
          Dst:             sieve_jumplist_add
        - Src:             'cmd-foreverypart.c:204,16'
          Dst:             sieve_binary_block_get_size
        - Src:             'cmd-foreverypart.c:207,8'
          Dst:             sieve_generate_block
        - Src:             'cmd-foreverypart.c:211,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-foreverypart.c:213,14'
          Dst:             sieve_binary_block_get_size
        - Src:             'cmd-foreverypart.c:214,2'
          Dst:             i_panic
        - Src:             'cmd-foreverypart.c:215,8'
          Dst:             sieve_binary_emit_offset
        - Src:             'cmd-foreverypart.c:219,2'
          Dst:             sieve_jumplist_resolve
    - functionName:    cmd_foreverypart_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - sieve_validator_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:161,2'
          Dst:             i_panic
        - Src:             'cmd-foreverypart.c:174,3'
          Dst:             sieve_validator_error
    - functionName:    cmd_foreverypart_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:133,2'
          Dst:             sieve_validator_register_tag
    - functionName:    cmd_foreverypart_pre_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/cmd-foreverypart.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - sieve_ast_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-foreverypart.c:146,16'
          Dst:             sieve_ast_pool
        - Src:             'cmd-foreverypart.c:148,9'
          Dst:             malloc_multiply_check
        - Src:             'cmd-foreverypart.c:148,9'
          Dst:             p_malloc
    - functionName:    ext_foreverypart_runtime_loop_get_current
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/mime/ext-mime-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sieve_interpreter_loop_get_context
        - sieve_interpreter_loop_get_global
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-mime-common.c:14,9'
          Dst:             sieve_interpreter_loop_get_global
        - Src:             'ext-mime-common.c:20,4'
          Dst:             sieve_interpreter_loop_get_context
        - Src:             'ext-mime-common.c:21,3'
          Dst:             i_panic
    - functionName:    ext_special_use_flag_valid
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/special-use/ext-special-use-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          147
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    4
      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:             'dovecot/src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             'dovecot/src/lib/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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:             'dovecot/src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    ext_extlists_list_cache_cmp
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:243,9'
          Dst:             strcmp
    - functionName:    ext_extlists_list_cache_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_create_i
        - array_insert_i
        - ext_extlists_list_cache_cmp
        - i_panic
        - p_strdup
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:255,22'
          Dst:             pool_alloconly_create
        - Src:             'ext-extlists-common.c:257,3'
          Dst:             array_create_i
        - Src:             'ext-extlists-common.c:264,10'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'ext-extlists-common.c:264,10'
          Dst:             ext_extlists_list_cache_cmp
        - Src:             'ext-extlists-common.c:267,2'
          Dst:             i_panic
        - Src:             'ext-extlists-common.c:269,16'
          Dst:             p_strdup
        - Src:             'ext-extlists-common.c:270,2'
          Dst:             array_insert_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:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/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:    ext_extlists_list_cache_lookup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_idx_i
        - ext_extlists_list_cache_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:288,7'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'ext-extlists-common.c:288,7'
          Dst:             ext_extlists_list_cache_cmp
        - Src:             'ext-extlists-common.c:294,16'
          Dst:             array_idx_i
    - functionName:    _dict_lookup_callback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          236
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - _dict_lookup_continue
        - ext_extlists_list_cache_add
        - i_panic
        - io_loop_stop
        - p_free_internal
        - sieve_runtime_critical
        - sieve_runtime_trace
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:466,2'
          Dst:             i_panic
        - Src:             'ext-extlists-common.c:473,3'
          Dst:             str_sanitize
        - Src:             'ext-extlists-common.c:473,3'
          Dst:             sieve_runtime_critical
        - Src:             'ext-extlists-common.c:480,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:486,3'
          Dst:             io_loop_stop
        - Src:             'ext-extlists-common.c:491,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:495,3'
          Dst:             ext_extlists_list_cache_add
        - Src:             'ext-extlists-common.c:499,3'
          Dst:             io_loop_stop
        - Src:             'ext-extlists-common.c:503,2'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:506,2'
          Dst:             ext_extlists_list_cache_add
        - Src:             'ext-extlists-common.c:510,4'
          Dst:             p_free_internal
        - Src:             'ext-extlists-common.c:512,3'
          Dst:             _dict_lookup_continue
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/./../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - 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:    _dict_lookup_continue
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          195
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - _dict_lookup_next_value
        - io_loop_stop
        - mail_user_get_dict_op_settings
        - sieve_runtime_trace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:640,39'
          Dst:             mail_user_get_dict_op_settings
        - Src:             'ext-extlists-common.c:649,10'
          Dst:             _dict_lookup_next_value
        - Src:             'ext-extlists-common.c:657,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:660,3'
          Dst:             io_loop_stop
    - functionName:    _dict_lookup_next_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          369
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - _dict_lookup_callback
        - _dict_lookup_continue
        - array_count_i
        - array_idx_get_space_i
        - dict_escape_string
        - dict_lookup_async
        - ext_extlists_list_cache_lookup
        - i_strdup
        - io_loop_stop
        - p_free_internal
        - sieve_runtime_trace
        - sieve_stringlist_next_item
        - str_c
        - str_len
        - str_sanitize
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:524,10'
          Dst:             array_idx_get_space_i
        - Src:             'ext-extlists-common.c:530,8'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-extlists-common.c:540,26'
          Dst:             str_c
        - Src:             'ext-extlists-common.c:540,17'
          Dst:             i_strdup
        - Src:             'ext-extlists-common.c:544,8'
          Dst:             str_sanitize
        - Src:             'ext-extlists-common.c:542,2'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:549,24'
          Dst:             str_c
        - Src:             'ext-extlists-common.c:549,5'
          Dst:             dict_escape_string
        - Src:             'ext-extlists-common.c:548,14'
          Dst:             t_strconcat
        - Src:             'ext-extlists-common.c:552,29'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:559,8'
          Dst:             array_idx_get_space_i
        - Src:             'ext-extlists-common.c:574,4'
          Dst:             _dict_lookup_callback
        - Src:             'ext-extlists-common.c:577,7'
          Dst:             str_len
        - Src:             'ext-extlists-common.c:584,5'
          Dst:             str_len
        - Src:             'ext-extlists-common.c:578,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:591,7'
          Dst:             ext_extlists_list_cache_lookup
        - Src:             'ext-extlists-common.c:593,4'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:603,5'
          Dst:             io_loop_stop
        - Src:             'ext-extlists-common.c:612,3'
          Dst:             dict_lookup_async
        - Src:             'ext-extlists-common.c:612,3'
          Dst:             _dict_lookup_callback
        - Src:             'ext-extlists-common.c:620,4'
          Dst:             p_free_internal
        - Src:             'ext-extlists-common.c:622,3'
          Dst:             _dict_lookup_continue
    - functionName:    sieve_stringlist_next_item
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/./../../sieve-stringlist.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    7
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_extlists_list_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_init_auto
        - event_add_str
        - event_create
        - event_unref
        - settings_event_add_list_filter_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:229,24'
          Dst:             event_create
        - Src:             'ext-extlists-common.c:230,2'
          Dst:             event_add_str
        - Src:             'ext-extlists-common.c:231,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'ext-extlists-common.c:233,8'
          Dst:             dict_init_auto
        - Src:             'ext-extlists-common.c:234,2'
          Dst:             event_unref
    - functionName:    _dict_lookup_list_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          193
      EdgeCount:       32
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_space_i
        - dict_switch_ioloop
        - ext_extlists_list_find
        - ext_extlists_list_init
        - sieve_runtime_critical
        - sieve_runtime_debug
        - sieve_runtime_error
        - sieve_runtime_warning
        - str_c
        - str_len
        - str_sanitize_utf8
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:393,20'
          Dst:             str_c
        - Src:             'ext-extlists-common.c:399,6'
          Dst:             strlen
        - Src:             'ext-extlists-common.c:399,21'
          Dst:             str_len
        - Src:             'ext-extlists-common.c:404,3'
          Dst:             sieve_runtime_error
        - Src:             'ext-extlists-common.c:409,8'
          Dst:             ext_extlists_list_find
        - Src:             'ext-extlists-common.c:415,3'
          Dst:             str_sanitize_utf8
        - Src:             'ext-extlists-common.c:415,3'
          Dst:             sieve_runtime_warning
        - Src:             'ext-extlists-common.c:426,3'
          Dst:             str_sanitize_utf8
        - Src:             'ext-extlists-common.c:426,3'
          Dst:             sieve_runtime_warning
        - Src:             'ext-extlists-common.c:433,8'
          Dst:             ext_extlists_list_init
        - Src:             'ext-extlists-common.c:435,3'
          Dst:             sieve_runtime_critical
        - Src:             'ext-extlists-common.c:442,3'
          Dst:             str_sanitize_utf8
        - Src:             'ext-extlists-common.c:442,3'
          Dst:             sieve_runtime_debug
        - Src:             'ext-extlists-common.c:449,10'
          Dst:             array_append_space_i
        - Src:             'ext-extlists-common.c:453,3'
          Dst:             dict_switch_ioloop
    - functionName:    ext_extlists_list_find
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_get_modifiable_data
        - ext_extlists_name_normalize
        - strcasecmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:57,8'
          Dst:             ext_extlists_name_normalize
        - Src:             'ext-extlists-common.c:63,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:64,7'
          Dst:             strcasecmp
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - 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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:             'dovecot/src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    ext_extlists_list_add
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - e_error
        - ext_extlists_list_find
        - i_panic
        - settings_get_filter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:83,8'
          Dst:             ext_extlists_list_find
        - Src:             'ext-extlists-common.c:84,2'
          Dst:             i_panic
        - Src:             'ext-extlists-common.c:86,3'
          Dst:             e_error
        - Src:             'ext-extlists-common.c:92,6'
          Dst:             settings_get_filter
        - Src:             'ext-extlists-common.c:95,3'
          Dst:             e_error
        - Src:             'ext-extlists-common.c:99,9'
          Dst:             array_append_space_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/lib.h:75,2'
          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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_extlists_do_lookup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          266
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - _dict_lookup_continue
        - _dict_lookup_list_init
        - array_count_i
        - array_create_i
        - buffer_get_modifiable_data
        - dict_wait
        - io_loop_run
        - p_free_internal
        - sieve_runtime_trace
        - sieve_stringlist_next_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:672,16'
          Dst:             sieve_stringlist_next_item
        - Src:             'ext-extlists-common.c:673,9'
          Dst:             _dict_lookup_list_init
        - Src:             'ext-extlists-common.c:684,6'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:685,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:691,29'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:695,2'
          Dst:             array_create_i
        - Src:             'ext-extlists-common.c:696,2'
          Dst:             array_create_i
        - Src:             'ext-extlists-common.c:699,2'
          Dst:             _dict_lookup_continue
        - Src:             'ext-extlists-common.c:701,3'
          Dst:             io_loop_run
        - Src:             'ext-extlists-common.c:706,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:708,4'
          Dst:             dict_wait
        - Src:             'ext-extlists-common.c:710,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:712,4'
          Dst:             p_free_internal
    - functionName:    ext_extlists_lookup
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          215
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_create_i
        - buffer_get_modifiable_data
        - dict_switch_ioloop
        - ext_extlists_do_lookup
        - i_panic
        - io_loop_create
        - io_loop_destroy
        - io_loop_set_current
        - p_free_internal
        - pool_alloconly_create
        - pool_unref
        - sieve_runtime_trace
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:729,24'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:730,3'
          Dst:             sieve_runtime_trace
        - Src:             'ext-extlists-common.c:736,15'
          Dst:             pool_alloconly_create
        - Src:             'ext-extlists-common.c:741,2'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:741,2'
          Dst:             array_create_i
        - Src:             'ext-extlists-common.c:747,2'
          Dst:             i_panic
        - Src:             'ext-extlists-common.c:748,17'
          Dst:             io_loop_create
        - Src:             'ext-extlists-common.c:750,2'
          Dst:             ext_extlists_do_lookup
        - Src:             'ext-extlists-common.c:752,2'
          Dst:             io_loop_set_current
        - Src:             'ext-extlists-common.c:753,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:755,4'
          Dst:             dict_switch_ioloop
        - Src:             'ext-extlists-common.c:757,2'
          Dst:             io_loop_set_current
        - Src:             'ext-extlists-common.c:758,2'
          Dst:             io_loop_destroy
        - Src:             'ext-extlists-common.c:761,14'
          Dst:             t_strdup
        - Src:             'ext-extlists-common.c:762,2'
          Dst:             p_free_internal
        - Src:             'ext-extlists-common.c:764,2'
          Dst:             pool_unref
    - functionName:    ext_extlists_runtime_ext_list_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_extlists_list_find
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:317,26'
          Dst:             str_c
        - Src:             'ext-extlists-common.c:320,9'
          Dst:             ext_extlists_list_find
    - functionName:    ext_extlists_get_lists_string
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - buffer_get_modifiable_data
        - str_append
        - str_append_c
        - str_c
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:206,24'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:210,21'
          Dst:             t_str_new
        - Src:             'ext-extlists-common.c:212,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:213,7'
          Dst:             str_len
        - Src:             'ext-extlists-common.c:214,4'
          Dst:             str_append_c
        - Src:             'ext-extlists-common.c:215,3'
          Dst:             str_append
        - Src:             'ext-extlists-common.c:217,9'
          Dst:             str_c
    - functionName:    ext_extlists_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ext_extlists_context_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:198,2'
          Dst:             ext_extlists_context_free
    - functionName:    ext_extlists_context_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          120
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_free_i
        - buffer_get_modifiable_data
        - dict_deinit
        - p_free_internal
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:152,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ext-extlists-common.c:153,3'
          Dst:             dict_deinit
        - Src:             'ext-extlists-common.c:154,3'
          Dst:             pool_unref
        - Src:             'ext-extlists-common.c:155,3'
          Dst:             pool_unref
        - Src:             'ext-extlists-common.c:158,2'
          Dst:             pool_unref
        - Src:             'ext-extlists-common.c:159,2'
          Dst:             array_free_i
        - Src:             'ext-extlists-common.c:160,2'
          Dst:             p_free_internal
    - functionName:    ext_extlists_list_add_default
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - ext_extlists_list_find
        - i_panic
        - pool_alloconly_create
        - settings_defaults_dup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:111,8'
          Dst:             ext_extlists_list_find
        - Src:             'ext-extlists-common.c:112,2'
          Dst:             i_panic
        - Src:             'ext-extlists-common.c:119,9'
          Dst:             pool_alloconly_create
        - Src:             'ext-extlists-common.c:120,8'
          Dst:             settings_defaults_dup
        - Src:             'ext-extlists-common.c:125,9'
          Dst:             array_append_space_i
    - functionName:    ext_extlists_config_lists
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - ext_extlists_list_add
        - i_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:135,7'
          Dst:             array_is_created_i
        - Src:             'ext-extlists-common.c:138,2'
          Dst:             i_memcpy
        - Src:             'ext-extlists-common.c:139,7'
          Dst:             ext_extlists_list_add
    - 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:    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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_extlists_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/extlists/ext-extlists-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_create_i
        - array_is_created_i
        - e_error
        - ext_extlists_config_lists
        - ext_extlists_context_free
        - ext_extlists_list_add_default
        - malloc_multiply_check
        - p_malloc
        - settings_get
        - sieve_extension_capabilities_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-extlists-common.c:169,6'
          Dst:             settings_get
        - Src:             'ext-extlists-common.c:171,3'
          Dst:             e_error
        - Src:             'ext-extlists-common.c:176,31'
          Dst:             array_is_created_i
        - Src:             'ext-extlists-common.c:177,13'
          Dst:             array_count_i
        - Src:             'ext-extlists-common.c:179,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-extlists-common.c:179,11'
          Dst:             p_malloc
        - Src:             'ext-extlists-common.c:181,2'
          Dst:             array_create_i
        - Src:             'ext-extlists-common.c:183,6'
          Dst:             ext_extlists_config_lists
        - Src:             'ext-extlists-common.c:184,3'
          Dst:             ext_extlists_context_free
        - Src:             'ext-extlists-common.c:187,2'
          Dst:             ext_extlists_list_add_default
        - Src:             'ext-extlists-common.c:188,2'
          Dst:             sieve_extension_capabilities_register
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    cmd_debug_log_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/cmd-debug-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_string_read
        - sieve_runtime_log
        - sieve_runtime_trace
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-debug-log.c:124,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-debug-log.c:133,21'
          Dst:             str_c
        - Src:             'cmd-debug-log.c:133,8'
          Dst:             str_sanitize
        - Src:             'cmd-debug-log.c:132,2'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-debug-log.c:135,2'
          Dst:             str_c
        - Src:             'cmd-debug-log.c:135,2'
          Dst:             sieve_runtime_log
    - functionName:    cmd_debug_log_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/cmd-debug-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-debug-log.c:101,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-debug-log.c:102,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-debug-log.c:104,9'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_debug_log_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/cmd-debug-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-debug-log.c:86,8'
          Dst:             sieve_operation_emit
        - Src:             'cmd-debug-log.c:90,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_debug_log_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/debug/cmd-debug-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-debug-log.c:71,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-debug-log.c:75,9'
          Dst:             sieve_validator_argument_activate
    - 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_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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ext_vnd_environment_items_register
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_environment_item_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-items.c:102,2'
          Dst:             sieve_environment_item_register
        - Src:             'ext-vnd-environment-items.c:104,2'
          Dst:             sieve_environment_item_register
        - Src:             'ext-vnd-environment-items.c:106,2'
          Dst:             sieve_environment_item_register
    - functionName:    envit_config_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_is_created_i
        - i_panic
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-items.c:72,7'
          Dst:             array_is_created_i
        - Src:             'ext-vnd-environment-items.c:78,9'
          Dst:             array_get_i
        - Src:             'ext-vnd-environment-items.c:79,2'
          Dst:             i_panic
        - Src:             'ext-vnd-environment-items.c:81,7'
          Dst:             strcasecmp
    - functionName:    envit_username_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    envit_default_mailbox_get_value
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-items.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-items.c:34,2'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_operand_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_operand_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-runtime-trace.h:99,3'
          Dst:             _sieve_runtime_trace_operand_error
    - 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:    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:             'dovecot/src/lib/str.h:61,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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - 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:    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:             'dovecot/src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    vnspc_vnd_environment_read_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ext_environment_item_get_value
        - sieve_binary_read_string
        - sieve_runtime_trace_operand_error
        - str_c
        - strchr
        - strlen
        - t_str_new_const
        - t_strdup_noconst
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-variables.c:154,7'
          Dst:             sieve_binary_read_string
        - Src:             'ext-vnd-environment-variables.c:155,3'
          Dst:             sieve_runtime_trace_operand_error
        - Src:             'ext-vnd-environment-variables.c:162,23'
          Dst:             str_c
        - Src:             'ext-vnd-environment-variables.c:164,15'
          Dst:             ext_environment_item_get_value
        - Src:             'ext-vnd-environment-variables.c:166,28'
          Dst:             strchr
        - Src:             'ext-vnd-environment-variables.c:170,12'
          Dst:             t_strdup_noconst
        - Src:             'ext-vnd-environment-variables.c:175,16'
          Dst:             ext_environment_item_get_value
        - Src:             'ext-vnd-environment-variables.c:180,13'
          Dst:             t_str_new_const
        - Src:             'ext-vnd-environment-variables.c:184,39'
          Dst:             strlen
        - Src:             'ext-vnd-environment-variables.c:184,12'
          Dst:             t_str_new_const
    - functionName:    vnspc_vnd_environment_dump_variable
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sieve_binary_read_string
        - sieve_code_dumpf
        - str_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-variables.c:130,7'
          Dst:             sieve_binary_read_string
        - Src:             'ext-vnd-environment-variables.c:135,25'
          Dst:             str_c
        - Src:             'ext-vnd-environment-variables.c:134,3'
          Dst:             sieve_code_dumpf
        - Src:             'ext-vnd-environment-variables.c:137,43'
          Dst:             str_c
        - Src:             'ext-vnd-environment-variables.c:137,3'
          Dst:             sieve_code_dumpf
    - functionName:    vnspc_vnd_environment_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_binary_emit_cstring
        - sieve_variables_opr_namespace_variable_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-variables.c:115,2'
          Dst:             sieve_variables_opr_namespace_variable_emit
        - Src:             'ext-vnd-environment-variables.c:118,2'
          Dst:             sieve_binary_emit_cstring
    - functionName:    vnspc_vnd_environment_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          169
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - i_panic
        - p_strdup
        - sieve_ast_pool
        - sieve_validator_error
        - str_append_c
        - str_append_str
        - str_c
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-variables.c:68,9'
          Dst:             t_str_new
        - Src:             'ext-vnd-environment-variables.c:69,18'
          Dst:             array_get_i
        - Src:             'ext-vnd-environment-variables.c:70,2'
          Dst:             i_panic
        - Src:             'ext-vnd-environment-variables.c:73,4'
          Dst:             sieve_validator_error
        - Src:             'ext-vnd-environment-variables.c:80,7'
          Dst:             str_len
        - Src:             'ext-vnd-environment-variables.c:81,4'
          Dst:             str_append_c
        - Src:             'ext-vnd-environment-variables.c:82,3'
          Dst:             str_append_str
        - Src:             'ext-vnd-environment-variables.c:85,13'
          Dst:             str_c
        - Src:             'ext-vnd-environment-variables.c:88,3'
          Dst:             sieve_validator_error
        - Src:             'ext-vnd-environment-variables.c:95,23'
          Dst:             sieve_ast_pool
        - Src:             'ext-vnd-environment-variables.c:95,14'
          Dst:             p_strdup
    - functionName:    ext_environment_variables_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_variables_namespace_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-environment-variables.c:208,2'
          Dst:             sieve_variables_namespace_register
    - 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:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/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:    5
      BranchProfiles:  []
      Callsites:       []
    - 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:    4
      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:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    _contains_8bit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc2822_header_write
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../util/rfc2822.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfc2822_header_append
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../util/rfc2822.h:33,8'
          Dst:             rfc2822_header_append
    - functionName:    act_report_send
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          642
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - _contains_8bit
        - i_stream_create_limit
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_ref
        - i_stream_unref
        - mail_get_hdr_stream
        - mail_get_headers_utf8
        - mail_get_stream
        - message_date_create
        - o_stream_nsend
        - o_stream_nsend_istream
        - rfc2822_header_printf
        - rfc2822_header_utf8_printf
        - rfc2822_header_write
        - sieve_action_create_finish_event
        - sieve_address_source_get_address
        - sieve_get_postmaster_address
        - sieve_get_user_email
        - sieve_message_get_new_id
        - sieve_message_get_orig_recipient
        - sieve_message_get_sender
        - sieve_result_critical
        - sieve_result_event_log
        - sieve_result_global_error
        - sieve_result_global_log_error
        - sieve_result_global_warning
        - sieve_result_mail_error
        - sieve_smtp_abort
        - sieve_smtp_available
        - sieve_smtp_finish
        - sieve_smtp_start_single
        - smtp_address_encode
        - smtp_address_encode_path
        - str_append
        - str_data
        - str_len
        - str_printfa
        - str_sanitize
        - str_truncate
        - t_str_new
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:466,7'
          Dst:             sieve_smtp_available
        - Src:             'cmd-report.c:467,3'
          Dst:             sieve_result_global_warning
        - Src:             'cmd-report.c:473,8'
          Dst:             mail_get_headers_utf8
        - Src:             'cmd-report.c:475,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-report.c:480,13'
          Dst:             t_strconcat
        - Src:             'cmd-report.c:489,6'
          Dst:             sieve_address_source_get_address
        - Src:             'cmd-report.c:492,10'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:494,10'
          Dst:             sieve_get_postmaster_address
        - Src:             'cmd-report.c:497,9'
          Dst:             sieve_smtp_start_single
        - Src:             'cmd-report.c:499,13'
          Dst:             sieve_message_get_new_id
        - Src:             'cmd-report.c:500,13'
          Dst:             t_strdup_printf
        - Src:             'cmd-report.c:503,8'
          Dst:             t_str_new
        - Src:             'cmd-report.c:504,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:505,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:506,36'
          Dst:             message_date_create
        - Src:             'cmd-report.c:506,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:508,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:510,9'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:509,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:512,6'
          Dst:             _contains_8bit
        - Src:             'cmd-report.c:513,3'
          Dst:             rfc2822_header_utf8_printf
        - Src:             'cmd-report.c:515,3'
          Dst:             rfc2822_header_printf
        - Src:             'cmd-report.c:517,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:519,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:520,2'
          Dst:             rfc2822_header_printf
        - Src:             'cmd-report.c:524,2'
          Dst:             str_append
        - Src:             'cmd-report.c:527,2'
          Dst:             str_printfa
        - Src:             'cmd-report.c:528,6'
          Dst:             _contains_8bit
        - Src:             'cmd-report.c:529,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:531,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:533,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:535,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:537,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:539,2'
          Dst:             str_printfa
        - Src:             'cmd-report.c:540,25'
          Dst:             str_data
        - Src:             'cmd-report.c:540,40'
          Dst:             str_len
        - Src:             'cmd-report.c:540,2'
          Dst:             o_stream_nsend
        - Src:             'cmd-report.c:543,2'
          Dst:             str_truncate
        - Src:             'cmd-report.c:544,2'
          Dst:             str_printfa
        - Src:             'cmd-report.c:545,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:546,2'
          Dst:             str_append
        - Src:             'cmd-report.c:548,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:549,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:550,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:557,12'
          Dst:             sieve_message_get_sender
        - Src:             'cmd-report.c:558,20'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'cmd-report.c:561,10'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:560,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:565,5'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:563,4'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:571,12'
          Dst:             sieve_message_get_orig_recipient
        - Src:             'cmd-report.c:572,10'
          Dst:             sieve_get_user_email
        - Src:             'cmd-report.c:575,10'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:574,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:577,2'
          Dst:             str_append
        - Src:             'cmd-report.c:579,25'
          Dst:             str_data
        - Src:             'cmd-report.c:579,40'
          Dst:             str_len
        - Src:             'cmd-report.c:579,2'
          Dst:             o_stream_nsend
        - Src:             'cmd-report.c:582,2'
          Dst:             str_truncate
        - Src:             'cmd-report.c:583,2'
          Dst:             str_printfa
        - Src:             'cmd-report.c:585,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:588,3'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:590,2'
          Dst:             rfc2822_header_write
        - Src:             'cmd-report.c:591,2'
          Dst:             str_append
        - Src:             'cmd-report.c:592,25'
          Dst:             str_data
        - Src:             'cmd-report.c:592,40'
          Dst:             str_len
        - Src:             'cmd-report.c:592,2'
          Dst:             o_stream_nsend
        - Src:             'cmd-report.c:596,9'
          Dst:             mail_get_hdr_stream
        - Src:             'cmd-report.c:598,12'
          Dst:             i_stream_create_limit
        - Src:             'cmd-report.c:602,9'
          Dst:             mail_get_stream
        - Src:             'cmd-report.c:604,4'
          Dst:             i_stream_ref
        - Src:             'cmd-report.c:607,3'
          Dst:             sieve_smtp_abort
        - Src:             'cmd-report.c:608,10'
          Dst:             sieve_result_mail_error
        - Src:             'cmd-report.c:612,2'
          Dst:             o_stream_nsend_istream
        - Src:             'cmd-report.c:616,3'
          Dst:             i_stream_get_name
        - Src:             'cmd-report.c:616,3'
          Dst:             i_stream_get_error
        - Src:             'cmd-report.c:616,3'
          Dst:             sieve_result_critical
        - Src:             'cmd-report.c:620,3'
          Dst:             i_stream_unref
        - Src:             'cmd-report.c:621,3'
          Dst:             sieve_smtp_abort
        - Src:             'cmd-report.c:624,2'
          Dst:             i_stream_unref
        - Src:             'cmd-report.c:626,2'
          Dst:             str_truncate
        - Src:             'cmd-report.c:628,3'
          Dst:             str_printfa
        - Src:             'cmd-report.c:629,2'
          Dst:             str_printfa
        - Src:             'cmd-report.c:630,25'
          Dst:             str_data
        - Src:             'cmd-report.c:630,40'
          Dst:             str_len
        - Src:             'cmd-report.c:630,2'
          Dst:             o_stream_nsend
        - Src:             'cmd-report.c:633,8'
          Dst:             sieve_smtp_finish
        - Src:             'cmd-report.c:636,4'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:636,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-report.c:636,4'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:636,4'
          Dst:             sieve_result_global_error
        - Src:             'cmd-report.c:643,4'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:643,4'
          Dst:             smtp_address_encode
        - Src:             'cmd-report.c:643,4'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:643,4'
          Dst:             sieve_result_global_log_error
        - Src:             'cmd-report.c:654,4'
          Dst:             sieve_action_create_finish_event
        - Src:             'cmd-report.c:656,5'
          Dst:             smtp_address_encode
        - Src:             'cmd-report.c:658,5'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:660,3'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:660,3'
          Dst:             smtp_address_encode
        - Src:             'cmd-report.c:660,3'
          Dst:             sieve_result_event_log
    - functionName:    smtp_address_equals
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib-smtp/smtp-address.h:191,10'
          Dst:             smtp_address_cmp
    - functionName:    act_report_equals
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:403,10'
          Dst:             smtp_address_equals
    - 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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_runtime_trace_descend
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _sieve_runtime_trace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-runtime-trace.h:122,3'
          Dst:             _sieve_runtime_trace
    - functionName:    sieve_runtime_trace_active
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_runtime_trace_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-runtime-trace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _sieve_runtime_trace_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-runtime-trace.h:86,3'
          Dst:             _sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_read
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_opr_optional_next
        - sieve_runtime_trace_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-code.h:93,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../../sieve-code.h:95,3'
          Dst:             sieve_runtime_trace_error
    - functionName:    sieve_opr_optional_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/./../../../sieve-code.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_code_mark_specific
        - sieve_opr_optional_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../../../sieve-code.h:79,13'
          Dst:             sieve_opr_optional_next
        - Src:             './../../../sieve-code.h:83,2'
          Dst:             sieve_code_mark_specific
    - functionName:    act_report_commit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - act_report_send
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:679,2'
          Dst:             t_push
        - Src:             'cmd-report.c:680,9'
          Dst:             act_report_send
        - Src:             'cmd-report.c:681,4'
          Dst:             t_pop
        - Src:             'cmd-report.c:681,4'
          Dst:             i_panic
    - functionName:    act_report_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_result_action_printf
        - smtp_address_encode_path
        - str_sanitize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:428,3'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:429,3'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:426,2'
          Dst:             sieve_result_action_printf
    - functionName:    act_report_check_duplicate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - act_report_equals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:413,10'
          Dst:             act_report_equals
    - functionName:    cmd_report_operation_execute
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          229
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - ext_vnd_report_parse_feedback_type
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - sieve_address_parse_str
        - sieve_opr_optional_read
        - sieve_opr_string_read
        - sieve_result_add_action
        - sieve_result_pool
        - sieve_runtime_error
        - sieve_runtime_trace
        - sieve_runtime_trace_active
        - sieve_runtime_trace_descend
        - sieve_runtime_trace_error
        - smtp_address_clone
        - smtp_address_encode_path
        - str_c
        - str_sanitize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-report.c:316,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-report.c:310,9'
          Dst:             sieve_opr_optional_read
        - Src:             'cmd-report.c:321,4'
          Dst:             sieve_runtime_trace_error
        - Src:             'cmd-report.c:329,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-report.c:332,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-report.c:335,8'
          Dst:             sieve_opr_string_read
        - Src:             'cmd-report.c:344,53'
          Dst:             str_c
        - Src:             'cmd-report.c:344,18'
          Dst:             ext_vnd_report_parse_feedback_type
        - Src:             'cmd-report.c:346,3'
          Dst:             str_c
        - Src:             'cmd-report.c:346,3'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:346,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-report.c:354,19'
          Dst:             sieve_address_parse_str
        - Src:             'cmd-report.c:356,3'
          Dst:             str_c
        - Src:             'cmd-report.c:356,3'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:356,3'
          Dst:             sieve_runtime_error
        - Src:             'cmd-report.c:364,6'
          Dst:             sieve_runtime_trace_active
        - Src:             'cmd-report.c:365,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-report.c:366,3'
          Dst:             sieve_runtime_trace_descend
        - Src:             'cmd-report.c:369,17'
          Dst:             str_c
        - Src:             'cmd-report.c:369,4'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:370,4'
          Dst:             smtp_address_encode_path
        - Src:             'cmd-report.c:367,3'
          Dst:             sieve_runtime_trace
        - Src:             'cmd-report.c:375,9'
          Dst:             sieve_result_pool
        - Src:             'cmd-report.c:376,8'
          Dst:             malloc_multiply_check
        - Src:             'cmd-report.c:376,8'
          Dst:             p_malloc
        - Src:             'cmd-report.c:378,23'
          Dst:             p_strdup
        - Src:             'cmd-report.c:379,32'
          Dst:             str_c
        - Src:             'cmd-report.c:379,17'
          Dst:             p_strdup
        - Src:             'cmd-report.c:380,20'
          Dst:             smtp_address_clone
        - Src:             'cmd-report.c:382,6'
          Dst:             sieve_result_add_action
    - functionName:    cmd_report_operation_dump
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          85
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - sieve_code_descend
        - sieve_code_dumpf
        - sieve_opr_optional_dump
        - sieve_opr_string_dump
      functionUses:    0
      BranchProfiles:
        - Branch String:   'cmd-report.c:269,3'
          Branch Sides:    []
      Callsites:
        - Src:             'cmd-report.c:256,2'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-report.c:257,2'
          Dst:             sieve_code_descend
        - Src:             'cmd-report.c:263,9'
          Dst:             sieve_opr_optional_dump
        - Src:             'cmd-report.c:271,4'
          Dst:             sieve_code_dumpf
        - Src:             'cmd-report.c:278,10'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-report.c:279,3'
          Dst:             sieve_opr_string_dump
        - Src:             'cmd-report.c:280,3'
          Dst:             sieve_opr_string_dump
    - functionName:    cmd_report_generate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_generate_arguments
        - sieve_operation_emit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:240,2'
          Dst:             sieve_operation_emit
        - Src:             'cmd-report.c:243,9'
          Dst:             sieve_generate_arguments
    - functionName:    cmd_report_validate
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          250
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - ext_vnd_report_parse_feedback_type
        - i_panic
        - sieve_address_validate_str
        - sieve_validate_positional_argument
        - sieve_validator_argument_activate
        - sieve_validator_error
        - str_c
        - str_sanitize
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:161,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-report.c:165,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-report.c:172,3'
          Dst:             t_push
        - Src:             'cmd-report.c:175,40'
          Dst:             str_c
        - Src:             'cmd-report.c:175,5'
          Dst:             ext_vnd_report_parse_feedback_type
        - Src:             'cmd-report.c:178,5'
          Dst:             str_c
        - Src:             'cmd-report.c:178,5'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:178,5'
          Dst:             sieve_validator_error
        - Src:             'cmd-report.c:183,5'
          Dst:             t_pop
        - Src:             'cmd-report.c:183,5'
          Dst:             i_panic
        - Src:             'cmd-report.c:191,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-report.c:194,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-report.c:199,7'
          Dst:             sieve_validate_positional_argument
        - Src:             'cmd-report.c:202,7'
          Dst:             sieve_validator_argument_activate
        - Src:             'cmd-report.c:214,3'
          Dst:             t_push
        - Src:             'cmd-report.c:216,13'
          Dst:             sieve_address_validate_str
        - Src:             'cmd-report.c:218,5'
          Dst:             str_c
        - Src:             'cmd-report.c:218,5'
          Dst:             str_sanitize
        - Src:             'cmd-report.c:218,5'
          Dst:             sieve_validator_error
        - Src:             'cmd-report.c:224,5'
          Dst:             t_pop
        - Src:             'cmd-report.c:224,5'
          Dst:             i_panic
    - functionName:    cmd_report_registered
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_validator_register_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd-report.c:145,2'
          Dst:             sieve_validator_register_tag
    - functionName:    ext_vnd_report_parse_feedback_type
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - rfc822_parse_mime_token
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - strlen
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-report-common.c:50,7'
          Dst:             strlen
        - Src:             'ext-vnd-report-common.c:49,2'
          Dst:             rfc822_parser_init
        - Src:             'ext-vnd-report-common.c:51,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'ext-vnd-report-common.c:54,10'
          Dst:             t_str_new
        - Src:             'ext-vnd-report-common.c:55,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'ext-vnd-report-common.c:60,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'ext-vnd-report-common.c:65,9'
          Dst:             str_c
    - 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:    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:    ext_report_unload
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-report-common.c:39,2'
          Dst:             pool_unref
        - Src:             'ext-vnd-report-common.c:40,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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    ext_report_load
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - malloc_multiply_check
        - p_malloc
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ext-vnd-report-common.c:20,6'
          Dst:             settings_get
        - Src:             'ext-vnd-report-common.c:22,3'
          Dst:             e_error
        - Src:             'ext-vnd-report-common.c:26,11'
          Dst:             malloc_multiply_check
        - Src:             'ext-vnd-report-common.c:26,11'
          Dst:             p_malloc
    - functionName:    sieve_lexer_warning
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_error_script_location
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:168,2'
          Dst:             t_push
        - Src:             'sieve-lexer.c:170,4'
          Dst:             sieve_error_script_location
        - Src:             'sieve-lexer.c:172,3'
          Dst:             sieve_logv
        - Src:             'sieve-lexer.c:173,4'
          Dst:             t_pop
        - Src:             'sieve-lexer.c:173,4'
          Dst:             i_panic
    - functionName:    _char_sanitize
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:345,10'
          Dst:             t_strdup_printf
        - Src:             'sieve-lexer.c:347,9'
          Dst:             t_strdup_printf
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    sieve_lexer_scan_number
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          192
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - sieve_lexer_curchar
        - sieve_lexer_error
        - sieve_lexer_shift
        - str_append_c
        - str_c
        - str_to_uintmax
        - str_truncate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-lexer.c:369,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-lexer.c:357,2'
          Dst:             str_truncate
        - Src:             'sieve-lexer.c:360,9'
          Dst:             __ctype_b_loc
        - Src:             'sieve-lexer.c:360,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:361,3'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:361,3'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:362,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:365,21'
          Dst:             str_c
        - Src:             'sieve-lexer.c:365,6'
          Dst:             str_to_uintmax
        - Src:             'sieve-lexer.c:369,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:376,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:384,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:392,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:402,3'
          Dst:             sieve_lexer_error
    - 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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             'dovecot/src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    sieve_lexer_curchar
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    50
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    sieve_lexer_shift
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - i_stream_get_data
        - i_stream_read
        - i_stream_skip
      functionUses:    44
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:319,4'
          Dst:             i_stream_skip
        - Src:             'sieve-lexer.c:321,21'
          Dst:             i_stream_get_data
        - Src:             'sieve-lexer.c:325,7'
          Dst:             i_stream_read
        - Src:             'sieve-lexer.c:326,24'
          Dst:             i_stream_get_data
    - functionName:    sieve_lexer_error
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - sieve_error_script_location
        - sieve_logv
        - t_pop
        - t_push
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:139,2'
          Dst:             t_push
        - Src:             'sieve-lexer.c:141,4'
          Dst:             sieve_error_script_location
        - Src:             'sieve-lexer.c:143,3'
          Dst:             sieve_logv
        - Src:             'sieve-lexer.c:144,4'
          Dst:             t_pop
        - Src:             'sieve-lexer.c:144,4'
          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:    12
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             'dovecot/src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    sieve_lexer_scan_hash_comment
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_lexer_curchar
        - sieve_lexer_error
        - sieve_lexer_shift
        - sieve_lexer_warning
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sieve-lexer.c:421,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-lexer.c:420,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:421,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:427,4'
          Dst:             sieve_lexer_warning
        - Src:             'sieve-lexer.c:432,4'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:441,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:444,2'
          Dst:             sieve_lexer_shift
    - functionName:    sieve_lexer_scan_raw_token
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         217
      ICount:          1298
      EdgeCount:       275
      CyclomaticComplexity: 60
      functionsReached:
        - __ctype_b_loc
        - _char_sanitize
        - i_panic
        - i_stream_read
        - sieve_lexer_curchar
        - sieve_lexer_error
        - sieve_lexer_scan_hash_comment
        - sieve_lexer_scan_number
        - sieve_lexer_shift
        - str_append
        - str_append_c
        - str_begins_icase_with
        - str_c
        - str_len
        - str_sanitize
        - str_truncate
        - strncasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sieve-lexer.c:474,2'
          Branch Sides:    []
        - Branch String:   'sieve-lexer.c:495,5'
          Branch Sides:    []
        - Branch String:   'sieve-lexer.c:571,4'
          Branch Sides:    []
        - Branch String:   'sieve-lexer.c:741,6'
          Branch Sides:    []
        - Branch String:   'sieve-lexer.c:832,7'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-lexer.c:462,14'
          Dst:             i_stream_read
        - Src:             'sieve-lexer.c:463,4'
          Dst:             i_panic
        - Src:             'sieve-lexer.c:469,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:474,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:480,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:481,10'
          Dst:             sieve_lexer_scan_hash_comment
        - Src:             'sieve-lexer.c:489,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:491,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:492,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:495,13'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:498,7'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:507,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:509,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:510,7'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:515,17'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:516,7'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:526,6'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:531,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:547,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:549,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:550,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:551,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:552,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:554,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:562,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:564,3'
          Dst:             str_truncate
        - Src:             'sieve-lexer.c:567,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:568,8'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:569,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:571,12'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:576,6'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:585,5'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:593,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:595,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:596,6'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:604,9'
          Dst:             str_len
        - Src:             'sieve-lexer.c:605,6'
          Dst:             str_append
        - Src:             'sieve-lexer.c:610,9'
          Dst:             str_len
        - Src:             'sieve-lexer.c:611,6'
          Dst:             str_append
        - Src:             'sieve-lexer.c:616,9'
          Dst:             str_len
        - Src:             'sieve-lexer.c:617,6'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:617,6'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:620,4'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:623,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:625,7'
          Dst:             str_len
        - Src:             'sieve-lexer.c:626,4'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:639,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:643,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:647,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:651,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:655,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:659,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:663,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:667,3'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:682,7'
          Dst:             __ctype_b_loc
        - Src:             'sieve-lexer.c:682,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:683,11'
          Dst:             sieve_lexer_scan_number
        - Src:             'sieve-lexer.c:686,14'
          Dst:             __ctype_b_loc
        - Src:             'sieve-lexer.c:686,14'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:687,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:688,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:691,4'
          Dst:             str_truncate
        - Src:             'sieve-lexer.c:696,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:697,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:701,10'
          Dst:             __ctype_b_loc
        - Src:             'sieve-lexer.c:701,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:702,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:703,6'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:703,6'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:704,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:712,5'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:712,5'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:713,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:717,11'
          Dst:             __ctype_b_loc
        - Src:             'sieve-lexer.c:717,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:718,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:720,9'
          Dst:             str_len
        - Src:             'sieve-lexer.c:721,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:721,7'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:723,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:727,8'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:729,8'
          Dst:             str_len
        - Src:             'sieve-lexer.c:730,8'
          Dst:             str_c
        - Src:             'sieve-lexer.c:730,8'
          Dst:             strncasecmp
        - Src:             'sieve-lexer.c:730,8'
          Dst:             str_c
        - Src:             'sieve-lexer.c:730,8'
          Dst:             str_begins_icase_with
        - Src:             'sieve-lexer.c:731,5'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:734,12'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:735,12'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:736,7'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:739,9'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:740,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:741,14'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:743,11'
          Dst:             sieve_lexer_scan_hash_comment
        - Src:             'sieve-lexer.c:746,7'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:756,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:760,7'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:766,7'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:766,7'
          Dst:             _char_sanitize
        - Src:             'sieve-lexer.c:766,7'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:774,5'
          Dst:             str_truncate
        - Src:             'sieve-lexer.c:781,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:782,7'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:785,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:786,8'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:791,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:792,8'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:797,12'
          Dst:             str_len
        - Src:             'sieve-lexer.c:798,9'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:810,12'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:812,9'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:822,11'
          Dst:             str_len
        - Src:             'sieve-lexer.c:823,8'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:824,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:825,8'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:829,13'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:830,13'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:832,15'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:835,9'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:841,8'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:847,12'
          Dst:             str_len
        - Src:             'sieve-lexer.c:848,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:848,11'
          Dst:             str_append_c
        - Src:             'sieve-lexer.c:851,7'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:855,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:856,7'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:859,10'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:860,11'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:862,8'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:871,10'
          Dst:             str_len
        - Src:             'sieve-lexer.c:872,7'
          Dst:             str_append
        - Src:             'sieve-lexer.c:874,6'
          Dst:             sieve_lexer_shift
        - Src:             'sieve-lexer.c:880,8'
          Dst:             str_len
        - Src:             'sieve-lexer.c:881,5'
          Dst:             str_c
        - Src:             'sieve-lexer.c:881,5'
          Dst:             str_sanitize
        - Src:             'sieve-lexer.c:881,5'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:897,4'
          Dst:             sieve_lexer_curchar
        - Src:             'sieve-lexer.c:897,4'
          Dst:             _char_sanitize
        - Src:             'sieve-lexer.c:897,4'
          Dst:             sieve_lexer_error
        - Src:             'sieve-lexer.c:901,3'
          Dst:             sieve_lexer_shift
    - functionName:    sieve_lexer_skip_token
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_get_error
        - sieve_critical
        - sieve_error_script_location
        - sieve_lexer_scan_raw_token
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:913,8'
          Dst:             sieve_lexer_scan_raw_token
        - Src:             'sieve-lexer.c:916,5'
          Dst:             sieve_error_script_location
        - Src:             'sieve-lexer.c:916,5'
          Dst:             i_stream_get_error
        - Src:             'sieve-lexer.c:916,5'
          Dst:             sieve_critical
    - functionName:    sieve_lexer_token_print
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          119
      EdgeCount:       47
      CyclomaticComplexity: 25
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-lexer.c:236,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-lexer.c:238,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:241,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:244,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:248,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:251,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:254,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:257,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:261,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:264,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:267,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:270,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:273,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:276,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:279,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:282,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:286,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:289,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:293,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:296,3'
          Dst:             printf
        - Src:             'sieve-lexer.c:299,3'
          Dst:             printf
    - functionName:    sieve_lexer_token_description
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          114
      EdgeCount:       42
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    9
      BranchProfiles:
        - Branch String:   'sieve-lexer.c:182,2'
          Branch Sides:    []
      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:    sieve_lexer_free
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          46
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_unref
        - p_free_internal
        - sieve_error_handler_unref
        - sieve_script_unref
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:109,2'
          Dst:             i_stream_unref
        - Src:             'sieve-lexer.c:110,2'
          Dst:             sieve_script_unref
        - Src:             'sieve-lexer.c:111,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-lexer.c:112,2'
          Dst:             str_free
        - Src:             'sieve-lexer.c:114,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:             'dovecot/src/lib/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:             'dovecot/src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sieve_lexer_create
      functionSourceFile: '/src/pigeonhole/src/lib-sieve/sieve-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          171
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_ref
        - i_stream_stat
        - malloc_multiply_check
        - p_malloc
        - sieve_error
        - sieve_error_handler_ref
        - sieve_script_get_stream
        - sieve_script_name
        - sieve_script_ref
        - sieve_script_svinst
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-lexer.c:58,34'
          Dst:             sieve_script_svinst
        - Src:             'sieve-lexer.c:63,6'
          Dst:             sieve_script_get_stream
        - Src:             'sieve-lexer.c:67,6'
          Dst:             i_stream_stat
        - Src:             'sieve-lexer.c:70,3'
          Dst:             sieve_script_name
        - Src:             'sieve-lexer.c:70,3'
          Dst:             sieve_error
        - Src:             'sieve-lexer.c:78,12'
          Dst:             malloc_multiply_check
        - Src:             'sieve-lexer.c:78,12'
          Dst:             p_malloc
        - Src:             'sieve-lexer.c:82,2'
          Dst:             sieve_error_handler_ref
        - Src:             'sieve-lexer.c:85,2'
          Dst:             i_stream_ref
        - Src:             'sieve-lexer.c:88,2'
          Dst:             sieve_script_ref
        - Src:             'sieve-lexer.c:95,35'
          Dst:             str_new
    - 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:             'dovecot/src/lib/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:    2
      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:    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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_tool_parse_trace_option
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          160
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - i_fatal_status
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:745,6'
          Dst:             str_begins
        - Src:             'sieve-tool.c:745,6'
          Dst:             strncmp
        - Src:             'sieve-tool.c:745,6'
          Dst:             str_begins_builtin_success
        - Src:             'sieve-tool.c:746,7'
          Dst:             strcmp
        - Src:             'sieve-tool.c:748,14'
          Dst:             strcmp
        - Src:             'sieve-tool.c:750,14'
          Dst:             strcmp
        - Src:             'sieve-tool.c:752,14'
          Dst:             strcmp
        - Src:             'sieve-tool.c:754,14'
          Dst:             strcmp
        - Src:             'sieve-tool.c:757,4'
          Dst:             i_fatal_status
        - Src:             'sieve-tool.c:760,13'
          Dst:             strcmp
        - Src:             'sieve-tool.c:762,13'
          Dst:             strcmp
        - Src:             'sieve-tool.c:765,3'
          Dst:             i_fatal_status
    - functionName:    sieve_tool_dump_binary_to
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_fatal
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - sieve_dump
        - sieve_hexdump
        - sieve_tool_open_output_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:720,15'
          Dst:             sieve_tool_open_output_stream
        - Src:             'sieve-tool.c:723,10'
          Dst:             sieve_hexdump
        - Src:             'sieve-tool.c:725,10'
          Dst:             sieve_dump
        - Src:             'sieve-tool.c:726,7'
          Dst:             o_stream_finish
        - Src:             'sieve-tool.c:728,5'
          Dst:             o_stream_get_error
        - Src:             'sieve-tool.c:727,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:730,3'
          Dst:             o_stream_destroy
        - Src:             'sieve-tool.c:732,3'
          Dst:             i_fatal
    - functionName:    sieve_tool_open_output_stream
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - o_stream_create_fd
        - o_stream_create_fd_autoclose
        - open
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:584,6'
          Dst:             strcmp
        - Src:             'sieve-tool.c:585,15'
          Dst:             o_stream_create_fd
        - Src:             'sieve-tool.c:587,8'
          Dst:             open
        - Src:             'sieve-tool.c:589,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:591,15'
          Dst:             o_stream_create_fd_autoclose
    - functionName:    sieve_tool_script_open
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_fatal
        - i_panic
        - sieve_error_handler_accept_debuglog
        - sieve_error_handler_accept_infolog
        - sieve_error_handler_unref
        - sieve_open
        - sieve_save
        - sieve_stderr_ehandler_create
        - sieve_storage_name_is_valid
        - sieve_tool_script_parse_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:686,13'
          Dst:             sieve_stderr_ehandler_create
        - Src:             'sieve-tool.c:687,2'
          Dst:             sieve_error_handler_accept_infolog
        - Src:             'sieve-tool.c:688,2'
          Dst:             sieve_error_handler_accept_debuglog
        - Src:             'sieve-tool.c:690,6'
          Dst:             sieve_storage_name_is_valid
        - Src:             'sieve-tool.c:691,6'
          Dst:             sieve_open
        - Src:             'sieve-tool.c:694,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:699,3'
          Dst:             sieve_tool_script_parse_location
        - Src:             'sieve-tool.c:700,7'
          Dst:             sieve_open
        - Src:             'sieve-tool.c:702,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:704,2'
          Dst:             i_panic
        - Src:             'sieve-tool.c:706,2'
          Dst:             sieve_error_handler_unref
        - Src:             'sieve-tool.c:708,2'
          Dst:             sieve_save
    - functionName:    sieve_tool_script_parse_location
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          111
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - settings_instance_find
        - settings_override
        - strchr
        - strcmp
        - t_strdup_printf
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:606,21'
          Dst:             strchr
        - Src:             'sieve-tool.c:612,19'
          Dst:             t_strdup_until
        - Src:             'sieve-tool.c:613,7'
          Dst:             strcmp
        - Src:             'sieve-tool.c:622,3'
          Dst:             settings_instance_find
        - Src:             'sieve-tool.c:623,23'
          Dst:             t_strdup_printf
        - Src:             'sieve-tool.c:625,2'
          Dst:             settings_override
        - Src:             'sieve-tool.c:628,6'
          Dst:             t_strdup_printf
        - Src:             'sieve-tool.c:627,2'
          Dst:             settings_override
        - Src:             'sieve-tool.c:631,6'
          Dst:             t_strdup_printf
        - Src:             'sieve-tool.c:630,2'
          Dst:             settings_override
        - Src:             'sieve-tool.c:634,6'
          Dst:             t_strdup_printf
        - Src:             'sieve-tool.c:633,2'
          Dst:             settings_override
        - Src:             'sieve-tool.c:638,18'
          Dst:             t_strdup_printf
        - Src:             'sieve-tool.c:637,3'
          Dst:             settings_override
    - functionName:    sieve_tool_script_compile
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_fatal
        - i_panic
        - sieve_compile
        - sieve_error_handler_accept_debuglog
        - sieve_error_handler_accept_infolog
        - sieve_error_handler_unref
        - sieve_stderr_ehandler_create
        - sieve_storage_name_is_valid
        - sieve_tool_script_parse_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:654,13'
          Dst:             sieve_stderr_ehandler_create
        - Src:             'sieve-tool.c:655,2'
          Dst:             sieve_error_handler_accept_infolog
        - Src:             'sieve-tool.c:656,2'
          Dst:             sieve_error_handler_accept_debuglog
        - Src:             'sieve-tool.c:658,6'
          Dst:             sieve_storage_name_is_valid
        - Src:             'sieve-tool.c:659,6'
          Dst:             sieve_compile
        - Src:             'sieve-tool.c:662,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:667,3'
          Dst:             sieve_tool_script_parse_location
        - Src:             'sieve-tool.c:668,7'
          Dst:             sieve_compile
        - Src:             'sieve-tool.c:670,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:672,2'
          Dst:             i_panic
        - Src:             'sieve-tool.c:674,2'
          Dst:             sieve_error_handler_unref
    - functionName:    sieve_tool_get_address
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - mail_get_first_header
        - message_address_parse
        - pool_datastack_create
        - smtp_address_create_from_msg_temp
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:522,6'
          Dst:             mail_get_first_header
        - Src:             'sieve-tool.c:524,31'
          Dst:             pool_datastack_create
        - Src:             'sieve-tool.c:526,10'
          Dst:             strlen
        - Src:             'sieve-tool.c:524,9'
          Dst:             message_address_parse
        - Src:             'sieve-tool.c:531,6'
          Dst:             smtp_address_create_from_msg_temp
    - functionName:    sieve_tool_get_envelope_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          155
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - malloc_multiply_check
        - sieve_tool_get_address
        - smtp_address_create_temp
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:546,12'
          Dst:             sieve_tool_get_address
        - Src:             'sieve-tool.c:548,12'
          Dst:             sieve_tool_get_address
        - Src:             'sieve-tool.c:550,12'
          Dst:             sieve_tool_get_address
        - Src:             'sieve-tool.c:552,12'
          Dst:             smtp_address_create_temp
        - Src:             'sieve-tool.c:556,16'
          Dst:             sieve_tool_get_address
        - Src:             'sieve-tool.c:558,16'
          Dst:             sieve_tool_get_address
        - Src:             'sieve-tool.c:560,16'
          Dst:             smtp_address_create_temp
        - Src:             'sieve-tool.c:569,16'
          Dst:             malloc_multiply_check
        - Src:             'sieve-tool.c:569,16'
          Dst:             t_malloc0
    - 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:             'dovecot/src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    sieve_tool_get_mail_storage_service
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_tool_init_mail_raw_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:507,2'
          Dst:             sieve_tool_init_mail_raw_user
    - functionName:    sieve_tool_init_mail_raw_user
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_raw_user_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:403,25'
          Dst:             mail_raw_user_create
    - functionName:    sieve_tool_get_mail_raw_user
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_tool_init_mail_raw_user
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:500,2'
          Dst:             sieve_tool_init_mail_raw_user
    - functionName:    sieve_tool_get_mail_user
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_tool_get_username
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sieve_tool_get_user_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:470,3'
          Dst:             sieve_tool_get_user_data
    - functionName:    sieve_tool_get_user_data
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          140
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - dec2str
        - getenv
        - geteuid
        - getpwuid
        - i_fatal
        - t_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:93,23'
          Dst:             geteuid
        - Src:             'sieve-tool.c:97,9'
          Dst:             getenv
        - Src:             'sieve-tool.c:98,9'
          Dst:             getenv
        - Src:             'sieve-tool.c:101,8'
          Dst:             getpwuid
        - Src:             'sieve-tool.c:111,5'
          Dst:             dec2str
        - Src:             'sieve-tool.c:110,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:114,17'
          Dst:             t_strdup
        - Src:             'sieve-tool.c:118,16'
          Dst:             t_strdup
    - 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:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_tool_set_setting_callback
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sieve_tool_set_homedir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_user_set_home
        - p_strdup
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:440,2'
          Dst:             i_panic
        - Src:             'sieve-tool.c:442,31'
          Dst:             strcmp
        - Src:             'sieve-tool.c:445,18'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:448,3'
          Dst:             mail_user_set_home
        - Src:             'sieve-tool.c:450,3'
          Dst:             mail_user_set_home
    - functionName:    sieve_tool_open_data_as_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_raw_close
        - mail_raw_open_data
        - sieve_tool_init_mail_raw_user
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:424,2'
          Dst:             sieve_tool_init_mail_raw_user
        - Src:             'sieve-tool.c:427,3'
          Dst:             mail_raw_close
        - Src:             'sieve-tool.c:429,19'
          Dst:             mail_raw_open_data
    - functionName:    sieve_tool_open_file_as_mail
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_raw_close
        - mail_raw_open_file
        - sieve_tool_init_mail_raw_user
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:411,2'
          Dst:             sieve_tool_init_mail_raw_user
        - Src:             'sieve-tool.c:414,3'
          Dst:             mail_raw_close
        - Src:             'sieve-tool.c:416,19'
          Dst:             mail_raw_open_file
    - functionName:    sieve_tool_get_homedir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_user_get_home
        - sieve_tool_get_user_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:485,6'
          Dst:             mail_user_get_home
        - Src:             'sieve-tool.c:488,2'
          Dst:             sieve_tool_get_user_data
    - functionName:    sieve_tool_init_mail_user
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          147
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - mail_namespaces_init_location
        - mail_storage_service_lookup_next
        - mail_storage_service_user_get_settings_instance
        - mail_user_init
        - mail_user_set_home
        - sieve_tool_get_homedir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:374,3'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'sieve-tool.c:381,6'
          Dst:             mail_storage_service_lookup_next
        - Src:             'sieve-tool.c:383,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:385,9'
          Dst:             sieve_tool_get_homedir
        - Src:             'sieve-tool.c:387,3'
          Dst:             mail_user_set_home
        - Src:             'sieve-tool.c:389,6'
          Dst:             mail_user_init
        - Src:             'sieve-tool.c:390,4'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:392,6'
          Dst:             mail_namespaces_init_location
        - Src:             'sieve-tool.c:394,3'
          Dst:             i_fatal
    - 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:    sieve_tool_deinit
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_raw_close
        - mail_storage_service_deinit
        - mail_user_unref
        - master_service_deinit
        - pool_unref
        - sieve_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:335,2'
          Dst:             sieve_deinit
        - Src:             'sieve-tool.c:340,3'
          Dst:             mail_raw_close
        - Src:             'sieve-tool.c:343,3'
          Dst:             mail_user_unref
        - Src:             'sieve-tool.c:348,3'
          Dst:             mail_user_unref
        - Src:             'sieve-tool.c:350,3'
          Dst:             mail_user_unref
        - Src:             'sieve-tool.c:352,2'
          Dst:             mail_storage_service_deinit
        - Src:             'sieve-tool.c:356,2'
          Dst:             pool_unref
        - Src:             'sieve-tool.c:359,2'
          Dst:             master_service_deinit
    - functionName:    sieve_tool_load_plugins
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - sieve_plugins_load
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:223,12'
          Dst:             array_get_i
        - Src:             'sieve-tool.c:225,29'
          Dst:             strrchr
        - Src:             'sieve-tool.c:228,11'
          Dst:             t_strdup_until
        - Src:             'sieve-tool.c:235,3'
          Dst:             sieve_plugins_load
    - functionName:    sieve_tool_init_finish
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          312
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - array_count_i
        - i_fatal
        - mail_storage_service_init
        - mail_storage_service_lookup_next
        - mail_user_get_home
        - master_service_init_finish
        - master_service_settings_read_simple
        - my_hostdomain
        - p_strdup
        - sieve_init
        - sieve_set_extensions
        - sieve_tool_get_user_data
        - sieve_tool_load_plugins
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:252,6'
          Dst:             master_service_settings_read_simple
        - Src:             'sieve-tool.c:253,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:255,2'
          Dst:             master_service_init_finish
        - Src:             'sieve-tool.c:261,3'
          Dst:             sieve_tool_get_user_data
        - Src:             'sieve-tool.c:263,31'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:265,19'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:282,4'
          Dst:             t_strconcat
        - Src:             'sieve-tool.c:291,26'
          Dst:             mail_storage_service_init
        - Src:             'sieve-tool.c:293,6'
          Dst:             mail_storage_service_lookup_next
        - Src:             'sieve-tool.c:296,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:300,8'
          Dst:             mail_user_get_home
        - Src:             'sieve-tool.c:301,19'
          Dst:             my_hostdomain
        - Src:             'sieve-tool.c:310,6'
          Dst:             sieve_init
        - Src:             'sieve-tool.c:312,3'
          Dst:             i_fatal
        - Src:             'sieve-tool.c:315,6'
          Dst:             array_count_i
        - Src:             'sieve-tool.c:316,3'
          Dst:             sieve_tool_load_plugins
        - Src:             'sieve-tool.c:320,3'
          Dst:             sieve_set_extensions
        - Src:             'sieve-tool.c:322,3'
          Dst:             sieve_set_extensions
    - functionName:    sieve_tool_sieve_get_homedir
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sieve_tool_get_homedir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:79,9'
          Dst:             sieve_tool_get_homedir
    - 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:             'dovecot/src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sieve_tool_getopt
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - i_fatal_status
        - i_panic
        - master_getopt
        - p_strdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sieve-tool.c:184,3'
          Branch Sides:    []
      Callsites:
        - Src:             'sieve-tool.c:182,2'
          Dst:             i_panic
        - Src:             'sieve-tool.c:183,14'
          Dst:             master_getopt
        - Src:             'sieve-tool.c:188,5'
          Dst:             i_fatal_status
        - Src:             'sieve-tool.c:193,29'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:197,22'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:203,13'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:204,4'
          Dst:             array_append_i
    - functionName:    sieve_tool_init_fuzzer
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          67
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - master_service_init
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:160,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-tool.c:161,14'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:162,16'
          Dst:             malloc_multiply_check
        - Src:             'sieve-tool.c:162,16'
          Dst:             p_malloc
        - Src:             'sieve-tool.c:165,19'
          Dst:             master_service_init
        - Src:             'sieve-tool.c:168,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-tool.c:168,9'
          Dst:             p_malloc
        - Src:             'sieve-tool.c:174,2'
          Dst:             array_create_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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/mempool.h:119,3'
          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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dovecot/src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             'dovecot/src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             'dovecot/src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    sieve_tool_init
      functionSourceFile: '/src/pigeonhole/src/lib-sieve-tool/sieve-tool.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - master_service_init
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sieve-tool.c:135,15'
          Dst:             t_strconcat
        - Src:             'sieve-tool.c:136,19'
          Dst:             master_service_init
        - Src:             'sieve-tool.c:139,9'
          Dst:             pool_alloconly_create
        - Src:             'sieve-tool.c:140,9'
          Dst:             malloc_multiply_check
        - Src:             'sieve-tool.c:140,9'
          Dst:             p_malloc
        - Src:             'sieve-tool.c:142,15'
          Dst:             p_strdup
        - Src:             'sieve-tool.c:145,2'
          Dst:             array_create_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    binary_cte_filter_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_header_filter_add
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:78,9'
          Dst:             strlen
        - Src:             'index-mail-binary.c:77,3'
          Dst:             i_stream_header_filter_add
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    binary_copy_to
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - i_panic
        - i_stream_create_crlf
        - i_stream_create_limit
        - i_stream_seek
        - i_stream_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:50,2'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:58,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:59,11'
          Dst:             i_stream_create_limit
        - Src:             'index-mail-binary.c:60,11'
          Dst:             i_stream_create_crlf
        - Src:             'index-mail-binary.c:61,2'
          Dst:             i_stream_unref
        - Src:             'index-mail-binary.c:63,10'
          Dst:             array_append_space_i
        - Src:             'index-mail-binary.c:66,2'
          Dst:             i_stream_seek
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    binary_parts_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - index_mail_cache_add
        - message_binary_part_serialize
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:286,8'
          Dst:             pool_datastack_create
        - Src:             'index-mail-binary.c:286,8'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail-binary.c:287,2'
          Dst:             message_binary_part_serialize
        - Src:             'index-mail-binary.c:288,2'
          Dst:             index_mail_cache_add
    - functionName:    binary_parts_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          169
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - binary_parts_update
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:251,11'
          Dst:             array_get_modifiable_i
        - Src:             'index-mail-binary.c:253,3'
          Dst:             binary_parts_update
        - Src:             'index-mail-binary.c:274,21'
          Dst:             malloc_multiply_check
        - Src:             'index-mail-binary.c:274,21'
          Dst:             p_malloc
    - functionName:    blocks_count_lines
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          304
      EdgeCount:       59
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - i_stream_get_data_size
        - i_stream_have_bytes_left
        - i_stream_read_eof
        - i_stream_read_more
        - i_stream_skip
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:317,11'
          Dst:             array_get_modifiable_i
        - Src:             'index-mail-binary.c:323,16'
          Dst:             i_stream_read_more
        - Src:             'index-mail-binary.c:324,3'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:330,5'
          Dst:             i_stream_get_data_size
        - Src:             'index-mail-binary.c:331,4'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:335,15'
          Dst:             memchr
        - Src:             'index-mail-binary.c:340,3'
          Dst:             i_stream_skip
        - Src:             'index-mail-binary.c:343,7'
          Dst:             i_stream_read_eof
        - Src:             'index-mail-binary.c:346,5'
          Dst:             i_stream_read_eof
        - Src:             'index-mail-binary.c:346,5'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:355,2'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:358,2'
          Dst:             i_stream_have_bytes_left
        - Src:             'index-mail-binary.c:358,2'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:359,2'
          Dst:             i_panic
    - 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:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fd_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_close_fd_path
        - i_unlink
        - mail_event
        - mail_user_set_get_temp_prefix
        - safe_mkstemp_hostpid
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:213,9'
          Dst:             t_str_new
        - Src:             'index-mail-binary.c:214,2'
          Dst:             mail_user_set_get_temp_prefix
        - Src:             'index-mail-binary.c:215,7'
          Dst:             safe_mkstemp_hostpid
        - Src:             'index-mail-binary.c:217,3'
          Dst:             mail_event
        - Src:             'index-mail-binary.c:217,3'
          Dst:             str_c
        - Src:             'index-mail-binary.c:217,3'
          Dst:             e_error
        - Src:             'index-mail-binary.c:223,6'
          Dst:             str_c
        - Src:             'index-mail-binary.c:223,6'
          Dst:             i_unlink
        - Src:             'index-mail-binary.c:225,3'
          Dst:             i_close_fd_path
        - Src:             'index-mail-binary.c:228,12'
          Dst:             str_c
    - functionName:    blocks_get_streams
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - i_panic
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:298,11'
          Dst:             array_get_i
        - Src:             'index-mail-binary.c:299,12'
          Dst:             malloc_multiply_check
        - Src:             'index-mail-binary.c:299,12'
          Dst:             t_malloc0
        - Src:             'index-mail-binary.c:302,3'
          Dst:             i_panic
    - functionName:    binary_streams_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_get_modifiable_data
        - i_stream_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:236,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'index-mail-binary.c:237,3'
          Dst:             i_stream_unref
    - functionName:    add_binary_part
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          433
      EdgeCount:       66
      CyclomaticComplexity: 14
      functionsReached:
        - add_binary_part
        - array_append_space_i
        - binary_copy_to
        - binary_cte_filter_callback
        - i_panic
        - i_stream_create_base64_decoder
        - i_stream_create_crlf
        - i_stream_create_header_filter
        - i_stream_create_limit
        - i_stream_create_qp_decoder
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_seek
        - i_stream_unref
        - i_unreached
        - mail_set_critical
        - mail_storage_set_error
        - message_decoder_parse_cte
        - message_parse_header_deinit
        - message_parse_header_has_nuls
        - message_parse_header_init
        - message_parse_header_next
        - strcasecmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-mail-binary.c:182,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-mail-binary.c:100,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:103,11'
          Dst:             message_parse_header_init
        - Src:             'index-mail-binary.c:104,16'
          Dst:             message_parse_header_next
        - Src:             'index-mail-binary.c:105,7'
          Dst:             strcasecmp
        - Src:             'index-mail-binary.c:106,10'
          Dst:             message_decoder_parse_cte
        - Src:             'index-mail-binary.c:108,2'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:109,6'
          Dst:             message_parse_header_has_nuls
        - Src:             'index-mail-binary.c:114,2'
          Dst:             message_parse_header_deinit
        - Src:             'index-mail-binary.c:118,27'
          Dst:             i_stream_get_name
        - Src:             'index-mail-binary.c:119,4'
          Dst:             i_stream_get_error
        - Src:             'index-mail-binary.c:117,3'
          Dst:             mail_set_critical
        - Src:             'index-mail-binary.c:124,3'
          Dst:             mail_storage_set_error
        - Src:             'index-mail-binary.c:130,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:136,4'
          Dst:             binary_copy_to
        - Src:             'index-mail-binary.c:137,11'
          Dst:             array_append_space_i
        - Src:             'index-mail-binary.c:142,12'
          Dst:             i_stream_create_limit
        - Src:             'index-mail-binary.c:143,18'
          Dst:             i_stream_create_header_filter
        - Src:             'index-mail-binary.c:143,18'
          Dst:             binary_cte_filter_callback
        - Src:             'index-mail-binary.c:147,3'
          Dst:             i_stream_unref
        - Src:             'index-mail-binary.c:150,3'
          Dst:             binary_copy_to
        - Src:             'index-mail-binary.c:162,8'
          Dst:             add_binary_part
        - Src:             'index-mail-binary.c:165,3'
          Dst:             binary_copy_to
        - Src:             'index-mail-binary.c:176,10'
          Dst:             array_append_space_i
        - Src:             'index-mail-binary.c:179,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:181,11'
          Dst:             i_stream_create_limit
        - Src:             'index-mail-binary.c:184,3'
          Dst:             i_unreached
        - Src:             'index-mail-binary.c:190,18'
          Dst:             i_stream_create_crlf
        - Src:             'index-mail-binary.c:193,18'
          Dst:             i_stream_create_qp_decoder
        - Src:             'index-mail-binary.c:197,18'
          Dst:             i_stream_create_base64_decoder
        - Src:             'index-mail-binary.c:201,2'
          Dst:             i_stream_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    msg_part_find
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - msg_part_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:474,11'
          Dst:             msg_part_find
    - functionName:    get_cached_binary_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_create_dynamic
        - index_mail_cache_lookup_field
        - mail_set_mail_cache_corrupted
        - message_binary_part_deserialize
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:451,13'
          Dst:             pool_datastack_create
        - Src:             'index-mail-binary.c:451,13'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail-binary.c:452,8'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail-binary.c:456,6'
          Dst:             message_binary_part_deserialize
        - Src:             'index-mail-binary.c:459,3'
          Dst:             mail_set_mail_cache_corrupted
    - functionName:    index_mail_read_binary_to_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          298
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - add_binary_part
        - array_count_i
        - array_create_i
        - binary_parts_cache
        - binary_parts_update
        - binary_streams_free
        - blocks_count_lines
        - blocks_get_streams
        - fd_callback
        - i_panic
        - i_stream_create_from_data
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_have_bytes_left
        - i_stream_seek
        - i_stream_set_name
        - i_stream_unref
        - i_streams_merge
        - mail_get_stream_because
        - mail_set_critical
        - mail_storage_free_binary_cache
        - mail_storage_set_error
        - pool_datastack_create
        - t_strdup_printf
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:376,2'
          Dst:             pool_datastack_create
        - Src:             'index-mail-binary.c:376,2'
          Dst:             array_create_i
        - Src:             'index-mail-binary.c:378,2'
          Dst:             mail_storage_free_binary_cache
        - Src:             'index-mail-binary.c:379,6'
          Dst:             mail_get_stream_because
        - Src:             'index-mail-binary.c:382,6'
          Dst:             add_binary_part
        - Src:             'index-mail-binary.c:383,3'
          Dst:             binary_streams_free
        - Src:             'index-mail-binary.c:387,6'
          Dst:             array_count_i
        - Src:             'index-mail-binary.c:388,24'
          Dst:             blocks_get_streams
        - Src:             'index-mail-binary.c:388,8'
          Dst:             i_streams_merge
        - Src:             'index-mail-binary.c:388,8'
          Dst:             fd_callback
        - Src:             'index-mail-binary.c:392,8'
          Dst:             i_stream_create_from_data
        - Src:             'index-mail-binary.c:394,24'
          Dst:             t_strdup_printf
        - Src:             'index-mail-binary.c:394,2'
          Dst:             i_stream_set_name
        - Src:             'index-mail-binary.c:397,6'
          Dst:             blocks_count_lines
        - Src:             'index-mail-binary.c:400,4'
          Dst:             mail_storage_set_error
        - Src:             'index-mail-binary.c:405,8'
          Dst:             i_stream_get_name
        - Src:             'index-mail-binary.c:406,8'
          Dst:             i_stream_get_error
        - Src:             'index-mail-binary.c:404,4'
          Dst:             mail_set_critical
        - Src:             'index-mail-binary.c:408,3'
          Dst:             i_stream_unref
        - Src:             'index-mail-binary.c:409,3'
          Dst:             binary_streams_free
        - Src:             'index-mail-binary.c:414,15'
          Dst:             timeout_add
        - Src:             'index-mail-binary.c:414,15'
          Dst:             mail_storage_free_binary_cache
        - Src:             'index-mail-binary.c:424,2'
          Dst:             i_stream_have_bytes_left
        - Src:             'index-mail-binary.c:424,2'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:426,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:430,3'
          Dst:             binary_parts_update
        - Src:             'index-mail-binary.c:432,4'
          Dst:             binary_parts_cache
        - Src:             'index-mail-binary.c:434,2'
          Dst:             binary_streams_free
    - functionName:    index_mail_get_binary_properties
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          304
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - get_cached_binary_parts
        - index_mail_read_binary_to_cache
        - mail_get_parts
        - mail_set_cache_corrupted
        - message_parts_have_nuls
        - msg_part_find
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:494,6'
          Dst:             mail_get_parts
        - Src:             'index-mail-binary.c:498,6'
          Dst:             get_cached_binary_parts
        - Src:             'index-mail-binary.c:500,25'
          Dst:             message_parts_have_nuls
        - Src:             'index-mail-binary.c:503,7'
          Dst:             index_mail_read_binary_to_cache
        - Src:             'index-mail-binary.c:519,14'
          Dst:             msg_part_find
        - Src:             'index-mail-binary.c:522,62'
          Dst:             t_strdup_printf
        - Src:             'index-mail-binary.c:522,4'
          Dst:             mail_set_cache_corrupted
    - functionName:    index_mail_get_binary_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          259
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_stream_create_crlf
        - i_stream_create_limit
        - i_stream_ref
        - i_stream_seek
        - i_stream_unref
        - index_mail_get_binary_properties
        - index_mail_read_binary_to_cache
        - mail_storage_free_binary_cache
        - timeout_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-binary.c:568,10'
          Dst:             index_mail_get_binary_properties
        - Src:             'index-mail-binary.c:577,3'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:578,3'
          Dst:             timeout_reset
        - Src:             'index-mail-binary.c:582,7'
          Dst:             index_mail_read_binary_to_cache
        - Src:             'index-mail-binary.c:598,3'
          Dst:             i_panic
        - Src:             'index-mail-binary.c:599,3'
          Dst:             i_stream_seek
        - Src:             'index-mail-binary.c:602,11'
          Dst:             i_stream_create_crlf
        - Src:             'index-mail-binary.c:603,15'
          Dst:             i_stream_create_limit
        - Src:             'index-mail-binary.c:604,3'
          Dst:             i_stream_unref
        - Src:             'index-mail-binary.c:605,3'
          Dst:             mail_storage_free_binary_cache
        - Src:             'index-mail-binary.c:608,3'
          Dst:             i_stream_ref
    - functionName:    want_plain_bodystructure_cached
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_cache_field_want_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:722,6'
          Dst:             mail_cache_field_want_add
        - Src:             'index-mail.c:725,6'
          Dst:             mail_cache_field_want_add
    - functionName:    index_mail_body_parsed_cache_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          218
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - index_mail_cache_add_idx
        - mail_cache_field_want_add
        - message_part_data_is_plain_7bit
        - message_parts_have_nuls
        - want_plain_bodystructure_cached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:740,16'
          Dst:             mail_cache_field_want_add
        - Src:             'index-mail.c:744,6'
          Dst:             message_part_data_is_plain_7bit
        - Src:             'index-mail.c:745,22'
          Dst:             want_plain_bodystructure_cached
        - Src:             'index-mail.c:759,6'
          Dst:             message_parts_have_nuls
        - Src:             'index-mail.c:775,3'
          Dst:             index_mail_cache_add_idx
    - functionName:    index_mail_cache_add_idx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mail_cache_add
        - mail_index_get_header
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:676,9'
          Dst:             mail_index_get_header
        - Src:             'index-mail.c:684,3'
          Dst:             mail_cache_add
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_find_first_text_mime_part
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          239
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - index_mail_find_first_text_mime_part
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1076,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1079,6'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1084,6'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1089,6'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1097,4'
          Dst:             i_panic
        - Src:             'index-mail.c:1100,8'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1102,9'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1104,9'
          Dst:             strcasecmp
        - Src:             'index-mail.c:1115,4'
          Dst:             index_mail_find_first_text_mime_part
    - functionName:    index_mail_body_parsed_cache_message_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_create_dynamic
        - index_mail_cache_add_idx
        - mail_cache_field_exists
        - mail_cache_field_get_decision
        - message_part_serialize
        - pool_alloconly_create
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:791,6'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:797,13'
          Dst:             mail_cache_field_get_decision
        - Src:             'index-mail.c:811,16'
          Dst:             pool_alloconly_create
        - Src:             'index-mail.c:812,11'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail.c:813,2'
          Dst:             message_part_serialize
        - Src:             'index-mail.c:814,2'
          Dst:             index_mail_cache_add_idx
        - Src:             'index-mail.c:816,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_write_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_bodystructure_write
        - mail_set_cache_corrupted
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:829,6'
          Dst:             imap_bodystructure_write
        - Src:             'index-mail.c:831,3'
          Dst:             mail_set_cache_corrupted
    - functionName:    index_mail_cache_add_if_wanted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/./index-mail.h'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_cache_add
        - index_mail_want_cache
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './index-mail.h:281,14'
          Dst:             index_mail_want_cache
        - Src:             './index-mail.h:283,3'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_want_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          137
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - mail_cache_field_can_add
        - mail_cache_field_want_add
      functionUses:    9
      BranchProfiles:
        - Branch String:   'index-mail.c:932,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-mail.c:958,3'
          Dst:             i_unreached
        - Src:             'index-mail.c:970,10'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail.c:973,10'
          Dst:             mail_cache_field_want_add
    - functionName:    index_mail_cache_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_cache_add_idx
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:662,2'
          Dst:             index_mail_cache_add_idx
    - functionName:    index_mail_write_body_snippet
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          176
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_create_limit
        - i_stream_destroy
        - i_stream_seek
        - index_mail_cache_reason
        - index_mail_find_first_text_mime_part
        - mail_get_stream_because
        - message_snippet_generate
        - str_append
        - str_c
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1130,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1132,9'
          Dst:             index_mail_find_first_text_mime_part
        - Src:             'index-mail.c:1139,23'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail.c:1140,6'
          Dst:             mail_get_stream_because
        - Src:             'index-mail.c:1142,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1144,2'
          Dst:             i_stream_seek
        - Src:             'index-mail.c:1145,10'
          Dst:             i_stream_create_limit
        - Src:             'index-mail.c:1148,8'
          Dst:             str_new
        - Src:             'index-mail.c:1149,2'
          Dst:             str_append
        - Src:             'index-mail.c:1150,8'
          Dst:             message_snippet_generate
        - Src:             'index-mail.c:1152,29'
          Dst:             str_c
        - Src:             'index-mail.c:1153,2'
          Dst:             i_stream_destroy
        - Src:             'index-mail.c:1155,2'
          Dst:             i_stream_seek
    - functionName:    index_mail_cache_reason
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2662
      functionLinenumberEnd: 2665
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_get_missing_reason
        - t_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2664,3'
          Dst:             mail_cache_get_missing_reason
        - Src:             'index-mail.c:2665,9'
          Dst:             t_strdup_printf
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    index_mail_want_write_snippet
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1499
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_want_cache
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1501,9'
          Dst:             index_mail_want_cache
    - functionName:    index_mail_parse_bodystructure_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1507
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          170
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - get_cached_parts
        - i_panic
        - index_mail_cache_reason
        - index_mail_parse_body
        - index_mail_parse_headers
        - index_mail_want_write_snippet
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1513,6'
          Dst:             index_mail_want_write_snippet
        - Src:             'index-mail.c:1516,4'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail.c:1523,9'
          Dst:             get_cached_parts
        - Src:             'index-mail.c:1524,7'
          Dst:             index_mail_parse_headers
        - Src:             'index-mail.c:1531,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1534,9'
          Dst:             index_mail_parse_body
    - functionName:    get_cached_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          132
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - get_unserialized_parts
        - i_panic
        - index_mail_try_set_attachment_keywords
        - index_mail_want_attachment_keywords_on_fetch
        - message_parts_have_nuls
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:176,2'
          Dst:             t_push
        - Src:             'index-mail.c:177,10'
          Dst:             get_unserialized_parts
        - Src:             'index-mail.c:178,4'
          Dst:             t_pop
        - Src:             'index-mail.c:178,4'
          Dst:             i_panic
        - Src:             'index-mail.c:183,6'
          Dst:             message_parts_have_nuls
        - Src:             'index-mail.c:192,6'
          Dst:             index_mail_want_attachment_keywords_on_fetch
        - Src:             'index-mail.c:193,3'
          Dst:             index_mail_try_set_attachment_keywords
    - functionName:    index_mail_parse_body
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1359
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          128
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_seek
        - index_mail_parse_body_finish
        - index_mail_stream_check_failure
        - message_parser_parse_body
        - parse_bodystructure_part_header
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1338,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1341,2'
          Dst:             i_stream_seek
        - Src:             'index-mail.c:1346,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1347,3'
          Dst:             message_parser_parse_body
        - Src:             'index-mail.c:1347,3'
          Dst:             parse_bodystructure_part_header
        - Src:             'index-mail.c:1351,3'
          Dst:             message_parser_parse_body
        - Src:             'index-mail.c:1354,8'
          Dst:             index_mail_stream_check_failure
        - Src:             'index-mail.c:1355,6'
          Dst:             index_mail_parse_body_finish
        - Src:             'index-mail.c:1358,2'
          Dst:             i_stream_seek
    - functionName:    parse_bodystructure_part_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_part_data_parse_from_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:707,2'
          Dst:             message_part_data_parse_from_header
    - functionName:    index_mail_stream_check_failure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1281
      functionLinenumberEnd: 1286
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_stream_log_failure
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1284,2'
          Dst:             index_mail_stream_log_failure
    - functionName:    index_mail_parse_body_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          442
      EdgeCount:       98
      CyclomaticComplexity: 23
      functionsReached:
        - get_cached_msgpart_sizes
        - i_panic
        - i_stream_have_bytes_left
        - i_stream_read
        - i_stream_ref
        - i_stream_unref
        - i_unreached
        - index_mail_body_parsed_cache_bodystructure
        - index_mail_body_parsed_cache_flags
        - index_mail_body_parsed_cache_message_parts
        - index_mail_cache_dates
        - index_mail_cache_sizes
        - index_mail_parse_header_deinit
        - index_mail_parts_reset
        - index_mail_set_message_parts_corrupted
        - index_mail_stream_log_failure_for
        - index_mail_try_set_attachment_keywords
        - index_mail_want_attachment_keywords_on_fetch
        - mail_has_attachment_keywords
        - message_parser_deinit_from_parts
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1177,9'
          Dst:             message_parser_deinit_from_parts
        - Src:             'index-mail.c:1181,3'
          Dst:             i_stream_ref
        - Src:             'index-mail.c:1182,9'
          Dst:             message_parser_deinit_from_parts
        - Src:             'index-mail.c:1188,8'
          Dst:             i_stream_read
        - Src:             'index-mail.c:1189,8'
          Dst:             i_stream_have_bytes_left
        - Src:             'index-mail.c:1190,5'
          Dst:             i_unreached
        - Src:             'index-mail.c:1221,4'
          Dst:             index_mail_stream_log_failure_for
        - Src:             'index-mail.c:1224,3'
          Dst:             i_stream_unref
        - Src:             'index-mail.c:1228,4'
          Dst:             i_panic
        - Src:             'index-mail.c:1229,4'
          Dst:             index_mail_set_message_parts_corrupted
        - Src:             'index-mail.c:1231,3'
          Dst:             index_mail_parts_reset
        - Src:             'index-mail.c:1235,4'
          Dst:             index_mail_parse_header_deinit
        - Src:             'index-mail.c:1239,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1240,3'
          Dst:             index_mail_parse_header_deinit
        - Src:             'index-mail.c:1247,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1257,8'
          Dst:             get_cached_msgpart_sizes
        - Src:             'index-mail.c:1259,2'
          Dst:             index_mail_body_parsed_cache_flags
        - Src:             'index-mail.c:1260,2'
          Dst:             index_mail_body_parsed_cache_message_parts
        - Src:             'index-mail.c:1261,2'
          Dst:             index_mail_body_parsed_cache_bodystructure
        - Src:             'index-mail.c:1262,2'
          Dst:             index_mail_cache_sizes
        - Src:             'index-mail.c:1263,2'
          Dst:             index_mail_cache_dates
        - Src:             'index-mail.c:1266,8'
          Dst:             mail_has_attachment_keywords
        - Src:             'index-mail.c:1267,4'
          Dst:             index_mail_try_set_attachment_keywords
        - Src:             'index-mail.c:1269,7'
          Dst:             index_mail_want_attachment_keywords_on_fetch
        - Src:             'index-mail.c:1270,4'
          Dst:             index_mail_try_set_attachment_keywords
    - functionName:    index_mail_stream_log_failure_for
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - index_mail_refresh_expunged
        - mail_set_critical
        - mailbox_get_last_internal_error
        - strstr
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1300,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1306,3'
          Dst:             index_mail_refresh_expunged
        - Src:             'index-mail.c:1312,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'index-mail.c:1314,3'
          Dst:             i_stream_get_name
        - Src:             'index-mail.c:1314,29'
          Dst:             i_stream_get_error
        - Src:             'index-mail.c:1313,26'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:1317,6'
          Dst:             strstr
        - Src:             'index-mail.c:1326,2'
          Dst:             mail_set_critical
    - functionName:    index_mail_set_message_parts_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - binary_to_hex
        - get_serialized_parts
        - mail_set_cache_corrupted
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:202,6'
          Dst:             get_serialized_parts
        - Src:             'index-mail.c:205,15'
          Dst:             binary_to_hex
        - Src:             'index-mail.c:208,29'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:207,2'
          Dst:             mail_set_cache_corrupted
    - functionName:    index_mail_parts_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_cached_msgpart_sizes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          103
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_cached_parts
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:482,9'
          Dst:             get_cached_parts
    - functionName:    index_mail_body_parsed_cache_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          360
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - index_mail_cache_add
        - index_mail_write_bodystructure
        - mail_cache_field_can_add
        - mail_cache_field_exists
        - mail_cache_field_get_decision
        - mail_cache_field_want_add
        - str_c
        - str_len
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:858,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:867,2'
          Dst:             i_panic
        - Src:             'index-mail.c:877,4'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail.c:881,4'
          Dst:             mail_cache_field_want_add
        - Src:             'index-mail.c:885,9'
          Dst:             str_new
        - Src:             'index-mail.c:886,7'
          Dst:             index_mail_write_bodystructure
        - Src:             'index-mail.c:887,26'
          Dst:             str_c
        - Src:             'index-mail.c:889,11'
          Dst:             str_c
        - Src:             'index-mail.c:889,23'
          Dst:             str_len
        - Src:             'index-mail.c:888,4'
          Dst:             index_mail_cache_add
        - Src:             'index-mail.c:894,4'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:900,8'
          Dst:             mail_cache_field_get_decision
        - Src:             'index-mail.c:908,4'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail.c:912,4'
          Dst:             mail_cache_field_want_add
        - Src:             'index-mail.c:917,9'
          Dst:             str_new
        - Src:             'index-mail.c:918,7'
          Dst:             index_mail_write_bodystructure
        - Src:             'index-mail.c:919,17'
          Dst:             str_c
        - Src:             'index-mail.c:921,11'
          Dst:             str_c
        - Src:             'index-mail.c:921,23'
          Dst:             str_len
        - Src:             'index-mail.c:920,4'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_cache_sizes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          153
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - index_mail_cache_add
        - index_mail_get_vsize_extension
        - index_mail_want_cache
        - mail_index_update_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1019,4'
          Dst:             index_mail_get_vsize_extension
        - Src:             'index-mail.c:1026,4'
          Dst:             mail_index_update_ext
        - Src:             'index-mail.c:1035,7'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:1036,4'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_cache_dates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1068
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - index_mail_cache_add
        - index_mail_cache_sent_date
        - index_mail_want_cache
        - time_to_uint32_trunc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1058,7'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:1059,8'
          Dst:             time_to_uint32_trunc
        - Src:             'index-mail.c:1060,4'
          Dst:             index_mail_cache_add
        - Src:             'index-mail.c:1066,6'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:1067,9'
          Dst:             index_mail_cache_sent_date
    - functionName:    index_mail_try_set_attachment_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_set_attachment_keywords
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:118,8'
          Dst:             mail_set_attachment_keywords
    - functionName:    index_mail_want_attachment_keywords_on_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_has_attachment_keywords
        - mailbox_is_readonly
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:131,4'
          Dst:             mailbox_is_readonly
        - Src:             'index-mail.c:132,4'
          Dst:             mail_has_attachment_keywords
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mail_cache_sent_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - index_mail_cache_add
        - mail_get_first_header
        - message_date_parse
        - strlen
        - time_to_uint32_trunc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:435,13'
          Dst:             mail_get_first_header
        - Src:             'index-mail.c:440,5'
          Dst:             strlen
        - Src:             'index-mail.c:439,7'
          Dst:             message_date_parse
        - Src:             'index-mail.c:445,25'
          Dst:             time_to_uint32_trunc
        - Src:             'index-mail.c:447,2'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_get_vsize_extension
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup_ext
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:503,2'
          Dst:             mail_index_lookup_ext
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_serialized_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - index_mail_cache_lookup_field
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:140,16'
          Dst:             pool_datastack_create
        - Src:             'index-mail.c:140,16'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail.c:141,9'
          Dst:             index_mail_cache_lookup_field
    - functionName:    index_mail_cache_lookup_field
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_cache_decision_add
        - mail_cache_field_get_decision
        - mail_cache_lookup_field
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:89,8'
          Dst:             mail_cache_lookup_field
        - Src:             'index-mail.c:96,6'
          Dst:             mail_cache_field_get_decision
        - Src:             'index-mail.c:99,3'
          Dst:             mail_cache_decision_add
    - functionName:    index_mail_refresh_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_is_expunged
        - mail_index_refresh
        - mail_set_expunged
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1290,2'
          Dst:             mail_index_refresh
        - Src:             'index-mail.c:1291,6'
          Dst:             mail_index_is_expunged
        - Src:             'index-mail.c:1292,3'
          Dst:             mail_set_expunged
    - functionName:    index_mail_stream_log_failure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_stream_log_failure_for
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1277,2'
          Dst:             index_mail_stream_log_failure_for
    - functionName:    get_unserialized_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - binary_to_hex
        - get_serialized_parts
        - mail_set_mail_cache_corrupted
        - message_part_deserialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:150,6'
          Dst:             get_serialized_parts
        - Src:             'index-mail.c:153,10'
          Dst:             message_part_deserialize
        - Src:             'index-mail.c:158,11'
          Dst:             binary_to_hex
        - Src:             'index-mail.c:156,3'
          Dst:             mail_set_mail_cache_corrupted
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_save_finish_make_snippet
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - index_mail_cache_add
        - index_mail_want_cache
        - index_mail_write_body_snippet
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:981,7'
          Dst:             index_mail_write_body_snippet
        - Src:             'index-mail.c:987,6'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:990,10'
          Dst:             strlen
        - Src:             'index-mail.c:988,3'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2649
      functionLinenumberEnd: 2659
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_save_finish_make_snippet
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2652,2'
          Dst:             index_mail_save_finish_make_snippet
        - Src:             'index-mail.c:2657,4'
          Dst:             p_strdup
    - functionName:    index_mail_opened
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2636
      functionLinenumberEnd: 2645
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - mail_opened_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2642,12'
          Dst:             event_reason_begin
        - Src:             'index-mail.c:2643,2'
          Dst:             mail_opened_event
        - Src:             'index-mail.c:2644,2'
          Dst:             event_reason_end
    - functionName:    index_mail_reset_vsize_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2560
      functionLinenumberEnd: 2569
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_map_get_ext_idx
        - mail_index_update_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2564,6'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'index-mail.c:2566,3'
          Dst:             mail_index_update_ext
    - functionName:    index_mail_set_cache_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2574
      functionLinenumberEnd: 2632
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          174
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_parts_reset
        - index_mail_reset_vsize_ext
        - mail_cache_transaction_reset
        - mail_set_critical
        - mail_set_mail_cache_corrupted
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-mail.c:2578,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-mail.c:2586,3'
          Dst:             index_mail_parts_reset
        - Src:             'index-mail.c:2587,3'
          Dst:             index_mail_reset_vsize_ext
        - Src:             'index-mail.c:2593,3'
          Dst:             index_mail_parts_reset
        - Src:             'index-mail.c:2594,3'
          Dst:             index_mail_reset_vsize_ext
        - Src:             'index-mail.c:2598,3'
          Dst:             index_mail_parts_reset
        - Src:             'index-mail.c:2611,16'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:2615,2'
          Dst:             mail_cache_transaction_reset
        - Src:             'index-mail.c:2620,3'
          Dst:             mail_set_critical
        - Src:             'index-mail.c:2624,3'
          Dst:             mail_set_mail_cache_corrupted
        - Src:             'index-mail.c:2628,3'
          Dst:             mail_set_mail_cache_corrupted
    - functionName:    index_mail_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2511
      functionLinenumberEnd: 2521
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_parse_body
        - index_mail_parse_headers
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2515,6'
          Dst:             index_mail_parse_headers
        - Src:             'index-mail.c:2518,10'
          Dst:             index_mail_parse_body
    - functionName:    index_mail_precache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2524
      functionLinenumberEnd: 2556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          170
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - index_mail_parse
        - mail_cache_field_exists_any
        - mail_get_physical_size
        - mail_get_received_date
        - mail_get_save_date
        - mail_get_special
        - mail_get_virtual_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2531,6'
          Dst:             mail_cache_field_exists_any
        - Src:             'index-mail.c:2540,3'
          Dst:             index_mail_parse
        - Src:             'index-mail.c:2542,9'
          Dst:             mail_get_received_date
        - Src:             'index-mail.c:2544,9'
          Dst:             mail_get_save_date
        - Src:             'index-mail.c:2546,9'
          Dst:             mail_get_virtual_size
        - Src:             'index-mail.c:2548,9'
          Dst:             mail_get_physical_size
        - Src:             'index-mail.c:2550,9'
          Dst:             mail_get_special
        - Src:             'index-mail.c:2552,9'
          Dst:             mail_get_special
        - Src:             'index-mail.c:2554,9'
          Dst:             mail_get_special
    - functionName:    index_mail_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2494
      functionLinenumberEnd: 2508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_generate_guid_128_hash
        - mail_get_special
        - mail_index_expunge
        - mail_index_expunge_guid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2500,6'
          Dst:             mail_get_special
        - Src:             'index-mail.c:2501,3'
          Dst:             mail_index_expunge
        - Src:             'index-mail.c:2503,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'index-mail.c:2504,3'
          Dst:             mail_index_expunge_guid
    - functionName:    index_mail_update_pvt_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2485
      functionLinenumberEnd: 2491
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_transaction_init_pvt
        - mail_index_update_modseq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2488,2'
          Dst:             index_transaction_init_pvt
        - Src:             'index-mail.c:2489,2'
          Dst:             mail_index_update_modseq
    - functionName:    index_mail_update_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2479
      functionLinenumberEnd: 2482
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_update_modseq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2480,2'
          Dst:             mail_index_update_modseq
    - functionName:    index_mail_update_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2459
      functionLinenumberEnd: 2476
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
        - mail_index_update_keywords
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2462,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:2463,3'
          Dst:             array_free_i
        - Src:             'index-mail.c:2464,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:2474,2'
          Dst:             mail_index_update_keywords
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    index_mail_update_pvt_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2396
      functionLinenumberEnd: 2419
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - index_mail_get_pvt
        - mail_index_lookup
        - mailbox_get_private_flags_mask
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-mail.c:2410,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-mail.c:2401,7'
          Dst:             index_mail_get_pvt
        - Src:             'index-mail.c:2407,8'
          Dst:             mail_index_lookup
        - Src:             'index-mail.c:2408,31'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-mail.c:2418,2'
          Dst:             i_unreached
    - functionName:    index_mail_get_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - index_transaction_init_pvt
        - mail_index_lookup_seq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:252,2'
          Dst:             i_panic
        - Src:             'index-mail.c:254,2'
          Dst:             index_transaction_init_pvt
        - Src:             'index-mail.c:255,7'
          Dst:             mail_index_lookup_seq
    - functionName:    index_mail_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2423
      functionLinenumberEnd: 2455
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          148
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - index_mail_update_pvt_flags
        - mail_index_update_flags
        - mailbox_get_private_flags_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2432,20'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-mail.c:2435,7'
          Dst:             index_mail_update_pvt_flags
        - Src:             'index-mail.c:2436,4'
          Dst:             mail_index_update_flags
        - Src:             'index-mail.c:2447,3'
          Dst:             mail_index_update_flags
        - Src:             'index-mail.c:2453,2'
          Dst:             mail_index_update_flags
    - functionName:    index_mail_cache_parse_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2362
      functionLinenumberEnd: 2391
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - index_mail_cache_parse_continue
        - index_mail_parse_body_finish
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2373,4'
          Dst:             i_panic
        - Src:             'index-mail.c:2379,2'
          Dst:             index_mail_cache_parse_continue
        - Src:             'index-mail.c:2390,8'
          Dst:             index_mail_parse_body_finish
    - functionName:    index_mail_cache_parse_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2340
      functionLinenumberEnd: 2358
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - index_mail_parse_header
        - message_parser_parse_next_block
        - message_part_data_parse_from_header
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2344,9'
          Dst:             message_parser_parse_next_block
        - Src:             'index-mail.c:2350,4'
          Dst:             index_mail_parse_header
        - Src:             'index-mail.c:2354,4'
          Dst:             message_part_data_parse_from_header
    - functionName:    index_mail_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2315
      functionLinenumberEnd: 2337
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          129
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
        - buffer_free
        - event_unref
        - i_panic
        - mailbox_header_lookup_unref
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2321,2'
          Dst:             i_panic
        - Src:             'index-mail.c:2324,2'
          Dst:             buffer_free
        - Src:             'index-mail.c:2325,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:2326,3'
          Dst:             array_free_i
        - Src:             'index-mail.c:2327,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:2328,3'
          Dst:             array_free_i
        - Src:             'index-mail.c:2329,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:2330,3'
          Dst:             array_free_i
        - Src:             'index-mail.c:2332,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail.c:2333,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail.c:2334,2'
          Dst:             event_unref
        - Src:             'index-mail.c:2335,2'
          Dst:             pool_unref
        - Src:             'index-mail.c:2336,2'
          Dst:             pool_unref
    - functionName:    index_mail_set_uid_cache_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2308
      functionLinenumberEnd: 2312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          44
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mail_add_temp_wanted_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2276
      functionLinenumberEnd: 2305
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_update_access_parts_pre
        - mailbox_header_lookup_merge
        - mailbox_header_lookup_ref
        - mailbox_header_lookup_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2286,3'
          Dst:             mailbox_header_lookup_ref
        - Src:             'index-mail.c:2289,24'
          Dst:             mailbox_header_lookup_merge
        - Src:             'index-mail.c:2291,3'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail.c:2294,2'
          Dst:             index_mail_update_access_parts_pre
    - functionName:    index_mail_update_access_parts_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1991
      functionLinenumberEnd: 2130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         92
      ICount:          675
      EdgeCount:       128
      CyclomaticComplexity: 38
      functionsReached:
        - check_envelope
        - index_mail_get_fixed_field
        - mail_cache_field_exists
        - mail_has_attachment_keywords
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2011,9'
          Dst:             index_mail_get_fixed_field
        - Src:             'index-mail.c:2031,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2042,3'
          Dst:             check_envelope
        - Src:             'index-mail.c:2054,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2056,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2072,21'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2087,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2099,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:2126,7'
          Dst:             mail_has_attachment_keywords
    - functionName:    index_mail_get_fixed_field
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_from_data
        - i_panic
        - index_mail_cache_lookup_field
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:221,2'
          Dst:             buffer_create_from_data
        - Src:             'index-mail.c:222,6'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail.c:225,3'
          Dst:             i_panic
    - functionName:    check_envelope
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1960
      functionLinenumberEnd: 1988
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          120
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_cache_field_exists
        - mail_cache_register_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1972,6'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail.c:1979,20'
          Dst:             mail_cache_register_lookup
        - Src:             'index-mail.c:1982,6'
          Dst:             mail_cache_field_exists
    - functionName:    index_mail_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2258
      functionLinenumberEnd: 2271
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_set_seq
        - mail_index_lookup_seq
        - mail_set_expunged
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2262,6'
          Dst:             mail_index_lookup_seq
        - Src:             'index-mail.c:2263,3'
          Dst:             index_mail_set_seq
        - Src:             'index-mail.c:2268,3'
          Dst:             mail_set_expunged
    - functionName:    index_mail_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2165
      functionLinenumberEnd: 2212
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          173
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mail_update_access_parts_post
        - index_mail_update_access_parts_pre
        - mail_index_lookup_full
        - mail_index_view_is_inconsistent
        - mail_set_expunged
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2184,8'
          Dst:             mail_index_lookup_full
        - Src:             'index-mail.c:2191,2'
          Dst:             i_panic
        - Src:             'index-mail.c:2193,6'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'index-mail.c:2194,3'
          Dst:             mail_set_expunged
        - Src:             'index-mail.c:2201,3'
          Dst:             mail_set_expunged
        - Src:             'index-mail.c:2204,3'
          Dst:             index_mail_update_access_parts_pre
        - Src:             'index-mail.c:2205,3'
          Dst:             index_mail_update_access_parts_post
    - functionName:    index_mail_update_access_parts_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2133
      functionLinenumberEnd: 2162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mail_get_hdr_stream
        - mail_get_stream_because
        - mail_index_get_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2154,9'
          Dst:             mail_index_get_header
        - Src:             'index-mail.c:2157,11'
          Dst:             mail_get_stream_because
        - Src:             'index-mail.c:2159,11'
          Dst:             mail_get_hdr_stream
    - functionName:    index_mail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 2215
      functionLinenumberEnd: 2255
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          155
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_error
        - i_stream_get_fd
        - i_stream_get_name
        - mail_event
        - mail_get_stream_because
        - posix_fadvise
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:2234,9'
          Dst:             mail_get_stream_because
        - Src:             'index-mail.c:2240,7'
          Dst:             i_stream_get_fd
        - Src:             'index-mail.c:2246,16'
          Dst:             posix_fadvise
        - Src:             'index-mail.c:2246,8'
          Dst:             __errno_location
        - Src:             'index-mail.c:2247,4'
          Dst:             mail_event
        - Src:             'index-mail.c:2247,4'
          Dst:             i_stream_get_name
        - Src:             'index-mail.c:2247,4'
          Dst:             e_error
    - functionName:    posix_fadvise
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mail_reset_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1902
      functionLinenumberEnd: 1918
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          92
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init_data
        - p_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1904,2'
          Dst:             p_clear
        - Src:             'index-mail.c:1906,2'
          Dst:             index_mail_init_data
    - functionName:    index_mail_init_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1884
      functionLinenumberEnd: 1899
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_header_lookup_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1897,3'
          Dst:             mailbox_header_lookup_ref
    - functionName:    index_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 1957
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_unref
        - index_mail_cache_dates
        - index_mail_cache_sizes
        - index_mail_close_streams_full
        - index_mail_reset_data
        - mail_cache_close_mail
        - mailbox_header_lookup_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1936,2'
          Dst:             event_unref
        - Src:             'index-mail.c:1944,3'
          Dst:             index_mail_cache_sizes
        - Src:             'index-mail.c:1945,3'
          Dst:             index_mail_cache_dates
        - Src:             'index-mail.c:1948,2'
          Dst:             index_mail_close_streams_full
        - Src:             'index-mail.c:1952,2'
          Dst:             mail_cache_close_mail
        - Src:             'index-mail.c:1954,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail.c:1956,3'
          Dst:             index_mail_reset_data
    - functionName:    index_mail_close_streams_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1876
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          175
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_remove_destroy_callback
        - i_stream_unref
        - index_mail_set_message_parts_corrupted
        - index_mail_stream_destroy_callback
        - message_parser_deinit_from_parts
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1845,7'
          Dst:             message_parser_deinit_from_parts
        - Src:             'index-mail.c:1846,4'
          Dst:             index_mail_set_message_parts_corrupted
        - Src:             'index-mail.c:1851,2'
          Dst:             i_stream_unref
        - Src:             'index-mail.c:1860,4'
          Dst:             i_stream_remove_destroy_callback
        - Src:             'index-mail.c:1860,4'
          Dst:             index_mail_stream_destroy_callback
        - Src:             'index-mail.c:1863,3'
          Dst:             i_stream_unref
        - Src:             'index-mail.c:1870,5'
          Dst:             i_stream_get_name
        - Src:             'index-mail.c:1869,4'
          Dst:             i_panic
    - functionName:    index_mail_stream_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1367
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1364,2'
          Dst:             i_panic
    - functionName:    index_mail_close_streams
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1881
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_close_streams_full
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1880,2'
          Dst:             index_mail_close_streams_full
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    index_mail_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1816
      functionLinenumberEnd: 1836
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          118
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - index_mail_init_data
        - mailbox_header_lookup_ref
        - module_context_get_require
        - pool_alloconly_create
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1818,2'
          Dst:             array_create_i
        - Src:             'index-mail.c:1828,26'
          Dst:             pool_alloconly_create
        - Src:             'index-mail.c:1829,15'
          Dst:             module_context_get_require
        - Src:             'index-mail.c:1833,3'
          Dst:             mailbox_header_lookup_ref
        - Src:             'index-mail.c:1835,2'
          Dst:             index_mail_init_data
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1799
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1803,9'
          Dst:             pool_alloconly_create
        - Src:             'index-mail.c:1804,9'
          Dst:             malloc_multiply_check
        - Src:             'index-mail.c:1804,9'
          Dst:             p_malloc
        - Src:             'index-mail.c:1806,2'
          Dst:             index_mail_init
    - functionName:    index_mail_get_backend_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1790
      functionLinenumberEnd: 1792
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mail_fetch_body_snippet
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1620
      functionLinenumberEnd: 1646
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          148
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mail_cache_lookup_field
        - index_mail_parse_bodystructure
        - str_c
        - str_len
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1628,9'
          Dst:             str_new
        - Src:             'index-mail.c:1629,7'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail.c:1630,7'
          Dst:             str_len
        - Src:             'index-mail.c:1631,30'
          Dst:             str_c
        - Src:             'index-mail.c:1641,6'
          Dst:             index_mail_parse_bodystructure
        - Src:             'index-mail.c:1643,2'
          Dst:             i_panic
    - functionName:    index_mail_parse_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          349
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - index_mail_body_parsed_cache_bodystructure
        - index_mail_body_parsed_cache_message_parts
        - index_mail_cache_add_if_wanted
        - index_mail_parse_bodystructure_full
        - index_mail_want_cache
        - index_mail_want_write_snippet
        - index_mail_write_body_snippet
        - index_mail_write_bodystructure
        - str_c
        - str_new
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1546,3'
          Dst:             index_mail_body_parsed_cache_bodystructure
        - Src:             'index-mail.c:1548,7'
          Dst:             index_mail_parse_bodystructure_full
        - Src:             'index-mail.c:1557,8'
          Dst:             index_mail_parse_bodystructure_full
        - Src:             'index-mail.c:1561,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1564,6'
          Dst:             index_mail_want_write_snippet
        - Src:             'index-mail.c:1565,7'
          Dst:             index_mail_write_body_snippet
        - Src:             'index-mail.c:1570,13'
          Dst:             strlen
        - Src:             'index-mail.c:1568,3'
          Dst:             index_mail_cache_add_if_wanted
        - Src:             'index-mail.c:1572,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1578,7'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:1579,9'
          Dst:             str_new
        - Src:             'index-mail.c:1580,7'
          Dst:             index_mail_write_bodystructure
        - Src:             'index-mail.c:1582,16'
          Dst:             str_c
        - Src:             'index-mail.c:1585,25'
          Dst:             strlen
        - Src:             'index-mail.c:1584,3'
          Dst:             index_mail_cache_add_if_wanted
        - Src:             'index-mail.c:1590,7'
          Dst:             index_mail_want_cache
        - Src:             'index-mail.c:1591,9'
          Dst:             str_new
        - Src:             'index-mail.c:1592,7'
          Dst:             index_mail_write_bodystructure
        - Src:             'index-mail.c:1594,25'
          Dst:             str_c
        - Src:             'index-mail.c:1598,12'
          Dst:             strlen
        - Src:             'index-mail.c:1596,3'
          Dst:             index_mail_cache_add_if_wanted
        - Src:             'index-mail.c:1602,3'
          Dst:             index_mail_body_parsed_cache_message_parts
    - functionName:    index_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1732
      functionLinenumberEnd: 1786
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          238
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_unreached
        - index_mail_fetch_body_snippet
        - index_mail_get_cached_body
        - index_mail_get_cached_bodystructure
        - index_mail_headers_get_envelope
        - index_mail_parse_bodystructure
      functionUses:    6
      BranchProfiles:
        - Branch String:   'index-mail.c:1736,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-mail.c:1738,7'
          Dst:             index_mail_get_cached_body
        - Src:             'index-mail.c:1743,7'
          Dst:             index_mail_parse_bodystructure
        - Src:             'index-mail.c:1745,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1749,7'
          Dst:             index_mail_get_cached_bodystructure
        - Src:             'index-mail.c:1752,7'
          Dst:             index_mail_parse_bodystructure
        - Src:             'index-mail.c:1754,3'
          Dst:             i_panic
        - Src:             'index-mail.c:1759,8'
          Dst:             index_mail_headers_get_envelope
        - Src:             'index-mail.c:1769,10'
          Dst:             index_mail_fetch_body_snippet
        - Src:             'index-mail.c:1784,3'
          Dst:             i_unreached
    - functionName:    index_mail_get_cached_body
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1698
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          175
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - get_cached_parts
        - imap_body_parse_from_bodystructure
        - index_mail_cache_lookup_field
        - index_mail_get_plain_bodystructure
        - mail_set_cache_corrupted
        - p_strdup
        - str_c
        - str_free
        - str_new
        - str_truncate
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1664,8'
          Dst:             str_new
        - Src:             'index-mail.c:1666,6'
          Dst:             get_cached_parts
        - Src:             'index-mail.c:1667,3'
          Dst:             index_mail_get_plain_bodystructure
        - Src:             'index-mail.c:1668,27'
          Dst:             str_c
        - Src:             'index-mail.c:1673,6'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail.c:1674,27'
          Dst:             str_c
        - Src:             'index-mail.c:1678,6'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail.c:1680,35'
          Dst:             str_c
        - Src:             'index-mail.c:1680,4'
          Dst:             p_strdup
        - Src:             'index-mail.c:1681,3'
          Dst:             str_truncate
        - Src:             'index-mail.c:1683,7'
          Dst:             imap_body_parse_from_bodystructure
        - Src:             'index-mail.c:1687,36'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:1686,4'
          Dst:             mail_set_cache_corrupted
        - Src:             'index-mail.c:1691,28'
          Dst:             str_c
        - Src:             'index-mail.c:1696,2'
          Dst:             str_free
    - functionName:    index_mail_get_cached_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1728
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - get_cached_parts
        - index_mail_cache_lookup_field
        - index_mail_get_plain_bodystructure
        - index_mail_try_set_attachment_keywords
        - index_mail_want_attachment_keywords_on_fetch
        - str_c
        - str_free
        - str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1714,8'
          Dst:             str_new
        - Src:             'index-mail.c:1716,6'
          Dst:             get_cached_parts
        - Src:             'index-mail.c:1717,3'
          Dst:             index_mail_get_plain_bodystructure
        - Src:             'index-mail.c:1718,11'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail.c:1720,3'
          Dst:             str_free
        - Src:             'index-mail.c:1724,35'
          Dst:             str_c
        - Src:             'index-mail.c:1725,6'
          Dst:             index_mail_want_attachment_keywords_on_fetch
        - Src:             'index-mail.c:1726,3'
          Dst:             index_mail_try_set_attachment_keywords
    - functionName:    index_mail_get_plain_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append
        - str_printfa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1611,2'
          Dst:             str_printfa
        - Src:             'index-mail.c:1615,3'
          Dst:             str_append
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    index_mail_get_cached_body_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - index_mail_get_cached_virtual_size
        - mail_get_physical_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:592,7'
          Dst:             index_mail_get_cached_virtual_size
        - Src:             'index-mail.c:602,7'
          Dst:             mail_get_physical_size
        - Src:             'index-mail.c:604,10'
          Dst:             index_mail_get_cached_virtual_size
    - functionName:    index_mail_get_cached_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          168
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - get_cached_msgpart_sizes
        - index_mail_get_cached_uoff_t
        - index_mail_get_vsize_extension
        - index_mail_try_set_body_size
        - mail_index_update_ext
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:551,26'
          Dst:             index_mail_get_vsize_extension
        - Src:             'index-mail.c:557,7'
          Dst:             index_mail_get_cached_uoff_t
        - Src:             'index-mail.c:562,9'
          Dst:             get_cached_msgpart_sizes
        - Src:             'index-mail.c:566,2'
          Dst:             index_mail_try_set_body_size
        - Src:             'index-mail.c:574,3'
          Dst:             mail_index_update_ext
    - functionName:    index_mail_get_cached_uoff_t
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_get_fixed_field
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:234,9'
          Dst:             index_mail_get_fixed_field
    - functionName:    index_mail_try_set_body_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          147
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_set_cache_corrupted
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:523,31'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:522,4'
          Dst:             mail_set_cache_corrupted
        - Src:             'index-mail.c:529,30'
          Dst:             t_strdup_printf
        - Src:             'index-mail.c:528,4'
          Dst:             mail_set_cache_corrupted
    - functionName:    index_mail_init_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         112
      ICount:          652
      EdgeCount:       147
      CyclomaticComplexity: 37
      functionsReached:
        - get_cached_msgpart_sizes
        - get_cached_parts
        - i_panic
        - i_stream_add_destroy_callback
        - i_stream_create_mail
        - i_stream_seek
        - i_stream_unref
        - index_mail_get_cached_body_size
        - index_mail_parse_body
        - index_mail_parse_headers_internal
        - index_mail_stream_check_failure
        - index_mail_stream_destroy_callback
        - index_mail_stream_log_failure
        - index_mail_try_set_body_size
        - index_mail_want_attachment_keywords_on_fetch
        - message_get_body_size
        - message_get_header_size
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1391,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1392,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1393,2'
          Dst:             i_panic
        - Src:             'index-mail.c:1398,11'
          Dst:             i_stream_create_mail
        - Src:             'index-mail.c:1400,3'
          Dst:             i_stream_unref
        - Src:             'index-mail.c:1409,3'
          Dst:             i_stream_add_destroy_callback
        - Src:             'index-mail.c:1409,3'
          Dst:             index_mail_stream_destroy_callback
        - Src:             'index-mail.c:1414,3'
          Dst:             index_mail_want_attachment_keywords_on_fetch
        - Src:             'index-mail.c:1421,9'
          Dst:             get_cached_msgpart_sizes
        - Src:             'index-mail.c:1428,3'
          Dst:             i_stream_seek
        - Src:             'index-mail.c:1431,11'
          Dst:             get_cached_parts
        - Src:             'index-mail.c:1432,9'
          Dst:             index_mail_parse_headers_internal
        - Src:             'index-mail.c:1435,9'
          Dst:             message_get_header_size
        - Src:             'index-mail.c:1438,6'
          Dst:             index_mail_stream_log_failure
        - Src:             'index-mail.c:1451,4'
          Dst:             index_mail_get_cached_body_size
        - Src:             'index-mail.c:1453,4'
          Dst:             i_stream_seek
        - Src:             'index-mail.c:1456,9'
          Dst:             index_mail_parse_body
        - Src:             'index-mail.c:1459,9'
          Dst:             message_get_body_size
        - Src:             'index-mail.c:1462,6'
          Dst:             index_mail_stream_log_failure
        - Src:             'index-mail.c:1486,3'
          Dst:             index_mail_try_set_body_size
        - Src:             'index-mail.c:1488,8'
          Dst:             index_mail_stream_check_failure
        - Src:             'index-mail.c:1490,2'
          Dst:             i_stream_seek
    - functionName:    index_mail_set_read_buffer_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_set_init_buffer_size
        - i_stream_set_max_buffer_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:1374,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'index-mail.c:1377,2'
          Dst:             i_stream_set_init_buffer_size
    - functionName:    index_mail_cache_pop3_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_cache_add
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:696,16'
          Dst:             strlen
        - Src:             'index-mail.c:695,3'
          Dst:             index_mail_cache_add
        - Src:             'index-mail.c:699,3'
          Dst:             index_mail_cache_add
    - functionName:    index_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - get_cached_msgpart_sizes
        - index_mail_get_cached_uoff_t
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:648,7'
          Dst:             index_mail_get_cached_uoff_t
        - Src:             'index-mail.c:653,10'
          Dst:             get_cached_msgpart_sizes
    - functionName:    index_mail_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_seek
        - index_mail_cache_reason
        - index_mail_get_cached_virtual_size
        - mail_get_stream_because
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:618,6'
          Dst:             index_mail_get_cached_virtual_size
        - Src:             'index-mail.c:623,4'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail.c:622,6'
          Dst:             mail_get_stream_because
        - Src:             'index-mail.c:625,2'
          Dst:             i_stream_seek
        - Src:             'index-mail.c:627,2'
          Dst:             i_panic
    - functionName:    index_mail_get_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_cache_sent_date
        - index_mail_get_fixed_field
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:465,6'
          Dst:             index_mail_get_fixed_field
        - Src:             'index-mail.c:469,6'
          Dst:             index_mail_cache_sent_date
    - functionName:    index_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_get_fixed_field
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:416,7'
          Dst:             index_mail_get_fixed_field
    - functionName:    index_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_get_fixed_field
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:398,7'
          Dst:             index_mail_get_fixed_field
    - functionName:    index_mail_get_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - get_cached_parts
        - index_mail_cache_reason
        - index_mail_parse_body
        - index_mail_parse_headers
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:366,29'
          Dst:             get_cached_parts
        - Src:             'index-mail.c:373,4'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail.c:374,7'
          Dst:             index_mail_parse_headers
        - Src:             'index-mail.c:381,7'
          Dst:             index_mail_parse_body
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    index_mail_get_keyword_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_is_created_i
        - mail_index_lookup_keywords
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:351,7'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:352,3'
          Dst:             array_create_i
        - Src:             'index-mail.c:353,3'
          Dst:             mail_index_lookup_keywords
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    index_mail_get_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          125
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_get_i
        - array_idx_i
        - array_is_created_i
        - i_panic
        - index_mail_get_keyword_indexes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:324,6'
          Dst:             array_is_created_i
        - Src:             'index-mail.c:325,10'
          Dst:             array_idx_i
        - Src:             'index-mail.c:327,8'
          Dst:             index_mail_get_keyword_indexes
        - Src:             'index-mail.c:329,20'
          Dst:             array_get_i
        - Src:             'index-mail.c:330,10'
          Dst:             array_get_i
        - Src:             'index-mail.c:331,2'
          Dst:             array_create_i
        - Src:             'index-mail.c:334,3'
          Dst:             i_panic
        - Src:             'index-mail.c:337,3'
          Dst:             array_append_i
        - Src:             'index-mail.c:341,2'
          Dst:             array_append_space_i
        - Src:             'index-mail.c:342,9'
          Dst:             array_idx_i
    - functionName:    index_mail_get_pvt_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_transaction_init_pvt
        - mail_index_modseq_enable
        - mail_index_modseq_lookup
        - mailbox_open_index_pvt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:305,6'
          Dst:             mailbox_open_index_pvt
        - Src:             'index-mail.c:307,2'
          Dst:             index_transaction_init_pvt
        - Src:             'index-mail.c:309,2'
          Dst:             mail_index_modseq_enable
        - Src:             'index-mail.c:311,3'
          Dst:             mail_index_modseq_lookup
    - functionName:    index_mail_get_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_modseq_enable
        - mail_index_modseq_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:292,2'
          Dst:             mail_index_modseq_enable
        - Src:             'index-mail.c:294,3'
          Dst:             mail_index_modseq_lookup
    - functionName:    index_mail_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          118
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_get_pvt
        - mail_index_lookup
        - mailbox_get_private_flags_mask
        - mailbox_recent_flags_have_uid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:267,8'
          Dst:             mail_index_lookup
        - Src:             'index-mail.c:271,6'
          Dst:             mailbox_recent_flags_have_uid
        - Src:             'index-mail.c:274,6'
          Dst:             index_mail_get_pvt
        - Src:             'index-mail.c:276,20'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-mail.c:278,9'
          Dst:             mail_index_lookup
    - functionName:    index_mail_global_cache_fields_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail.c:80,9'
          Dst:             i_memdup
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_delete_all_attributes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          121
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - mailbox_attribute_iter_deinit
        - mailbox_attribute_iter_init
        - mailbox_attribute_iter_next
        - mailbox_attribute_unset
        - mailbox_get_last_mail_error
        - str_begins_with
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:739,9'
          Dst:             mailbox_attribute_iter_init
        - Src:             'index-storage.c:740,16'
          Dst:             mailbox_attribute_iter_next
        - Src:             'index-storage.c:742,7'
          Dst:             strncmp
        - Src:             'index-storage.c:742,7'
          Dst:             str_begins_with
        - Src:             'index-storage.c:745,7'
          Dst:             mailbox_attribute_unset
        - Src:             'index-storage.c:746,8'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-storage.c:752,6'
          Dst:             mailbox_attribute_iter_deinit
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_icase_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    set_cache_decisions
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - mail_cache_register_fields
        - mail_cache_register_get_field
        - mail_cache_register_lookup
        - message_header_name_is_valid
        - settings_boollist_get
        - str_begins_icase_with
        - strncasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:45,13'
          Dst:             settings_boollist_get
        - Src:             'index-storage.c:48,9'
          Dst:             mail_cache_register_lookup
        - Src:             'index-storage.c:50,13'
          Dst:             mail_cache_register_get_field
        - Src:             'index-storage.c:51,14'
          Dst:             strncasecmp
        - Src:             'index-storage.c:51,14'
          Dst:             str_begins_icase_with
        - Src:             'index-storage.c:56,8'
          Dst:             message_header_name_is_valid
        - Src:             'index-storage.c:61,5'
          Dst:             e_error
        - Src:             'index-storage.c:67,4'
          Dst:             e_error
        - Src:             'index-storage.c:74,3'
          Dst:             mail_cache_register_fields
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mailbox_fix_inconsistent_existence
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mailbox_get_path_to
        - mailbox_mkdir
        - mailbox_set_critical
        - mailbox_set_deleted
        - stat
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1297,6'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:1301,6'
          Dst:             strcmp
        - Src:             'index-storage.c:1303,13'
          Dst:             stat
        - Src:             'index-storage.c:1305,10'
          Dst:             mailbox_mkdir
        - Src:             'index-storage.c:1306,13'
          Dst:             __errno_location
        - Src:             'index-storage.c:1309,3'
          Dst:             mailbox_set_critical
        - Src:             'index-storage.c:1312,2'
          Dst:             mailbox_set_deleted
    - functionName:    index_storage_save_abort_last
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_transaction_reset
        - mail_index_expunge
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1278,2'
          Dst:             mail_index_expunge
        - Src:             'index-storage.c:1281,2'
          Dst:             mail_cache_transaction_reset
    - functionName:    index_storage_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1230
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read
        - i_unreached
        - index_mail_cache_parse_continue
        - mail_set_critical
        - mail_storage_set_error_from_errno
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_send_istream
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-storage.c:1234,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-storage.c:1234,11'
          Dst:             o_stream_send_istream
        - Src:             'index-storage.c:1240,4'
          Dst:             i_unreached
        - Src:             'index-storage.c:1245,9'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'index-storage.c:1248,6'
          Dst:             o_stream_get_name
        - Src:             'index-storage.c:1249,6'
          Dst:             o_stream_get_error
        - Src:             'index-storage.c:1246,5'
          Dst:             mail_set_critical
        - Src:             'index-storage.c:1254,4'
          Dst:             index_mail_cache_parse_continue
        - Src:             'index-storage.c:1259,11'
          Dst:             i_stream_read
        - Src:             'index-storage.c:1263,4'
          Dst:             i_stream_get_name
        - Src:             'index-storage.c:1263,30'
          Dst:             i_stream_get_error
        - Src:             'index-storage.c:1262,3'
          Dst:             mail_set_critical
    - functionName:    index_storage_expunging_want_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1185
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - index_mailbox_vsize_update_deinit
        - index_mailbox_vsize_update_init
        - index_mailbox_vsize_want_updates
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1177,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:1180,2'
          Dst:             i_panic
        - Src:             'index-storage.c:1182,23'
          Dst:             index_mailbox_vsize_update_init
        - Src:             'index-storage.c:1183,8'
          Dst:             index_mailbox_vsize_want_updates
        - Src:             'index-storage.c:1184,2'
          Dst:             index_mailbox_vsize_update_deinit
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    index_storage_expunging_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_vsize_update_deinit
        - index_mailbox_vsize_update_init
        - index_mailbox_vsize_update_wait_lock
        - index_mailbox_vsize_want_updates
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1156,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:1161,23'
          Dst:             index_mailbox_vsize_update_init
        - Src:             'index-storage.c:1162,7'
          Dst:             index_mailbox_vsize_want_updates
        - Src:             'index-storage.c:1163,7'
          Dst:             index_mailbox_vsize_update_wait_lock
        - Src:             'index-storage.c:1164,3'
          Dst:             index_mailbox_vsize_update_deinit
    - functionName:    index_storage_expunged_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - index_storage_expunged_sync_begin
        - index_storage_expunging_deinit
        - index_storage_expunging_init
        - index_storage_expunging_want_updates
        - mail_index_sync_begin
        - mail_index_sync_has_expunges
        - mail_index_sync_have_any_expunges
        - mail_index_sync_rollback
        - mailbox_set_index_error
        - module_context_get_require
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1194,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:1199,6'
          Dst:             mail_index_sync_have_any_expunges
        - Src:             'index-storage.c:1200,3'
          Dst:             index_storage_expunging_init
        - Src:             'index-storage.c:1202,8'
          Dst:             mail_index_sync_begin
        - Src:             'index-storage.c:1209,4'
          Dst:             mailbox_set_index_error
        - Src:             'index-storage.c:1211,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'index-storage.c:1215,6'
          Dst:             mail_index_sync_has_expunges
        - Src:             'index-storage.c:1216,6'
          Dst:             index_storage_expunging_want_updates
        - Src:             'index-storage.c:1219,3'
          Dst:             mail_index_sync_rollback
        - Src:             'index-storage.c:1220,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'index-storage.c:1221,10'
          Dst:             index_storage_expunged_sync_begin
    - functionName:    index_storage_expunging_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mailbox_vsize_update_deinit
        - module_context_get_require
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1169,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:1172,3'
          Dst:             index_mailbox_vsize_update_deinit
    - functionName:    index_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_deinit
        - dict_wait
        - fs_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1148,3'
          Dst:             dict_wait
        - Src:             'index-storage.c:1149,3'
          Dst:             dict_deinit
        - Src:             'index-storage.c:1151,2'
          Dst:             fs_unref
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          170
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - i_unreached
        - mail_namespace_find_subscribable
        - mail_storage_copy_list_error
        - mail_storage_set_error
        - mailbox_list_add_change
        - mailbox_list_set_subscribed
        - mailbox_name_get_sha128
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1114,8'
          Dst:             mail_namespace_find_subscribable
        - Src:             'index-storage.c:1117,4'
          Dst:             mail_storage_set_error
        - Src:             'index-storage.c:1123,15'
          Dst:             t_strconcat
        - Src:             'index-storage.c:1125,8'
          Dst:             str_begins
        - Src:             'index-storage.c:1125,8'
          Dst:             strlen
        - Src:             'index-storage.c:1125,8'
          Dst:             strncmp
        - Src:             'index-storage.c:1125,8'
          Dst:             strlen
        - Src:             'index-storage.c:1125,8'
          Dst:             str_begins_builtin_success
        - Src:             'index-storage.c:1126,4'
          Dst:             i_unreached
        - Src:             'index-storage.c:1130,6'
          Dst:             mailbox_list_set_subscribed
        - Src:             'index-storage.c:1131,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'index-storage.c:1139,2'
          Dst:             mailbox_name_get_sha128
        - Src:             'index-storage.c:1140,2'
          Dst:             mailbox_list_add_change
    - functionName:    index_copy_vsize_extension
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_get_vsize_extension
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1059,11'
          Dst:             index_mail_get_vsize_extension
        - Src:             'index-storage.c:1066,3'
          Dst:             mail_index_update_ext
    - functionName:    mail_copy_cache_field
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          236
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - buffer_append
        - buffer_set_used_size
        - i_memcpy
        - i_panic
        - mail_cache_add
        - mail_cache_lookup_field
        - mail_cache_register_get_field
        - mail_cache_register_lookup
        - strcmp
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:999,18'
          Dst:             mail_cache_register_lookup
        - Src:             'index-storage.c:1000,2'
          Dst:             i_panic
        - Src:             'index-storage.c:1002,19'
          Dst:             mail_cache_register_lookup
        - Src:             'index-storage.c:1007,15'
          Dst:             mail_cache_register_get_field
        - Src:             'index-storage.c:1015,2'
          Dst:             buffer_set_used_size
        - Src:             'index-storage.c:1016,6'
          Dst:             strcmp
        - Src:             'index-storage.c:1018,7'
          Dst:             time_to_uint32
        - Src:             'index-storage.c:1019,3'
          Dst:             buffer_append
        - Src:             'index-storage.c:1021,13'
          Dst:             mail_cache_lookup_field
        - Src:             'index-storage.c:1024,3'
          Dst:             buffer_set_used_size
        - Src:             'index-storage.c:1026,7'
          Dst:             strcmp
        - Src:             'index-storage.c:1027,7'
          Dst:             strcmp
        - Src:             'index-storage.c:1035,4'
          Dst:             i_panic
        - Src:             'index-storage.c:1036,4'
          Dst:             i_memcpy
        - Src:             'index-storage.c:1037,8'
          Dst:             strcmp
        - Src:             'index-storage.c:1047,3'
          Dst:             mail_cache_add
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    index_copy_cache_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - buffer_free
        - i_panic
        - i_unreached
        - index_copy_vsize_extension
        - mail_copy_cache_field
        - mailbox_get_metadata
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:1075,2'
          Dst:             t_push
        - Src:             'index-storage.c:1080,7'
          Dst:             mailbox_get_metadata
        - Src:             'index-storage.c:1083,4'
          Dst:             i_unreached
        - Src:             'index-storage.c:1087,7'
          Dst:             mailbox_get_metadata
        - Src:             'index-storage.c:1090,4'
          Dst:             i_unreached
        - Src:             'index-storage.c:1092,9'
          Dst:             buffer_create_dynamic
        - Src:             'index-storage.c:1094,4'
          Dst:             mail_copy_cache_field
        - Src:             'index-storage.c:1097,3'
          Dst:             index_copy_vsize_extension
        - Src:             'index-storage.c:1098,3'
          Dst:             buffer_free
        - Src:             'index-storage.c:1099,4'
          Dst:             t_pop
        - Src:             'index-storage.c:1099,4'
          Dst:             i_panic
    - functionName:    index_save_context_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 987
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          101
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - index_attachment_save_free
        - index_mail_save_finish
        - mailbox_keywords_unref
        - p_free_internal
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:975,2'
          Dst:             i_panic
        - Src:             'index-storage.c:977,2'
          Dst:             index_mail_save_finish
        - Src:             'index-storage.c:979,3'
          Dst:             mailbox_keywords_unref
        - Src:             'index-storage.c:980,2'
          Dst:             p_free_internal
        - Src:             'index-storage.c:981,2'
          Dst:             p_free_internal
        - Src:             'index-storage.c:982,2'
          Dst:             p_free_internal
        - Src:             'index-storage.c:983,2'
          Dst:             index_attachment_save_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_view_is_inconsistent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:970,3'
          Dst:             mail_index_view_is_inconsistent
    - functionName:    index_storage_is_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 963
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mailbox_update_last_temp_file_scan
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 960
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mailbox_view_update_last_temp_file_scan
        - mailbox_set_index_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:955,6'
          Dst:             index_mailbox_view_update_last_temp_file_scan
        - Src:             'index-storage.c:956,3'
          Dst:             mailbox_set_index_error
    - functionName:    index_mailbox_view_update_last_temp_file_scan
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:943,33'
          Dst:             time_to_uint32
        - Src:             'index-storage.c:945,3'
          Dst:             mail_index_transaction_begin
        - Src:             'index-storage.c:947,2'
          Dst:             mail_index_update_header
        - Src:             'index-storage.c:950,9'
          Dst:             mail_index_transaction_commit
    - functionName:    index_storage_mailbox_rename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          95
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
        - mail_storage_copy_list_error
        - mailbox_list_add_change
        - mailbox_name_get_sha128
        - mailbox_open
        - time_to_uint32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:917,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'index-storage.c:921,6'
          Dst:             mailbox_open
        - Src:             'index-storage.c:923,4'
          Dst:             mail_index_transaction_begin
        - Src:             'index-storage.c:925,20'
          Dst:             time_to_uint32
        - Src:             'index-storage.c:927,3'
          Dst:             mail_index_update_header_ext
        - Src:             'index-storage.c:931,9'
          Dst:             mail_index_transaction_commit
        - Src:             'index-storage.c:936,2'
          Dst:             mailbox_name_get_sha128
        - Src:             'index-storage.c:937,2'
          Dst:             mailbox_list_add_change
    - functionName:    index_storage_mailbox_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_mailbox_delete_post
        - index_storage_mailbox_delete_pre
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:902,13'
          Dst:             index_storage_mailbox_delete_pre
        - Src:             'index-storage.c:908,9'
          Dst:             index_storage_mailbox_delete_post
    - functionName:    index_storage_mailbox_delete_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          187
      EdgeCount:       48
      CyclomaticComplexity: 15
      functionsReached:
        - index_storage_mailbox_delete_dir
        - mail_storage_set_error
        - mailbox_expunge_all_data
        - mailbox_get_open_status
        - mailbox_is_autocreated
        - mailbox_list_delete_symlink
        - mailbox_mark_index_deleted
        - mailbox_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:811,7'
          Dst:             index_storage_mailbox_delete_dir
        - Src:             'index-storage.c:813,7'
          Dst:             mailbox_is_autocreated
        - Src:             'index-storage.c:826,7'
          Dst:             mailbox_list_delete_symlink
        - Src:             'index-storage.c:839,7'
          Dst:             mailbox_expunge_all_data
        - Src:             'index-storage.c:842,6'
          Dst:             mailbox_mark_index_deleted
        - Src:             'index-storage.c:846,7'
          Dst:             mailbox_sync
        - Src:             'index-storage.c:848,3'
          Dst:             mailbox_get_open_status
        - Src:             'index-storage.c:852,4'
          Dst:             mail_storage_set_error
        - Src:             'index-storage.c:856,4'
          Dst:             mail_storage_set_error
    - functionName:    index_storage_mailbox_delete_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - index_storage_mailbox_delete_dir
        - index_storage_mailbox_unref_indexes
        - mail_index_alloc_cache_destroy_unrefed
        - mail_storage_copy_list_error
        - mailbox_close
        - mailbox_get_last_mail_error
        - mailbox_get_metadata
        - mailbox_list_add_change
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:869,13'
          Dst:             mailbox_get_metadata
        - Src:             'index-storage.c:875,2'
          Dst:             mailbox_close
        - Src:             'index-storage.c:876,2'
          Dst:             index_storage_mailbox_unref_indexes
        - Src:             'index-storage.c:877,2'
          Dst:             mail_index_alloc_cache_destroy_unrefed
        - Src:             'index-storage.c:880,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'index-storage.c:885,3'
          Dst:             mailbox_list_add_change
        - Src:             'index-storage.c:889,6'
          Dst:             index_storage_mailbox_delete_dir
        - Src:             'index-storage.c:890,7'
          Dst:             mailbox_get_last_mail_error
    - functionName:    index_storage_mailbox_unref_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_alloc_cache_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:472,3'
          Dst:             mail_index_alloc_cache_unref
        - Src:             'index-storage.c:474,3'
          Dst:             mail_index_alloc_cache_unref
    - functionName:    index_storage_mailbox_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_storage_copy_list_error
        - mailbox_list_add_change
        - mailbox_list_delete_dir
        - mailbox_list_get_last_error
        - mailbox_name_get_sha128
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:713,6'
          Dst:             mailbox_list_delete_dir
        - Src:             'index-storage.c:716,2'
          Dst:             mailbox_list_get_last_error
        - Src:             'index-storage.c:718,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'index-storage.c:724,2'
          Dst:             mailbox_name_get_sha128
        - Src:             'index-storage.c:725,2'
          Dst:             mailbox_list_add_change
    - functionName:    mailbox_expunge_all_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          144
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - mail_expunge
        - mail_search_args_unref
        - mail_search_build_add_all
        - mail_search_build_init
        - mail_search_seqset_iter_deinit
        - mail_search_seqset_iter_init
        - mail_search_seqset_iter_next
        - mailbox_delete_all_attributes
        - mailbox_get_open_status
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_sync
        - mailbox_transaction_begin
        - mailbox_transaction_commit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:765,8'
          Dst:             mailbox_sync
        - Src:             'index-storage.c:767,2'
          Dst:             mailbox_get_open_status
        - Src:             'index-storage.c:769,16'
          Dst:             mail_search_build_init
        - Src:             'index-storage.c:770,2'
          Dst:             mail_search_build_add_all
        - Src:             'index-storage.c:772,16'
          Dst:             mail_search_seqset_iter_init
        - Src:             'index-storage.c:779,7'
          Dst:             mailbox_transaction_begin
        - Src:             'index-storage.c:780,9'
          Dst:             mailbox_search_init
        - Src:             'index-storage.c:781,10'
          Dst:             mailbox_search_next
        - Src:             'index-storage.c:782,4'
          Dst:             mail_expunge
        - Src:             'index-storage.c:784,9'
          Dst:             mailbox_search_deinit
        - Src:             'index-storage.c:785,7'
          Dst:             mailbox_transaction_commit
        - Src:             'index-storage.c:787,23'
          Dst:             mail_search_seqset_iter_next
        - Src:             'index-storage.c:789,2'
          Dst:             mail_search_seqset_iter_deinit
        - Src:             'index-storage.c:790,2'
          Dst:             mail_search_args_unref
        - Src:             'index-storage.c:792,6'
          Dst:             mailbox_transaction_begin
        - Src:             'index-storage.c:793,6'
          Dst:             mailbox_delete_all_attributes
        - Src:             'index-storage.c:794,6'
          Dst:             mailbox_delete_all_attributes
        - Src:             'index-storage.c:796,6'
          Dst:             mailbox_transaction_commit
        - Src:             'index-storage.c:800,6'
          Dst:             mailbox_sync
    - functionName:    index_storage_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          274
      EdgeCount:       67
      CyclomaticComplexity: 20
      functionsReached:
        - i_unreached
        - mail_storage_set_error
        - mailbox_exists
        - mailbox_get_path_to
        - mailbox_mkdir
        - mailbox_refresh_permissions
        - strrchr
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:644,13'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:648,3'
          Dst:             mail_storage_set_error
        - Src:             'index-storage.c:656,7'
          Dst:             strrchr
        - Src:             'index-storage.c:659,10'
          Dst:             t_strdup_until
        - Src:             'index-storage.c:662,13'
          Dst:             mailbox_mkdir
        - Src:             'index-storage.c:669,7'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:670,4'
          Dst:             i_unreached
        - Src:             'index-storage.c:671,15'
          Dst:             mailbox_mkdir
        - Src:             'index-storage.c:679,2'
          Dst:             mailbox_refresh_permissions
        - Src:             'index-storage.c:688,8'
          Dst:             mailbox_exists
        - Src:             'index-storage.c:694,4'
          Dst:             mail_storage_set_error
    - functionName:    index_storage_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          230
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - index_storage_mailbox_update_common
        - mail_index_get_header
        - mail_index_modseq_enable
        - mail_index_modseq_get_highest
        - mail_index_refresh
        - mail_index_reset
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header
        - mail_index_update_highest_modseq
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_open
        - mailbox_set_index_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:582,6'
          Dst:             mailbox_open
        - Src:             'index-storage.c:586,2'
          Dst:             mail_index_refresh
        - Src:             'index-storage.c:587,9'
          Dst:             mail_index_view_open
        - Src:             'index-storage.c:588,8'
          Dst:             mail_index_get_header
        - Src:             'index-storage.c:590,10'
          Dst:             mail_index_transaction_begin
        - Src:             'index-storage.c:598,4'
          Dst:             mail_index_reset
        - Src:             'index-storage.c:600,3'
          Dst:             mail_index_update_header
        - Src:             'index-storage.c:608,3'
          Dst:             mail_index_update_header
        - Src:             'index-storage.c:616,3'
          Dst:             mail_index_update_header
        - Src:             'index-storage.c:621,6'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-storage.c:622,3'
          Dst:             mail_index_modseq_enable
        - Src:             'index-storage.c:623,3'
          Dst:             mail_index_update_highest_modseq
        - Src:             'index-storage.c:627,13'
          Dst:             mail_index_transaction_commit
        - Src:             'index-storage.c:628,3'
          Dst:             mailbox_set_index_error
        - Src:             'index-storage.c:629,2'
          Dst:             mail_index_view_close
        - Src:             'index-storage.c:631,3'
          Dst:             index_storage_mailbox_update_common
    - functionName:    index_storage_mailbox_update_common
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_mailbox_update_cache
        - index_storage_mailbox_update_pvt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:565,3'
          Dst:             index_storage_mailbox_update_cache
        - Src:             'index-storage.c:568,7'
          Dst:             index_storage_mailbox_update_pvt
    - functionName:    index_storage_mailbox_update_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          208
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_idx_modifiable_i
        - mail_cache_register_fields
        - mail_cache_register_get_list
        - pool_datastack_create
        - pool_unref
        - str_begins_with
        - strcmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:494,15'
          Dst:             mail_cache_register_get_list
        - Src:             'index-storage.c:498,2'
          Dst:             pool_datastack_create
        - Src:             'index-storage.c:498,2'
          Dst:             array_create_i
        - Src:             'index-storage.c:502,8'
          Dst:             strcmp
        - Src:             'index-storage.c:507,14'
          Dst:             strncmp
        - Src:             'index-storage.c:507,14'
          Dst:             str_begins_with
        - Src:             'index-storage.c:520,3'
          Dst:             array_append_i
        - Src:             'index-storage.c:522,6'
          Dst:             array_count_i
        - Src:             'index-storage.c:524,9'
          Dst:             array_idx_modifiable_i
        - Src:             'index-storage.c:525,9'
          Dst:             array_count_i
        - Src:             'index-storage.c:523,3'
          Dst:             mail_cache_register_fields
        - Src:             'index-storage.c:528,2'
          Dst:             pool_unref
    - functionName:    index_storage_mailbox_update_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_modseq_enable
        - mail_index_modseq_get_highest
        - mail_index_refresh
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_highest_modseq
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_open_index_pvt
        - mailbox_set_index_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:539,13'
          Dst:             mailbox_open_index_pvt
        - Src:             'index-storage.c:542,2'
          Dst:             mail_index_refresh
        - Src:             'index-storage.c:543,9'
          Dst:             mail_index_view_open
        - Src:             'index-storage.c:544,10'
          Dst:             mail_index_transaction_begin
        - Src:             'index-storage.c:547,6'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-storage.c:548,3'
          Dst:             mail_index_modseq_enable
        - Src:             'index-storage.c:549,3'
          Dst:             mail_index_update_highest_modseq
        - Src:             'index-storage.c:553,13'
          Dst:             mail_index_transaction_commit
        - Src:             'index-storage.c:554,3'
          Dst:             mailbox_set_index_error
        - Src:             'index-storage.c:555,2'
          Dst:             mail_index_view_close
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_mailbox_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - index_storage_mailbox_unref_indexes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:479,2'
          Dst:             index_storage_mailbox_unref_indexes
        - Src:             'index-storage.c:480,2'
          Dst:             event_unref
    - functionName:    index_storage_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_unref
        - mail_index_close
        - mail_index_view_close
        - mailbox_watch_remove_all
        - module_context_get_require
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:449,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:451,2'
          Dst:             mailbox_watch_remove_all
        - Src:             'index-storage.c:452,2'
          Dst:             i_stream_unref
        - Src:             'index-storage.c:454,2'
          Dst:             mail_index_view_close
        - Src:             'index-storage.c:456,3'
          Dst:             mail_index_close
        - Src:             'index-storage.c:458,3'
          Dst:             mail_index_view_close
        - Src:             'index-storage.c:459,3'
          Dst:             mail_index_close
        - Src:             'index-storage.c:464,2'
          Dst:             p_free_internal
    - functionName:    index_storage_mailbox_enable
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_modseq_enable
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:439,4'
          Dst:             mail_index_modseq_enable
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          245
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - array_idx_set_i
        - event_want_level
        - i_panic
        - mail_storage_mailbox_create_event
        - mail_storage_settings_to_index_flags
        - mailbox_list_get_storage_name
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
        - p_strdup
        - strcmp
        - time
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:401,2'
          Dst:             i_panic
        - Src:             'index-storage.c:404,15'
          Dst:             p_strdup
        - Src:             'index-storage.c:406,9'
          Dst:             mailbox_list_get_storage_name
        - Src:             'index-storage.c:405,14'
          Dst:             p_strdup
        - Src:             'index-storage.c:408,22'
          Dst:             p_strdup
        - Src:             'index-storage.c:409,15'
          Dst:             mail_storage_mailbox_create_event
        - Src:             'index-storage.c:412,2'
          Dst:             array_create_i
        - Src:             'index-storage.c:413,2'
          Dst:             array_create_i
        - Src:             'index-storage.c:416,9'
          Dst:             malloc_multiply_check
        - Src:             'index-storage.c:416,9'
          Dst:             p_malloc
        - Src:             'index-storage.c:419,3'
          Dst:             mail_storage_settings_to_index_flags
        - Src:             'index-storage.c:422,6'
          Dst:             event_want_level
        - Src:             'index-storage.c:424,27'
          Dst:             time
        - Src:             'index-storage.c:425,2'
          Dst:             module_get_context_id
        - Src:             'index-storage.c:425,2'
          Dst:             array_idx_set_i
        - Src:             'index-storage.c:427,20'
          Dst:             strcmp
        - Src:             'index-storage.c:429,19'
          Dst:             strcmp
    - functionName:    index_cache_register_defaults
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_global_cache_fields_dup
        - mail_cache_register_fields
        - module_context_get_require
        - set_cache_decisions
        - settings_boollist_get
        - str_array_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:81,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:85,23'
          Dst:             index_mail_global_cache_fields_dup
        - Src:             'index-storage.c:86,2'
          Dst:             mail_cache_register_fields
        - Src:             'index-storage.c:90,21'
          Dst:             settings_boollist_get
        - Src:             'index-storage.c:90,6'
          Dst:             str_array_find
        - Src:             'index-storage.c:96,2'
          Dst:             set_cache_decisions
        - Src:             'index-storage.c:99,2'
          Dst:             set_cache_decisions
        - Src:             'index-storage.c:103,2'
          Dst:             set_cache_decisions
    - functionName:    index_storage_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          336
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - hook_mailbox_opened
        - i_panic
        - index_cache_register_defaults
        - index_storage_mailbox_alloc_index
        - index_thread_mailbox_opened
        - mail_index_close
        - mail_index_ext_register
        - mail_index_fsck
        - mail_index_get_cache
        - mail_index_get_keywords
        - mail_index_is_deleted
        - mail_index_is_in_memory
        - mail_index_modseq_enable
        - mail_index_move_to_memory
        - mail_index_open
        - mail_index_open_or_create
        - mail_index_view_open
        - mailbox_get_permissions
        - mailbox_set_critical
        - mailbox_set_deleted
        - mailbox_set_index_error
        - module_context_get_require
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:308,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:312,2'
          Dst:             i_panic
        - Src:             'index-storage.c:318,6'
          Dst:             index_storage_mailbox_alloc_index
        - Src:             'index-storage.c:322,8'
          Dst:             mailbox_get_permissions
        - Src:             'index-storage.c:324,8'
          Dst:             mail_index_open
        - Src:             'index-storage.c:327,4'
          Dst:             i_panic
        - Src:             'index-storage.c:328,4'
          Dst:             mailbox_set_index_error
        - Src:             'index-storage.c:332,7'
          Dst:             mail_index_move_to_memory
        - Src:             'index-storage.c:335,8'
          Dst:             mail_index_open_or_create
        - Src:             'index-storage.c:337,5'
          Dst:             i_panic
        - Src:             'index-storage.c:341,7'
          Dst:             mail_index_is_in_memory
        - Src:             'index-storage.c:342,4'
          Dst:             mailbox_set_critical
        - Src:             'index-storage.c:344,4'
          Dst:             mail_index_close
        - Src:             'index-storage.c:350,7'
          Dst:             mail_index_is_deleted
        - Src:             'index-storage.c:351,4'
          Dst:             mailbox_set_deleted
        - Src:             'index-storage.c:352,4'
          Dst:             mail_index_close
        - Src:             'index-storage.c:357,7'
          Dst:             mail_index_fsck
        - Src:             'index-storage.c:358,4'
          Dst:             mailbox_set_index_error
        - Src:             'index-storage.c:363,15'
          Dst:             mail_index_get_cache
        - Src:             'index-storage.c:364,2'
          Dst:             index_cache_register_defaults
        - Src:             'index-storage.c:365,14'
          Dst:             mail_index_view_open
        - Src:             'index-storage.c:366,24'
          Dst:             mail_index_get_keywords
        - Src:             'index-storage.c:368,3'
          Dst:             mail_index_ext_register
        - Src:             'index-storage.c:372,3'
          Dst:             mail_index_ext_register
        - Src:             'index-storage.c:375,3'
          Dst:             mail_index_ext_register
        - Src:             'index-storage.c:378,3'
          Dst:             mail_index_ext_register
        - Src:             'index-storage.c:380,27'
          Dst:             mail_index_ext_register
        - Src:             'index-storage.c:387,3'
          Dst:             mail_index_modseq_enable
        - Src:             'index-storage.c:389,2'
          Dst:             index_thread_mailbox_opened
        - Src:             'index-storage.c:390,2'
          Dst:             hook_mailbox_opened
    - functionName:    index_storage_mailbox_alloc_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          197
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - index_mailbox_alloc_index
        - mail_index_set_cache_dir
        - mail_index_set_fsync_mode
        - mail_index_set_lock_method
        - mail_index_set_optimization_settings
        - mail_storage_get_lock_timeout
        - mailbox_create_missing_dir
        - mailbox_get_path_to
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:261,6'
          Dst:             mailbox_create_missing_dir
        - Src:             'index-storage.c:263,6'
          Dst:             index_mailbox_alloc_index
        - Src:             'index-storage.c:266,6'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:268,7'
          Dst:             mailbox_create_missing_dir
        - Src:             'index-storage.c:270,3'
          Dst:             mail_index_set_cache_dir
        - Src:             'index-storage.c:272,2'
          Dst:             mail_index_set_fsync_mode
        - Src:             'index-storage.c:276,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'index-storage.c:274,2'
          Dst:             mail_index_set_lock_method
        - Src:             'index-storage.c:302,2'
          Dst:             mail_index_set_optimization_settings
    - functionName:    index_mailbox_alloc_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_alloc_cache_get
        - mailbox_get_path_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:171,6'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:175,6'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:179,13'
          Dst:             mail_index_alloc_cache_get
    - functionName:    index_storage_mailbox_exists_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          248
      EdgeCount:       65
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - mailbox_get_last_mail_error
        - mailbox_get_path_to
        - mailbox_set_critical
        - stat
        - strcmp
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:204,8'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:206,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-storage.c:219,3'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:220,17'
          Dst:             strcmp
        - Src:             'index-storage.c:225,16'
          Dst:             t_strconcat
        - Src:             'index-storage.c:227,7'
          Dst:             stat
        - Src:             'index-storage.c:234,10'
          Dst:             t_strconcat
        - Src:             'index-storage.c:235,6'
          Dst:             stat
        - Src:             'index-storage.c:239,7'
          Dst:             __errno_location
        - Src:             'index-storage.c:239,7'
          Dst:             __errno_location
        - Src:             'index-storage.c:239,7'
          Dst:             __errno_location
        - Src:             'index-storage.c:239,7'
          Dst:             __errno_location
        - Src:             'index-storage.c:239,27'
          Dst:             __errno_location
        - Src:             'index-storage.c:240,3'
          Dst:             mailbox_set_critical
        - Src:             'index-storage.c:245,6'
          Dst:             mailbox_get_path_to
        - Src:             'index-storage.c:246,7'
          Dst:             strcmp
        - Src:             'index-storage.c:246,35'
          Dst:             stat
    - functionName:    index_storage_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_mailbox_exists_full
        - mailbox_is_autocreated
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:188,20'
          Dst:             mailbox_is_autocreated
        - Src:             'index-storage.c:193,9'
          Dst:             index_storage_mailbox_exists_full
    - functionName:    index_storage_lock_notify_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_context_get_require
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-storage.c:160,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:162,27'
          Dst:             time
    - functionName:    index_storage_lock_notify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          182
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - module_context_get_require
        - t_strdup_printf
        - time
      functionUses:    5
      BranchProfiles:
        - Branch String:   'index-storage.c:134,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-storage.c:113,39'
          Dst:             module_context_get_require
        - Src:             'index-storage.c:119,8'
          Dst:             time
        - Src:             'index-storage.c:141,9'
          Dst:             t_strdup_printf
        - Src:             'index-storage.c:150,9'
          Dst:             t_strdup_printf
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:357,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:359,28'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:360,20'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:361,7'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:359,2'
          Dst:             buffer_copy
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_thread_cache_update_adds
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          226
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_get_i
        - i_panic
        - mail_thread_add
        - msgid_map_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:434,9'
          Dst:             array_get_i
        - Src:             'index-thread.c:438,8'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'index-thread.c:438,8'
          Dst:             msgid_map_cmp
        - Src:             'index-thread.c:440,14'
          Dst:             array_get_i
        - Src:             'index-thread.c:441,2'
          Dst:             i_panic
        - Src:             'index-thread.c:449,4'
          Dst:             i_panic
        - Src:             'index-thread.c:450,4'
          Dst:             mail_thread_add
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    msgid_map_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    mail_thread_cache_fix_invalid_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_copy
        - mail_index_strmap_view_get_highest_idx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:461,16'
          Dst:             mail_index_strmap_view_get_highest_idx
        - Src:             'index-thread.c:474,3'
          Dst:             array_copy
    - functionName:    thread_get_mail_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_get_first_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:233,6'
          Dst:             mail_get_first_header
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_strmap_rec_get_msgid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          154
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - mail_get_first_header
        - mail_set_critical
        - mail_set_uid
        - message_id_get_next
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-thread.c:69,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-thread.c:66,7'
          Dst:             mail_set_uid
        - Src:             'index-thread.c:72,9'
          Dst:             mail_get_first_header
        - Src:             'index-thread.c:76,9'
          Dst:             mail_get_first_header
        - Src:             'index-thread.c:80,9'
          Dst:             mail_get_first_header
        - Src:             'index-thread.c:95,10'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:98,12'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:103,3'
          Dst:             mail_set_critical
    - functionName:    mail_thread_map_add_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          151
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - mail_index_strmap_view_sync_add
        - mail_index_strmap_view_sync_add_unique
        - message_id_get_next
        - thread_get_mail_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:250,6'
          Dst:             thread_get_mail_header
        - Src:             'index-thread.c:251,6'
          Dst:             thread_get_mail_header
        - Src:             'index-thread.c:255,10'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:257,3'
          Dst:             mail_index_strmap_view_sync_add
        - Src:             'index-thread.c:261,3'
          Dst:             mail_index_strmap_view_sync_add_unique
        - Src:             'index-thread.c:266,10'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:270,4'
          Dst:             mail_index_strmap_view_sync_add
        - Src:             'index-thread.c:274,12'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:278,7'
          Dst:             thread_get_mail_header
        - Src:             'index-thread.c:282,11'
          Dst:             message_id_get_next
        - Src:             'index-thread.c:284,4'
          Dst:             mail_index_strmap_view_sync_add
    - functionName:    mail_thread_strmap_remap
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          329
      EdgeCount:       56
      CyclomaticComplexity: 12
      functionsReached:
        - array_create_i
        - array_free_i
        - array_get_i
        - array_idx_get_space_i
        - array_idx_modifiable_i
        - i_panic
        - mailbox_search_result_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:177,3'
          Dst:             mailbox_search_result_free
        - Src:             'index-thread.c:184,14'
          Dst:             array_get_i
        - Src:             'index-thread.c:185,2'
          Dst:             array_create_i
        - Src:             'index-thread.c:188,8'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread.c:198,4'
          Dst:             i_panic
        - Src:             'index-thread.c:200,11'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread.c:204,5'
          Dst:             i_panic
        - Src:             'index-thread.c:215,10'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread.c:219,4'
          Dst:             i_panic
        - Src:             'index-thread.c:226,2'
          Dst:             array_free_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      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:    mail_thread_hash_rec_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_strmap_rec_get_msgid
        - strcmp
        - t_pop
        - t_push
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:149,2'
          Dst:             t_push
        - Src:             'index-thread.c:150,9'
          Dst:             mail_strmap_rec_get_msgid
        - Src:             'index-thread.c:152,13'
          Dst:             t_strdup
        - Src:             'index-thread.c:153,10'
          Dst:             mail_strmap_rec_get_msgid
        - Src:             'index-thread.c:156,4'
          Dst:             strcmp
        - Src:             'index-thread.c:157,4'
          Dst:             t_pop
        - Src:             'index-thread.c:157,4'
          Dst:             i_panic
    - functionName:    mail_thread_hash_key_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_strmap_rec_get_msgid
        - strcmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:126,2'
          Dst:             t_push
        - Src:             'index-thread.c:127,9'
          Dst:             mail_strmap_rec_get_msgid
        - Src:             'index-thread.c:133,14'
          Dst:             strcmp
        - Src:             'index-thread.c:135,4'
          Dst:             t_pop
        - Src:             'index-thread.c:135,4'
          Dst:             i_panic
    - functionName:    mail_thread_cache_update_removes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          279
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - array_create_i
        - array_get_i
        - bsearch_insert_pos
        - i_panic
        - mail_thread_remove
        - mailbox_search_result_sync
        - msgid_map_cmp
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:380,2'
          Dst:             pool_datastack_create
        - Src:             'index-thread.c:380,2'
          Dst:             array_create_i
        - Src:             'index-thread.c:381,2'
          Dst:             mailbox_search_result_sync
        - Src:             'index-thread.c:385,9'
          Dst:             array_get_i
        - Src:             'index-thread.c:392,14'
          Dst:             array_get_i
        - Src:             'index-thread.c:393,9'
          Dst:             array_get_i
        - Src:             'index-thread.c:396,3'
          Dst:             bsearch_insert_pos
        - Src:             'index-thread.c:396,3'
          Dst:             msgid_map_cmp
        - Src:             'index-thread.c:403,4'
          Dst:             i_panic
        - Src:             'index-thread.c:412,5'
          Dst:             i_panic
        - Src:             'index-thread.c:415,4'
          Dst:             i_panic
        - Src:             'index-thread.c:416,9'
          Dst:             mail_thread_remove
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_thread_mailbox_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - mail_index_strmap_deinit
        - module_context_get_require
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:638,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:640,2'
          Dst:             mail_index_strmap_deinit
        - Src:             'index-thread.c:643,2'
          Dst:             array_free_i
        - Src:             'index-thread.c:644,2'
          Dst:             p_free_internal
        - Src:             'index-thread.c:645,2'
          Dst:             p_free_internal
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    mail_thread_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_strmap_view_close
        - mailbox_search_result_free
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:625,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:627,2'
          Dst:             i_panic
        - Src:             'index-thread.c:630,3'
          Dst:             mail_index_strmap_view_close
        - Src:             'index-thread.c:632,3'
          Dst:             mailbox_search_result_free
    - functionName:    index_thread_mailbox_opened
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          78
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_idx_set_i
        - mail_index_strmap_init
        - malloc_multiply_check
        - module_context_get
        - module_get_context_id
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:650,37'
          Dst:             module_context_get
        - Src:             'index-thread.c:657,9'
          Dst:             malloc_multiply_check
        - Src:             'index-thread.c:657,9'
          Dst:             p_malloc
        - Src:             'index-thread.c:662,17'
          Dst:             mail_index_strmap_init
        - Src:             'index-thread.c:666,16'
          Dst:             malloc_multiply_check
        - Src:             'index-thread.c:666,16'
          Dst:             p_malloc
        - Src:             'index-thread.c:667,2'
          Dst:             array_create_i
        - Src:             'index-thread.c:669,2'
          Dst:             module_get_context_id
        - Src:             'index-thread.c:669,2'
          Dst:             array_idx_set_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_thread_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_thread_iterate_init_full
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:617,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:619,9'
          Dst:             mail_thread_iterate_init_full
    - functionName:    mail_thread_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_free
        - mailbox_transaction_commit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:596,2'
          Dst:             mail_free
        - Src:             'index-thread.c:597,8'
          Dst:             mailbox_transaction_commit
    - functionName:    mail_thread_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_args_unref
        - mail_thread_clear
        - module_context_get_require
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:603,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:607,2'
          Dst:             mail_thread_clear
        - Src:             'index-thread.c:608,2'
          Dst:             mail_search_args_unref
        - Src:             'index-thread.c:610,2'
          Dst:             p_free_internal
    - functionName:    mail_thread_cache_sync_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          163
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_get_i
        - i_panic
        - mail_index_strmap_view_get_highest_idx
        - mail_thread_add
        - mail_thread_cache_fix_invalid_indexes
        - mail_thread_cache_update_adds
        - mailbox_search_next
        - mailbox_search_result_save
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:511,2'
          Dst:             mail_thread_cache_fix_invalid_indexes
        - Src:             'index-thread.c:516,3'
          Dst:             mail_thread_cache_update_adds
        - Src:             'index-thread.c:522,3'
          Dst:             mail_index_strmap_view_get_highest_idx
        - Src:             'index-thread.c:524,2'
          Dst:             array_clear_i
        - Src:             'index-thread.c:527,3'
          Dst:             mailbox_search_result_save
        - Src:             'index-thread.c:531,14'
          Dst:             array_get_i
        - Src:             'index-thread.c:534,2'
          Dst:             i_panic
        - Src:             'index-thread.c:536,22'
          Dst:             mailbox_search_next
        - Src:             'index-thread.c:539,3'
          Dst:             i_panic
        - Src:             'index-thread.c:540,3'
          Dst:             mail_thread_add
    - functionName:    mail_thread_index_map_build
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          171
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mail_alloc
        - mail_index_strmap_view_open
        - mail_index_strmap_view_sync_commit
        - mail_index_strmap_view_sync_init
        - mail_index_strmap_view_sync_rollback
        - mail_search_args_unref
        - mail_search_build_add_seqset
        - mail_search_build_init
        - mail_thread_hash_key_cmp
        - mail_thread_hash_rec_cmp
        - mail_thread_map_add_mail
        - mail_thread_strmap_remap
        - mailbox_get_seq_range
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:302,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:313,4'
          Dst:             mail_index_strmap_view_open
        - Src:             'index-thread.c:313,4'
          Dst:             mail_thread_hash_key_cmp
        - Src:             'index-thread.c:313,4'
          Dst:             mail_thread_hash_rec_cmp
        - Src:             'index-thread.c:313,4'
          Dst:             mail_thread_strmap_remap
        - Src:             'index-thread.c:322,16'
          Dst:             mailbox_header_lookup_init
        - Src:             'index-thread.c:323,18'
          Dst:             mail_alloc
        - Src:             'index-thread.c:327,21'
          Dst:             mail_index_strmap_view_sync_init
        - Src:             'index-thread.c:329,2'
          Dst:             mailbox_get_seq_range
        - Src:             'index-thread.c:333,3'
          Dst:             mail_index_strmap_view_sync_commit
        - Src:             'index-thread.c:334,3'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-thread.c:338,16'
          Dst:             mail_search_build_init
        - Src:             'index-thread.c:339,2'
          Dst:             mail_search_build_add_seqset
        - Src:             'index-thread.c:340,15'
          Dst:             mailbox_search_init
        - Src:             'index-thread.c:344,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-thread.c:345,2'
          Dst:             mail_search_args_unref
        - Src:             'index-thread.c:347,9'
          Dst:             mailbox_search_next
        - Src:             'index-thread.c:348,7'
          Dst:             mail_thread_map_add_mail
        - Src:             'index-thread.c:353,6'
          Dst:             mailbox_search_deinit
        - Src:             'index-thread.c:357,3'
          Dst:             mail_index_strmap_view_sync_rollback
        - Src:             'index-thread.c:359,3'
          Dst:             mail_index_strmap_view_sync_commit
    - functionName:    mail_thread_cache_sync_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - mail_search_args_equal
        - mail_thread_cache_update_removes
        - mailbox_search_result_free
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:490,6'
          Dst:             mail_search_args_equal
        - Src:             'index-thread.c:492,3'
          Dst:             pool_datastack_create
        - Src:             'index-thread.c:492,3'
          Dst:             array_create_i
        - Src:             'index-thread.c:493,7'
          Dst:             mail_thread_cache_update_removes
        - Src:             'index-thread.c:499,2'
          Dst:             mailbox_search_result_free
    - functionName:    mail_thread_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          186
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - i_panic
        - mail_index_strmap_view_set_corrupted
        - mail_search_args_init
        - mail_search_args_ref
        - mail_search_build_add_all
        - mail_search_build_init
        - mail_thread_cache_sync_add
        - mail_thread_cache_sync_remove
        - mail_thread_deinit
        - mail_thread_index_map_build
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_transaction_begin
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread.c:547,37'
          Dst:             module_context_get_require
        - Src:             'index-thread.c:552,2'
          Dst:             i_panic
        - Src:             'index-thread.c:554,32'
          Dst:             event_reason_begin
        - Src:             'index-thread.c:556,3'
          Dst:             mail_search_args_ref
        - Src:             'index-thread.c:558,10'
          Dst:             mail_search_build_init
        - Src:             'index-thread.c:559,3'
          Dst:             mail_search_build_add_all
        - Src:             'index-thread.c:560,3'
          Dst:             mail_search_args_init
        - Src:             'index-thread.c:563,8'
          Dst:             malloc_multiply_check
        - Src:             'index-thread.c:563,8'
          Dst:             p_malloc
        - Src:             'index-thread.c:566,11'
          Dst:             mailbox_transaction_begin
        - Src:             'index-thread.c:568,15'
          Dst:             mailbox_search_init
        - Src:             'index-thread.c:572,2'
          Dst:             mail_thread_cache_sync_remove
        - Src:             'index-thread.c:573,8'
          Dst:             mail_thread_index_map_build
        - Src:             'index-thread.c:575,3'
          Dst:             mail_thread_cache_sync_add
        - Src:             'index-thread.c:576,6'
          Dst:             mailbox_search_deinit
        - Src:             'index-thread.c:581,4'
          Dst:             mail_index_strmap_view_set_corrupted
        - Src:             'index-thread.c:583,2'
          Dst:             event_reason_end
        - Src:             'index-thread.c:585,3'
          Dst:             mail_thread_deinit
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_transaction_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - array_is_created_i
        - mail_cache_view_close
        - mail_index_view_close
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:13,2'
          Dst:             mail_index_view_close
        - Src:             'index-transaction.c:14,2'
          Dst:             mail_cache_view_close
        - Src:             'index-transaction.c:15,2'
          Dst:             mail_index_view_close
        - Src:             'index-transaction.c:16,6'
          Dst:             array_is_created_i
        - Src:             'index-transaction.c:17,3'
          Dst:             array_free_i
        - Src:             'index-transaction.c:18,2'
          Dst:             array_free_i
        - Src:             'index-transaction.c:19,2'
          Dst:             p_free_internal
        - Src:             'index-transaction.c:20,2'
          Dst:             p_free_internal
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_rollback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:227,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'index-transaction.c:228,2'
          Dst:             mail_index_transaction_rollback
    - functionName:    index_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - mail_index_is_deleted
        - mail_index_transaction_commit
        - mail_index_transaction_commit_full
        - mailbox_set_deleted
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:204,20'
          Dst:             pool_alloconly_create
        - Src:             'index-transaction.c:206,2'
          Dst:             array_create_i
        - Src:             'index-transaction.c:210,9'
          Dst:             mail_index_transaction_commit
        - Src:             'index-transaction.c:211,6'
          Dst:             mail_index_transaction_commit_full
        - Src:             'index-transaction.c:215,17'
          Dst:             mail_index_is_deleted
        - Src:             'index-transaction.c:216,3'
          Dst:             mailbox_set_deleted
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_transaction_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:190,6'
          Dst:             malloc_multiply_check
        - Src:             'index-transaction.c:190,6'
          Dst:             p_malloc
        - Src:             'index-transaction.c:191,2'
          Dst:             index_transaction_init
    - functionName:    index_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          161
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - array_idx_set_i
        - i_panic
        - i_strdup
        - index_transaction_flags_get
        - mail_cache_get_transaction
        - mail_cache_view_open
        - mail_cache_view_update_cache_decisions
        - mail_index_refresh
        - mail_index_transaction_begin
        - mail_index_transaction_open_updated_view
        - module_get_context_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:154,2'
          Dst:             i_panic
        - Src:             'index-transaction.c:156,17'
          Dst:             index_transaction_flags_get
        - Src:             'index-transaction.c:158,3'
          Dst:             mail_index_refresh
        - Src:             'index-transaction.c:162,14'
          Dst:             i_strdup
        - Src:             'index-transaction.c:163,14'
          Dst:             mail_index_transaction_begin
        - Src:             'index-transaction.c:164,12'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'index-transaction.c:166,2'
          Dst:             array_create_i
        - Src:             'index-transaction.c:169,18'
          Dst:             mail_cache_view_open
        - Src:             'index-transaction.c:170,19'
          Dst:             mail_cache_get_transaction
        - Src:             'index-transaction.c:173,3'
          Dst:             mail_cache_view_update_cache_decisions
        - Src:             'index-transaction.c:180,2'
          Dst:             module_get_context_id
        - Src:             'index-transaction.c:180,2'
          Dst:             array_idx_set_i
    - functionName:    index_transaction_flags_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_transaction_index_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          361
      EdgeCount:       75
      CyclomaticComplexity: 18
      functionsReached:
        - array_is_created_i
        - dict_transaction_commit
        - i_panic
        - index_mailbox_sync_pvt_deinit
        - index_mailbox_sync_pvt_init
        - index_mailbox_sync_pvt_newmails
        - index_pop3_uidl_update_exists_finish
        - index_transaction_free
        - mail_index_set_error_nolog
        - mailbox_get_last_error
        - mailbox_save_context_deinit
        - mailbox_set_critical
        - mailbox_set_index_error
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:28,3'
          Dst:             module_context_get_require
        - Src:             'index-transaction.c:33,2'
          Dst:             index_pop3_uidl_update_exists_finish
        - Src:             'index-transaction.c:36,7'
          Dst:             dict_transaction_commit
        - Src:             'index-transaction.c:37,4'
          Dst:             mailbox_set_critical
        - Src:             'index-transaction.c:43,7'
          Dst:             dict_transaction_commit
        - Src:             'index-transaction.c:44,4'
          Dst:             mailbox_set_critical
        - Src:             'index-transaction.c:51,3'
          Dst:             mailbox_save_context_deinit
        - Src:             'index-transaction.c:61,6'
          Dst:             array_is_created_i
        - Src:             'index-transaction.c:62,7'
          Dst:             index_mailbox_sync_pvt_init
        - Src:             'index-transaction.c:66,2'
          Dst:             i_panic
        - Src:             'index-transaction.c:71,4'
          Dst:             mailbox_set_index_error
        - Src:             'index-transaction.c:80,3'
          Dst:             i_panic
        - Src:             'index-transaction.c:87,7'
          Dst:             index_mailbox_sync_pvt_newmails
        - Src:             'index-transaction.c:91,3'
          Dst:             index_mailbox_sync_pvt_deinit
        - Src:             'index-transaction.c:95,45'
          Dst:             mailbox_get_last_error
        - Src:             'index-transaction.c:95,3'
          Dst:             mail_index_set_error_nolog
        - Src:             'index-transaction.c:96,2'
          Dst:             index_transaction_free
    - functionName:    index_transaction_index_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - dict_transaction_rollback
        - i_panic
        - index_transaction_free
        - mailbox_save_context_deinit
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:104,3'
          Dst:             module_context_get_require
        - Src:             'index-transaction.c:106,2'
          Dst:             dict_transaction_rollback
        - Src:             'index-transaction.c:107,2'
          Dst:             dict_transaction_rollback
        - Src:             'index-transaction.c:110,3'
          Dst:             mailbox_save_context_deinit
        - Src:             'index-transaction.c:114,2'
          Dst:             i_panic
        - Src:             'index-transaction.c:116,2'
          Dst:             index_transaction_free
    - functionName:    index_transaction_init_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_transaction_flags_get
        - mail_index_transaction_begin
        - mail_index_transaction_open_updated_view
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-transaction.c:141,17'
          Dst:             index_transaction_flags_get
        - Src:             'index-transaction.c:142,18'
          Dst:             mail_index_transaction_begin
        - Src:             'index-transaction.c:144,16'
          Dst:             mail_index_transaction_open_updated_view
    - functionName:    i_stream_mail_get_cached_mail_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/istream-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_mail_set_size_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/istream-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          114
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_name
        - i_stream_mail_get_cached_mail_id
        - io_stream_set_error
        - mail_set_cache_corrupted
        - mailbox_get_vname
        - t_strconcat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-mail.c:97,12'
          Dst:             i_stream_mail_get_cached_mail_id
        - Src:             'istream-mail.c:99,13'
          Dst:             t_strconcat
        - Src:             'istream-mail.c:104,3'
          Dst:             mailbox_get_vname
        - Src:             'istream-mail.c:100,2'
          Dst:             io_stream_set_error
        - Src:             'istream-mail.c:108,5'
          Dst:             i_stream_get_name
        - Src:             'istream-mail.c:107,3'
          Dst:             t_strdup_printf
        - Src:             'istream-mail.c:106,2'
          Dst:             mail_set_cache_corrupted
    - functionName:    i_stream_mail_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/istream-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          268
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_mail_set_size_corrupted
        - i_stream_mail_try_get_cached_size
        - i_stream_read_copy_from_parent
        - i_stream_seek
        - i_stream_snapshot_free
        - index_mail_refresh_expunged
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-mail.c:119,2'
          Dst:             i_stream_seek
        - Src:             'istream-mail.c:128,8'
          Dst:             i_stream_read_copy_from_parent
        - Src:             'istream-mail.c:129,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-mail.c:137,4'
          Dst:             i_stream_mail_set_size_corrupted
        - Src:             'istream-mail.c:140,4'
          Dst:             i_panic
        - Src:             'istream-mail.c:146,3'
          Dst:             i_stream_snapshot_free
        - Src:             'istream-mail.c:156,5'
          Dst:             index_mail_refresh_expunged
        - Src:             'istream-mail.c:160,7'
          Dst:             i_stream_mail_try_get_cached_size
        - Src:             'istream-mail.c:162,4'
          Dst:             i_stream_mail_set_size_corrupted
    - functionName:    i_stream_mail_try_get_cached_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/istream-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_get_physical_size
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-mail.c:35,2'
          Dst:             mail_storage_last_error_push
        - Src:             'istream-mail.c:38,6'
          Dst:             mail_get_physical_size
        - Src:             'istream-mail.c:41,2'
          Dst:             mail_storage_last_error_pop
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    i_stream_create_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/istream-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          121
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - i_stream_mail_try_get_cached_size
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-mail.c:174,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-mail.c:174,12'
          Dst:             p_malloc
        - Src:             'istream-mail.c:178,8'
          Dst:             i_stream_mail_try_get_cached_size
        - Src:             'istream-mail.c:188,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-mail.c:187,9'
          Dst:             i_stream_create
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_decisions_copy
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_cache_open_and_verify
        - mail_cache_purge
        - mail_cache_register_fields
        - mail_cache_register_get_list
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:272,6'
          Dst:             mail_cache_open_and_verify
        - Src:             'mail-cache-decisions.c:280,3'
          Dst:             mail_cache_register_get_list
        - Src:             'mail-cache-decisions.c:281,2'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:283,3'
          Dst:             mail_cache_register_fields
        - Src:             'mail-cache-decisions.c:291,2'
          Dst:             pool_unref
        - Src:             'mail-cache-decisions.c:292,9'
          Dst:             mail_cache_purge
    - functionName:    mail_cache_decision_rejected_event
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create_passthrough
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:206,9'
          Dst:             event_create_passthrough
    - functionName:    mail_cache_decision_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          253
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mail_cache_decision_changed_event
        - mail_cache_decision_rejected_event
        - mail_cache_decision_to_string
        - mail_cache_headers_check_capped
        - mail_index_lookup_uid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:219,2'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:236,7'
          Dst:             mail_cache_headers_check_capped
        - Src:             'mail-cache-decisions.c:241,5'
          Dst:             mail_cache_decision_rejected_event
        - Src:             'mail-cache-decisions.c:243,4'
          Dst:             event_want_level
        - Src:             'mail-cache-decisions.c:243,4'
          Dst:             e_debug
        - Src:             'mail-cache-decisions.c:243,4'
          Dst:             event_send_abort
        - Src:             'mail-cache-decisions.c:255,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-cache-decisions.c:259,3'
          Dst:             mail_cache_decision_to_string
        - Src:             'mail-cache-decisions.c:261,3'
          Dst:             mail_cache_decision_changed_event
        - Src:             'mail-cache-decisions.c:266,2'
          Dst:             event_want_level
        - Src:             'mail-cache-decisions.c:266,2'
          Dst:             e_debug
        - Src:             'mail-cache-decisions.c:266,2'
          Dst:             event_send_abort
    - functionName:    mail_cache_headers_check_capped
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_count_alive_headers
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:197,23'
          Dst:             mail_cache_count_alive_headers
    - functionName:    mail_cache_decision_to_string
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached:
        - i_unreached
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-cache-decisions.c:66,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-decisions.c:74,2'
          Dst:             i_unreached
    - functionName:    mail_cache_decision_changed_event
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create_passthrough
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:81,9'
          Dst:             event_create_passthrough
    - functionName:    mail_cache_count_alive_headers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_update_last_used
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - time_to_uint32
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:90,41'
          Dst:             time_to_uint32
    - functionName:    mail_cache_decision_state_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-decisions.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          375
      EdgeCount:       65
      CyclomaticComplexity: 14
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mail_cache_decision_changed_event
        - mail_cache_update_last_used
        - mail_index_get_header
        - mail_index_lookup_uid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-decisions.c:103,2'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:123,4'
          Dst:             mail_cache_update_last_used
        - Src:             'mail-cache-decisions.c:133,3'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:135,4'
          Dst:             mail_cache_update_last_used
        - Src:             'mail-cache-decisions.c:138,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-cache-decisions.c:139,8'
          Dst:             mail_index_get_header
        - Src:             'mail-cache-decisions.c:147,3'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:148,3'
          Dst:             mail_cache_update_last_used
        - Src:             'mail-cache-decisions.c:157,3'
          Dst:             i_panic
        - Src:             'mail-cache-decisions.c:165,4'
          Dst:             mail_cache_decision_changed_event
        - Src:             'mail-cache-decisions.c:171,3'
          Dst:             event_want_level
        - Src:             'mail-cache-decisions.c:171,3'
          Dst:             e_debug
        - Src:             'mail-cache-decisions.c:171,3'
          Dst:             event_send_abort
    - functionName:    mail_cache_header_fields_get_next_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_header_fields_get_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:691,6'
          Dst:             mail_cache_header_fields_get_offset
    - functionName:    mail_cache_header_fields_get_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          362
      EdgeCount:       78
      CyclomaticComplexity: 23
      functionsReached:
        - buffer_set_used_size
        - file_cache_invalidate
        - mail_cache_map
        - mail_cache_purge_later
        - mail_cache_set_corrupted
        - mail_cache_set_syscall_error
        - mail_index_offset_to_uint32
        - pread_full
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:268,3'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-cache-fields.c:271,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:280,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:287,10'
          Dst:             mail_cache_map
        - Src:             'mail-cache-fields.c:292,5'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:301,10'
          Dst:             pread_full
        - Src:             'mail-cache-fields.c:304,5'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-fields.c:308,5'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:316,4'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-cache-fields.c:321,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:327,3'
          Dst:             mail_cache_purge_later
        - Src:             'mail-cache-fields.c:337,4'
          Dst:             file_cache_invalidate
        - Src:             'mail-cache-fields.c:341,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-fields.c:342,9'
          Dst:             mail_cache_map
        - Src:             'mail-cache-fields.c:346,4'
          Dst:             mail_cache_set_corrupted
    - functionName:    copy_to_buf_byte
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:553,3'
          Dst:             buffer_append
        - Src:             'mail-cache-fields.c:563,4'
          Dst:             buffer_append
    - functionName:    copy_to_buf
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          141
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:527,3'
          Dst:             buffer_append
        - Src:             'mail-cache-fields.c:536,4'
          Dst:             buffer_append
    - functionName:    copy_to_buf_last_used
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - copy_to_buf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:579,2'
          Dst:             copy_to_buf
    - functionName:    mail_cache_header_fields_get
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          255
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - buffer_append
        - buffer_append_zero
        - buffer_write
        - copy_to_buf
        - copy_to_buf_byte
        - copy_to_buf_last_used
        - i_panic
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:652,2'
          Dst:             buffer_append
        - Src:             'mail-cache-fields.c:655,2'
          Dst:             copy_to_buf_last_used
        - Src:             'mail-cache-fields.c:656,2'
          Dst:             copy_to_buf
        - Src:             'mail-cache-fields.c:659,2'
          Dst:             copy_to_buf_byte
        - Src:             'mail-cache-fields.c:661,2'
          Dst:             copy_to_buf_byte
        - Src:             'mail-cache-fields.c:664,2'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:671,29'
          Dst:             strlen
        - Src:             'mail-cache-fields.c:671,3'
          Dst:             buffer_append
        - Src:             'mail-cache-fields.c:677,30'
          Dst:             strlen
        - Src:             'mail-cache-fields.c:677,4'
          Dst:             buffer_append
        - Src:             'mail-cache-fields.c:682,2'
          Dst:             buffer_write
        - Src:             'mail-cache-fields.c:685,3'
          Dst:             buffer_append_zero
    - functionName:    mail_cache_header_fields_update_locked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          172
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_create_dynamic
        - buffer_set_used_size
        - copy_to_buf_byte
        - copy_to_buf_last_used
        - mail_cache_header_fields_get_offset
        - mail_cache_header_fields_read
        - mail_cache_write
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:588,6'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache-fields.c:589,6'
          Dst:             mail_cache_header_fields_get_offset
        - Src:             'mail-cache-fields.c:592,11'
          Dst:             pool_datastack_create
        - Src:             'mail-cache-fields.c:592,11'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-fields.c:594,2'
          Dst:             copy_to_buf_last_used
        - Src:             'mail-cache-fields.c:595,8'
          Dst:             mail_cache_write
        - Src:             'mail-cache-fields.c:598,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-fields.c:599,3'
          Dst:             copy_to_buf_byte
        - Src:             'mail-cache-fields.c:604,9'
          Dst:             mail_cache_write
    - functionName:    mail_cache_header_fields_read
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         76
      ICount:          713
      EdgeCount:       97
      CyclomaticComplexity: 23
      functionsReached:
        - field_decision_is_valid
        - field_type_verify
        - hash_table_lookup_full
        - i_panic
        - mail_cache_header_fields_get_offset
        - mail_cache_purge_drop_init
        - mail_cache_purge_drop_test
        - mail_cache_purge_later
        - mail_cache_register_fields
        - mail_cache_set_corrupted
        - malloc_multiply_check
        - p_free_internal
        - p_realloc
      functionUses:    9
      BranchProfiles:
        - Branch String:   'mail-cache-fields.c:492,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-fields.c:369,6'
          Dst:             mail_cache_header_fields_get_offset
        - Src:             'mail-cache-fields.c:381,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:392,4'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:392,4'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:392,4'
          Dst:             p_realloc
        - Src:             'mail-cache-fields.c:395,3'
          Dst:             p_free_internal
        - Src:             'mail-cache-fields.c:409,2'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:415,2'
          Dst:             mail_cache_purge_drop_init
        - Src:             'mail-cache-fields.c:420,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:426,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:429,8'
          Dst:             field_decision_is_valid
        - Src:             'mail-cache-fields.c:430,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:439,7'
          Dst:             hash_table_lookup_full
        - Src:             'mail-cache-fields.c:457,8'
          Dst:             field_type_verify
        - Src:             'mail-cache-fields.c:467,4'
          Dst:             mail_cache_register_fields
        - Src:             'mail-cache-fields.c:472,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:492,11'
          Dst:             mail_cache_purge_drop_test
        - Src:             'mail-cache-fields.c:496,4'
          Dst:             mail_cache_purge_later
        - Src:             'mail-cache-fields.c:504,4'
          Dst:             mail_cache_purge_later
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:130,3'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    field_decision_is_valid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          32
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-cache-fields.c:38,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    field_type_verify
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - field_has_fixed_size
        - mail_cache_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:54,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-fields.c:58,35'
          Dst:             field_has_fixed_size
        - Src:             'mail-cache-fields.c:59,3'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_register_fields
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          482
      EdgeCount:       76
      CyclomaticComplexity: 18
      functionsReached:
        - field_has_fixed_size
        - hash_table_insert
        - hash_table_lookup_full
        - i_panic
        - mail_cache_field_update
        - malloc_multiply_check
        - p_realloc
        - p_strdup
        - p_strndup
        - strcasecmp
        - strlen
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:125,8'
          Dst:             strlen
        - Src:             'mail-cache-fields.c:126,5'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:128,22'
          Dst:             p_strndup
        - Src:             'mail-cache-fields.c:137,7'
          Dst:             hash_table_lookup_full
        - Src:             'mail-cache-fields.c:140,4'
          Dst:             mail_cache_field_update
        - Src:             'mail-cache-fields.c:147,8'
          Dst:             strcasecmp
        - Src:             'mail-cache-fields.c:161,18'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:161,18'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:161,18'
          Dst:             p_realloc
        - Src:             'mail-cache-fields.c:165,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:165,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:165,3'
          Dst:             p_realloc
        - Src:             'mail-cache-fields.c:176,10'
          Dst:             p_strdup
        - Src:             'mail-cache-fields.c:182,8'
          Dst:             field_has_fixed_size
        - Src:             'mail-cache-fields.c:185,3'
          Dst:             hash_table_insert
        - Src:             'mail-cache-fields.c:189,2'
          Dst:             i_panic
    - functionName:    mail_cache_field_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          209
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - field_type_verify
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:73,2'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:101,8'
          Dst:             field_type_verify
    - functionName:    field_has_fixed_size
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          53
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - i_unreached
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-cache-fields.c:19,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-fields.c:32,2'
          Dst:             i_unreached
    - functionName:    mail_cache_header_fields_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_cache_header_fields_update_locked
        - mail_cache_lock
        - mail_cache_unlock
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:622,3'
          Dst:             t_push
        - Src:             'mail-cache-fields.c:623,10'
          Dst:             mail_cache_header_fields_update_locked
        - Src:             'mail-cache-fields.c:624,5'
          Dst:             t_pop
        - Src:             'mail-cache-fields.c:624,5'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:628,6'
          Dst:             mail_cache_lock
        - Src:             'mail-cache-fields.c:631,2'
          Dst:             t_push
        - Src:             'mail-cache-fields.c:632,9'
          Dst:             mail_cache_header_fields_update_locked
        - Src:             'mail-cache-fields.c:633,4'
          Dst:             t_pop
        - Src:             'mail-cache-fields.c:633,4'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:634,2'
          Dst:             i_panic
        - Src:             'mail-cache-fields.c:635,2'
          Dst:             mail_cache_unlock
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_register_get_list
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mail_cache_open_and_verify
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:231,9'
          Dst:             mail_cache_open_and_verify
        - Src:             'mail-cache-fields.c:233,12'
          Dst:             pool_alloconly_create
        - Src:             'mail-cache-fields.c:235,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-fields.c:235,3'
          Dst:             p_malloc
        - Src:             'mail-cache-fields.c:238,18'
          Dst:             p_strdup
    - functionName:    mail_cache_register_get_field
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:218,2'
          Dst:             i_panic
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    mail_cache_register_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-fields.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          121
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - hash_table_lookup_full
        - str_begins_icase_with
        - strlen
        - strncasecmp
        - t_strndup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-fields.c:204,7'
          Dst:             strncasecmp
        - Src:             'mail-cache-fields.c:204,7'
          Dst:             str_begins_icase_with
        - Src:             'mail-cache-fields.c:205,7'
          Dst:             strlen
        - Src:             'mail-cache-fields.c:206,11'
          Dst:             t_strndup
        - Src:             'mail-cache-fields.c:209,6'
          Dst:             hash_table_lookup_full
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    header_lookup_line_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 507
      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:    header_lines_save
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          151
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - i_memcpy
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:489,13'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-lookup.c:489,13'
          Dst:             p_malloc
        - Src:             'mail-cache-lookup.c:493,4'
          Dst:             p_malloc
        - Src:             'mail-cache-lookup.c:494,3'
          Dst:             i_memcpy
        - Src:             'mail-cache-lookup.c:500,3'
          Dst:             array_append_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_lookup_iter_transaction
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_cache_transaction_lookup_rec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:169,13'
          Dst:             mail_cache_transaction_lookup_rec
    - functionName:    mail_cache_get_highest_seq_with_cache
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          148
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_cache_lookup_cur_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:642,7'
          Dst:             mail_cache_lookup_cur_offset
    - functionName:    mail_cache_lookup_cur_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - mail_index_ext_get_reset_id
        - mail_index_lookup_ext_full
        - mail_index_view_get_index
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:60,29'
          Dst:             mail_index_view_get_index
        - Src:             'mail-cache-lookup.c:65,2'
          Dst:             mail_index_lookup_ext_full
        - Src:             'mail-cache-lookup.c:74,7'
          Dst:             mail_index_ext_get_reset_id
        - Src:             'mail-cache-lookup.c:75,3'
          Dst:             i_unreached
    - functionName:    mail_cache_get_missing_reason
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          147
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - mail_cache_get_highest_seq_with_cache
        - mail_cache_lookup_cur_offset
        - mail_index_is_expunged
        - mail_index_lookup_uid
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:660,6'
          Dst:             mail_index_is_expunged
        - Src:             'mail-cache-lookup.c:666,11'
          Dst:             mail_cache_lookup_cur_offset
        - Src:             'mail-cache-lookup.c:669,11'
          Dst:             t_strdup_printf
        - Src:             'mail-cache-lookup.c:673,10'
          Dst:             t_strdup_printf
        - Src:             'mail-cache-lookup.c:676,8'
          Dst:             mail_cache_get_highest_seq_with_cache
        - Src:             'mail-cache-lookup.c:678,10'
          Dst:             t_strdup_printf
        - Src:             'mail-cache-lookup.c:683,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-cache-lookup.c:686,10'
          Dst:             t_strdup_printf
        - Src:             'mail-cache-lookup.c:691,9'
          Dst:             t_strdup_printf
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_lookup_headers_real
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          372
      EdgeCount:       69
      CyclomaticComplexity: 18
      functionsReached:
        - array_create_i
        - array_get_modifiable_i
        - array_sort_i
        - buffer_append
        - buffer_create_dynamic
        - buffer_get_modifiable_data
        - buffer_write
        - header_lines_save
        - header_lookup_line_cmp
        - mail_cache_decision_state_update
        - mail_cache_lookup_iter_init
        - mail_cache_lookup_iter_next
        - pool_alloconly_create
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:535,3'
          Dst:             mail_cache_decision_state_update
        - Src:             'mail-cache-lookup.c:538,8'
          Dst:             pool_datastack_create
        - Src:             'mail-cache-lookup.c:538,8'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-lookup.c:543,3'
          Dst:             buffer_write
        - Src:             'mail-cache-lookup.c:545,16'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-cache-lookup.c:550,23'
          Dst:             pool_alloconly_create
        - Src:             'mail-cache-lookup.c:551,2'
          Dst:             pool_datastack_create
        - Src:             'mail-cache-lookup.c:551,2'
          Dst:             array_create_i
        - Src:             'mail-cache-lookup.c:553,2'
          Dst:             mail_cache_lookup_iter_init
        - Src:             'mail-cache-lookup.c:554,16'
          Dst:             mail_cache_lookup_iter_next
        - Src:             'mail-cache-lookup.c:560,4'
          Dst:             header_lines_save
        - Src:             'mail-cache-lookup.c:575,2'
          Dst:             array_sort_i
        - Src:             'mail-cache-lookup.c:575,2'
          Dst:             header_lookup_line_cmp
        - Src:             'mail-cache-lookup.c:576,10'
          Dst:             array_get_modifiable_i
        - Src:             'mail-cache-lookup.c:592,3'
          Dst:             buffer_append
    - functionName:    mail_cache_lookup_iter_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          115
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_cache_lookup_offset
        - mail_cache_open_and_verify
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:146,9'
          Dst:             mail_cache_open_and_verify
        - Src:             'mail-cache-lookup.c:154,9'
          Dst:             mail_cache_lookup_offset
    - functionName:    mail_cache_lookup_iter_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          242
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mail_cache_lookup_iter_next_record
        - mail_cache_lookup_rec_get_field
        - mail_cache_set_corrupted
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:284,2'
          Dst:             i_panic
        - Src:             'mail-cache-lookup.c:288,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-lookup.c:293,14'
          Dst:             mail_cache_lookup_iter_next_record
        - Src:             'mail-cache-lookup.c:298,6'
          Dst:             mail_cache_lookup_rec_get_field
        - Src:             'mail-cache-lookup.c:312,3'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_lookup_iter_next_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          277
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - mail_cache_get_record
        - mail_cache_lookup_iter_transaction
        - mail_cache_lookup_offset
        - mail_cache_set_corrupted
        - mail_cache_track_loops
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:200,8'
          Dst:             mail_cache_lookup_iter_transaction
        - Src:             'mail-cache-lookup.c:209,7'
          Dst:             mail_cache_lookup_offset
        - Src:             'mail-cache-lookup.c:222,6'
          Dst:             mail_cache_get_record
        - Src:             'mail-cache-lookup.c:224,6'
          Dst:             mail_cache_track_loops
        - Src:             'mail-cache-lookup.c:226,3'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_lookup_rec_get_field
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          142
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_cache_get_record
        - mail_cache_header_fields_read
        - mail_cache_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:255,8'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache-lookup.c:259,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-lookup.c:267,7'
          Dst:             mail_cache_get_record
    - functionName:    mail_cache_get_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          145
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mail_cache_map
        - mail_cache_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:19,2'
          Dst:             i_panic
        - Src:             'mail-cache-lookup.c:23,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-lookup.c:28,6'
          Dst:             mail_cache_map
        - Src:             'mail-cache-lookup.c:33,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-lookup.c:39,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-lookup.c:44,14'
          Dst:             mail_cache_map
        - Src:             'mail-cache-lookup.c:47,4'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_lookup_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          110
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_cache_lookup_cur_offset
        - mail_cache_sync_reset_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:86,11'
          Dst:             mail_cache_lookup_cur_offset
        - Src:             'mail-cache-lookup.c:92,14'
          Dst:             mail_cache_sync_reset_id
        - Src:             'mail-cache-lookup.c:96,12'
          Dst:             mail_cache_lookup_cur_offset
    - functionName:    mail_cache_track_loops
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:117,2'
          Dst:             i_panic
        - Src:             'mail-cache-lookup.c:118,2'
          Dst:             i_panic
    - functionName:    mail_cache_lookup_headers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_get_pool
        - i_panic
        - mail_cache_lookup_headers_real
        - pool_unref
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:609,6'
          Dst:             buffer_get_pool
        - Src:             'mail-cache-lookup.c:610,9'
          Dst:             mail_cache_lookup_headers_real
        - Src:             'mail-cache-lookup.c:613,7'
          Dst:             t_push
        - Src:             'mail-cache-lookup.c:614,9'
          Dst:             mail_cache_lookup_headers_real
        - Src:             'mail-cache-lookup.c:617,4'
          Dst:             t_pop
        - Src:             'mail-cache-lookup.c:617,4'
          Dst:             i_panic
        - Src:             'mail-cache-lookup.c:618,2'
          Dst:             pool_unref
    - functionName:    mail_cache_lookup_bitmask
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_get_space_unsafe
        - buffer_write_zero
        - mail_cache_lookup_iter_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:399,2'
          Dst:             buffer_write_zero
        - Src:             'mail-cache-lookup.c:401,16'
          Dst:             mail_cache_lookup_iter_next
        - Src:             'mail-cache-lookup.c:407,10'
          Dst:             buffer_get_space_unsafe
    - functionName:    mail_cache_lookup_field
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append
        - mail_cache_decision_state_update
        - mail_cache_field_exists
        - mail_cache_lookup_bitmask
        - mail_cache_lookup_iter_init
        - mail_cache_lookup_iter_next
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:422,8'
          Dst:             mail_cache_field_exists
        - Src:             'mail-cache-lookup.c:423,2'
          Dst:             mail_cache_decision_state_update
        - Src:             'mail-cache-lookup.c:428,2'
          Dst:             mail_cache_lookup_iter_init
        - Src:             'mail-cache-lookup.c:430,9'
          Dst:             mail_cache_lookup_bitmask
        - Src:             'mail-cache-lookup.c:436,17'
          Dst:             mail_cache_lookup_iter_next
        - Src:             'mail-cache-lookup.c:438,5'
          Dst:             buffer_append
    - functionName:    mail_cache_field_exists
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_cache_seq
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:354,2'
          Dst:             i_panic
        - Src:             'mail-cache-lookup.c:362,7'
          Dst:             mail_cache_seq
    - functionName:    mail_cache_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_set_used_size
        - buffer_write
        - mail_cache_lookup_iter_init
        - mail_cache_lookup_iter_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:336,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-lookup.c:341,2'
          Dst:             mail_cache_lookup_iter_init
        - Src:             'mail-cache-lookup.c:342,16'
          Dst:             mail_cache_lookup_iter_next
        - Src:             'mail-cache-lookup.c:343,3'
          Dst:             buffer_write
    - functionName:    mail_cache_field_get_decision
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:381,2'
          Dst:             i_panic
    - functionName:    mail_cache_field_exists_any
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_lookup_cur_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-lookup.c:375,9'
          Dst:             mail_cache_lookup_cur_offset
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_cache_merge_bitmask
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          84
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_get_space_i
        - buffer_get_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:36,8'
          Dst:             array_idx_get_space_i
        - Src:             'mail-cache-purge.c:42,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mail_cache_purge_get_fields
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          196
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_set_used_size
        - i_memcpy
        - i_panic
        - mail_cache_header_fields_get
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:129,2'
          Dst:             i_memcpy
        - Src:             'mail-cache-purge.c:134,2'
          Dst:             p_free_internal
        - Src:             'mail-cache-purge.c:136,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-purge.c:136,3'
          Dst:             p_malloc
        - Src:             'mail-cache-purge.c:140,4'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:147,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:149,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-purge.c:150,2'
          Dst:             mail_cache_header_fields_get
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_purge_field
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          217
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - array_idx_set_i
        - buffer_append
        - buffer_append_zero
        - buffer_get_space_unsafe
        - mail_cache_merge_bitmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:62,15'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-cache-purge.c:67,4'
          Dst:             mail_cache_merge_bitmask
        - Src:             'mail-cache-purge.c:81,2'
          Dst:             buffer_append
        - Src:             'mail-cache-purge.c:85,3'
          Dst:             buffer_append
        - Src:             'mail-cache-purge.c:92,3'
          Dst:             array_idx_set_i
        - Src:             'mail-cache-purge.c:94,2'
          Dst:             buffer_append
        - Src:             'mail-cache-purge.c:96,3'
          Dst:             buffer_append_zero
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_purge_check_field
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          215
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - mail_cache_decision_changed_event
        - mail_cache_decision_to_string
        - mail_cache_purge_drop_test
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-cache-purge.c:160,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-purge.c:160,10'
          Dst:             mail_cache_purge_drop_test
        - Src:             'mail-cache-purge.c:164,25'
          Dst:             mail_cache_decision_to_string
        - Src:             'mail-cache-purge.c:166,4'
          Dst:             event_create_passthrough
        - Src:             'mail-cache-purge.c:171,3'
          Dst:             event_want_level
        - Src:             'mail-cache-purge.c:171,3'
          Dst:             e_debug
        - Src:             'mail-cache-purge.c:171,3'
          Dst:             event_send_abort
        - Src:             'mail-cache-purge.c:179,4'
          Dst:             mail_cache_decision_changed_event
        - Src:             'mail-cache-purge.c:183,3'
          Dst:             event_want_level
        - Src:             'mail-cache-purge.c:183,3'
          Dst:             e_debug
        - Src:             'mail-cache-purge.c:183,3'
          Dst:             event_send_abort
    - functionName:    mail_cache_purge_drop_test
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    get_next_file_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_get_ext
        - mail_index_view_open
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:106,6'
          Dst:             mail_index_refresh
        - Src:             'mail-cache-purge.c:109,9'
          Dst:             mail_index_view_open
        - Src:             'mail-cache-purge.c:110,8'
          Dst:             mail_index_view_get_ext
        - Src:             'mail-cache-purge.c:111,47'
          Dst:             time_to_uint32
        - Src:             'mail-cache-purge.c:115,2'
          Dst:             mail_index_view_close
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_cache_copy
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          634
      EdgeCount:       89
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - array_append_i
        - array_append_space_i
        - array_clear_i
        - array_create_i
        - array_free_i
        - buffer_append
        - buffer_create_dynamic
        - buffer_free
        - buffer_get_modifiable_data
        - buffer_get_size
        - buffer_set_used_size
        - buffer_write
        - e_debug
        - event_add_int
        - event_add_str
        - event_send_abort
        - event_set_name
        - event_want_level
        - fdatasync
        - get_next_file_seq
        - i_panic
        - i_unlink
        - mail_cache_get_first_new_seq
        - mail_cache_header_fields_read
        - mail_cache_lookup_iter_init
        - mail_cache_lookup_iter_next
        - mail_cache_purge_check_field
        - mail_cache_purge_drop_init
        - mail_cache_purge_field
        - mail_cache_purge_get_fields
        - mail_cache_set_syscall_error
        - mail_cache_view_close
        - mail_cache_view_open
        - mail_index_get_header
        - mail_index_lookup_uid
        - mail_index_set_error
        - mail_index_transaction_is_expunged
        - mail_index_transaction_open_updated_view
        - mail_index_uint32_to_offset
        - mail_index_view_close
        - mail_index_view_get_messages_count
        - malloc_multiply_check
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_finish
        - o_stream_ignore_last_errors
        - o_stream_nsend
        - o_stream_seek
        - pool_datastack_create
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:219,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:225,6'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache-purge.c:228,9'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'mail-cache-purge.c:229,15'
          Dst:             mail_cache_view_open
        - Src:             'mail-cache-purge.c:230,11'
          Dst:             o_stream_create_fd_file
        - Src:             'mail-cache-purge.c:237,17'
          Dst:             get_next_file_seq
        - Src:             'mail-cache-purge.c:238,2'
          Dst:             o_stream_nsend
        - Src:             'mail-cache-purge.c:240,2'
          Dst:             event_add_str
        - Src:             'mail-cache-purge.c:241,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:242,2'
          Dst:             event_set_name
        - Src:             'mail-cache-purge.c:243,2'
          Dst:             event_want_level
        - Src:             'mail-cache-purge.c:243,2'
          Dst:             e_debug
        - Src:             'mail-cache-purge.c:243,2'
          Dst:             event_send_abort
        - Src:             'mail-cache-purge.c:248,15'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-purge.c:249,19'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-purge.c:251,23'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-purge.c:251,23'
          Dst:             t_malloc0
        - Src:             'mail-cache-purge.c:252,2'
          Dst:             pool_datastack_create
        - Src:             'mail-cache-purge.c:252,2'
          Dst:             array_create_i
        - Src:             'mail-cache-purge.c:256,12'
          Dst:             mail_index_get_header
        - Src:             'mail-cache-purge.c:257,2'
          Dst:             mail_cache_purge_drop_init
        - Src:             'mail-cache-purge.c:267,9'
          Dst:             mail_cache_purge_check_field
        - Src:             'mail-cache-purge.c:276,18'
          Dst:             mail_cache_get_first_new_seq
        - Src:             'mail-cache-purge.c:277,18'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-cache-purge.c:286,2'
          Dst:             array_create_i
        - Src:             'mail-cache-purge.c:288,7'
          Dst:             mail_index_transaction_is_expunged
        - Src:             'mail-cache-purge.c:289,4'
          Dst:             array_append_space_i
        - Src:             'mail-cache-purge.c:294,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-purge.c:298,11'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-cache-purge.c:299,14'
          Dst:             buffer_get_size
        - Src:             'mail-cache-purge.c:302,3'
          Dst:             array_clear_i
        - Src:             'mail-cache-purge.c:305,3'
          Dst:             buffer_append
        - Src:             'mail-cache-purge.c:307,3'
          Dst:             mail_cache_lookup_iter_init
        - Src:             'mail-cache-purge.c:308,10'
          Dst:             mail_cache_lookup_iter_next
        - Src:             'mail-cache-purge.c:309,4'
          Dst:             mail_cache_purge_field
        - Src:             'mail-cache-purge.c:316,4'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-cache-purge.c:319,4'
          Dst:             buffer_write
        - Src:             'mail-cache-purge.c:321,4'
          Dst:             o_stream_nsend
        - Src:             'mail-cache-purge.c:325,3'
          Dst:             array_append_i
        - Src:             'mail-cache-purge.c:327,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:333,29'
          Dst:             mail_index_uint32_to_offset
        - Src:             'mail-cache-purge.c:334,3'
          Dst:             mail_cache_purge_get_fields
        - Src:             'mail-cache-purge.c:335,3'
          Dst:             o_stream_nsend
        - Src:             'mail-cache-purge.c:339,2'
          Dst:             buffer_free
        - Src:             'mail-cache-purge.c:340,2'
          Dst:             buffer_free
        - Src:             'mail-cache-purge.c:343,8'
          Dst:             o_stream_seek
        - Src:             'mail-cache-purge.c:344,2'
          Dst:             o_stream_nsend
        - Src:             'mail-cache-purge.c:346,2'
          Dst:             mail_cache_view_close
        - Src:             'mail-cache-purge.c:347,2'
          Dst:             mail_index_view_close
        - Src:             'mail-cache-purge.c:349,24'
          Dst:             o_stream_finish
        - Src:             'mail-cache-purge.c:351,4'
          Dst:             __errno_location
        - Src:             'mail-cache-purge.c:352,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-purge.c:355,4'
          Dst:             o_stream_ignore_last_errors
        - Src:             'mail-cache-purge.c:356,4'
          Dst:             mail_index_set_error
        - Src:             'mail-cache-purge.c:359,4'
          Dst:             i_unlink
        - Src:             'mail-cache-purge.c:361,3'
          Dst:             o_stream_destroy
        - Src:             'mail-cache-purge.c:362,3'
          Dst:             array_free_i
        - Src:             'mail-cache-purge.c:365,2'
          Dst:             o_stream_destroy
        - Src:             'mail-cache-purge.c:368,7'
          Dst:             fdatasync
        - Src:             'mail-cache-purge.c:369,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-purge.c:370,4'
          Dst:             array_free_i
    - functionName:    mail_cache_purge_drop_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_headers_check_capped
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:707,7'
          Dst:             mail_cache_headers_check_capped
    - functionName:    fdatasync
      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:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_purge_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          266
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_free_i
        - array_get_i
        - e_debug
        - event_add_int
        - event_create
        - event_send_abort
        - event_set_name
        - event_unref
        - event_want_level
        - fstat
        - mail_cache_copy
        - mail_cache_file_close
        - mail_cache_set_syscall_error
        - mail_cache_unlock
        - mail_index_ext_reset
        - mail_index_update_ext
        - rename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:402,10'
          Dst:             event_create
        - Src:             'mail-cache-purge.c:403,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:404,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:405,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:407,6'
          Dst:             mail_cache_copy
        - Src:             'mail-cache-purge.c:410,3'
          Dst:             event_unref
        - Src:             'mail-cache-purge.c:414,6'
          Dst:             fstat
        - Src:             'mail-cache-purge.c:415,3'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-purge.c:416,3'
          Dst:             array_free_i
        - Src:             'mail-cache-purge.c:417,3'
          Dst:             event_unref
        - Src:             'mail-cache-purge.c:420,6'
          Dst:             rename
        - Src:             'mail-cache-purge.c:421,3'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-purge.c:422,3'
          Dst:             array_free_i
        - Src:             'mail-cache-purge.c:423,3'
          Dst:             event_unref
        - Src:             'mail-cache-purge.c:427,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:428,2'
          Dst:             event_add_int
        - Src:             'mail-cache-purge.c:429,2'
          Dst:             event_set_name
        - Src:             'mail-cache-purge.c:430,2'
          Dst:             event_want_level
        - Src:             'mail-cache-purge.c:430,2'
          Dst:             e_debug
        - Src:             'mail-cache-purge.c:430,2'
          Dst:             event_send_abort
        - Src:             'mail-cache-purge.c:433,2'
          Dst:             event_unref
        - Src:             'mail-cache-purge.c:437,2'
          Dst:             mail_index_ext_reset
        - Src:             'mail-cache-purge.c:438,12'
          Dst:             array_get_i
        - Src:             'mail-cache-purge.c:441,4'
          Dst:             mail_index_update_ext
        - Src:             'mail-cache-purge.c:446,2'
          Dst:             array_free_i
        - Src:             'mail-cache-purge.c:449,3'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache-purge.c:453,2'
          Dst:             mail_cache_file_close
    - functionName:    mail_cache_purge_has_file_changed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_close_fd_path
        - mail_cache_set_syscall_error
        - nfs_safe_open
        - read_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:471,8'
          Dst:             nfs_safe_open
        - Src:             'mail-cache-purge.c:473,8'
          Dst:             __errno_location
        - Src:             'mail-cache-purge.c:476,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-purge.c:480,9'
          Dst:             read_full
        - Src:             'mail-cache-purge.c:481,3'
          Dst:             i_close_fd_path
        - Src:             'mail-cache-purge.c:492,14'
          Dst:             __errno_location
        - Src:             'mail-cache-purge.c:493,4'
          Dst:             mail_cache_set_syscall_error
    - functionName:    mail_cache_purge_locked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          186
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - file_cache_set_fd
        - i_close_fd_path
        - i_unlink
        - mail_cache_header_fields_read
        - mail_cache_map_all
        - mail_cache_purge_has_file_changed
        - mail_cache_purge_later_reset
        - mail_cache_purge_write
        - mail_cache_reopen
        - mail_cache_unlock
        - mail_index_create_tmp_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:510,13'
          Dst:             mail_cache_purge_has_file_changed
        - Src:             'mail-cache-purge.c:515,3'
          Dst:             mail_cache_purge_later_reset
        - Src:             'mail-cache-purge.c:518,10'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache-purge.c:522,10'
          Dst:             mail_cache_reopen
        - Src:             'mail-cache-purge.c:526,7'
          Dst:             mail_cache_map_all
        - Src:             'mail-cache-purge.c:531,7'
          Dst:             mail_index_create_tmp_file
        - Src:             'mail-cache-purge.c:534,6'
          Dst:             mail_cache_purge_write
        - Src:             'mail-cache-purge.c:535,3'
          Dst:             i_close_fd_path
        - Src:             'mail-cache-purge.c:536,3'
          Dst:             i_unlink
        - Src:             'mail-cache-purge.c:540,3'
          Dst:             file_cache_set_fd
        - Src:             'mail-cache-purge.c:542,6'
          Dst:             mail_cache_map_all
        - Src:             'mail-cache-purge.c:544,6'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache-purge.c:547,2'
          Dst:             mail_cache_purge_later_reset
    - functionName:    mail_cache_purge_later_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:690,2'
          Dst:             p_free_internal
    - functionName:    mail_cache_purge_later
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup_vprintf
        - p_free_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:677,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:681,2'
          Dst:             p_free_internal
        - Src:             'mail-cache-purge.c:682,29'
          Dst:             i_strdup_vprintf
    - functionName:    mail_cache_need_purge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:665,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:668,14'
          Dst:             t_strdup
    - functionName:    mail_cache_purge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          132
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mail_cache_purge_full
        - mail_index_refresh
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_transaction_rollback
        - mail_index_view_close
        - mail_index_view_open
        - mail_transaction_log_sync_lock
        - mail_transaction_log_sync_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:624,7'
          Dst:             mail_transaction_log_sync_lock
        - Src:             'mail-cache-purge.c:630,8'
          Dst:             mail_index_refresh
        - Src:             'mail-cache-purge.c:632,9'
          Dst:             mail_index_view_open
        - Src:             'mail-cache-purge.c:633,10'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-cache-purge.c:637,18'
          Dst:             mail_cache_purge_full
        - Src:             'mail-cache-purge.c:639,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'mail-cache-purge.c:641,7'
          Dst:             mail_index_transaction_commit
        - Src:             'mail-cache-purge.c:644,2'
          Dst:             mail_index_view_close
        - Src:             'mail-cache-purge.c:646,3'
          Dst:             mail_transaction_log_sync_unlock
    - functionName:    mail_cache_purge_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          222
      EdgeCount:       42
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_set_used_size
        - i_panic
        - mail_cache_header_fields_read
        - mail_cache_lock
        - mail_cache_purge_locked
        - mail_cache_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-cache-purge.c:578,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-purge.c:559,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:560,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:569,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-purge.c:578,10'
          Dst:             mail_cache_lock
        - Src:             'mail-cache-purge.c:591,8'
          Dst:             mail_cache_purge_locked
        - Src:             'mail-cache-purge.c:594,3'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache-purge.c:595,2'
          Dst:             i_panic
        - Src:             'mail-cache-purge.c:599,9'
          Dst:             mail_cache_header_fields_read
    - functionName:    mail_cache_purge_with_trans
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_purge_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-purge.c:608,9'
          Dst:             mail_cache_purge_full
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    4
      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:    mail_cache_header_fields_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - fdatasync
        - i_panic
        - mail_cache_append
        - mail_cache_header_fields_get_next_offset
        - mail_cache_set_syscall_error
        - mail_cache_write
        - mail_index_uint32_to_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:707,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:710,6'
          Dst:             mail_cache_append
        - Src:             'mail-cache-transaction.c:714,7'
          Dst:             fdatasync
        - Src:             'mail-cache-transaction.c:715,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-transaction.c:720,6'
          Dst:             mail_cache_header_fields_get_next_offset
        - Src:             'mail-cache-transaction.c:724,11'
          Dst:             mail_index_uint32_to_offset
        - Src:             'mail-cache-transaction.c:725,6'
          Dst:             mail_cache_write
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_cache_header_rewrite_fields
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_create_dynamic
        - i_panic
        - mail_cache_header_fields_get
        - mail_cache_header_fields_read
        - mail_cache_header_fields_write
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:743,6'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache-transaction.c:746,2'
          Dst:             t_push
        - Src:             'mail-cache-transaction.c:749,12'
          Dst:             pool_datastack_create
        - Src:             'mail-cache-transaction.c:749,12'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-transaction.c:750,3'
          Dst:             mail_cache_header_fields_get
        - Src:             'mail-cache-transaction.c:751,9'
          Dst:             mail_cache_header_fields_write
        - Src:             'mail-cache-transaction.c:752,4'
          Dst:             t_pop
        - Src:             'mail-cache-transaction.c:752,4'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:757,9'
          Dst:             mail_cache_header_fields_read
    - functionName:    mail_cache_transaction_set_used
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:414,22'
          Dst:             array_get_i
        - Src:             'mail-cache-transaction.c:415,2'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_cache_transaction_update_index
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          181
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_ext_using_reset_id
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:316,11'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-cache-transaction.c:320,2'
          Dst:             mail_index_ext_using_reset_id
        - Src:             'mail-cache-transaction.c:326,9'
          Dst:             array_get_i
        - Src:             'mail-cache-transaction.c:328,3'
          Dst:             mail_index_update_ext
        - Src:             'mail-cache-transaction.c:336,3'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:337,7'
          Dst:             mail_index_transaction_commit
    - functionName:    mail_cache_link_records
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          255
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - array_create_i
        - array_free_i
        - array_get_i
        - array_idx_get_space_i
        - buffer_get_modifiable_data
        - i_panic
        - mail_cache_set_corrupted
        - mail_index_ext_get_reset_id
        - mail_index_lookup_ext_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:357,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:359,2'
          Dst:             array_create_i
        - Src:             'mail-cache-transaction.c:360,9'
          Dst:             array_get_i
        - Src:             'mail-cache-transaction.c:361,8'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-cache-transaction.c:363,13'
          Dst:             array_idx_get_space_i
        - Src:             'mail-cache-transaction.c:368,4'
          Dst:             mail_index_lookup_ext_full
        - Src:             'mail-cache-transaction.c:375,13'
          Dst:             mail_index_ext_get_reset_id
        - Src:             'mail-cache-transaction.c:383,5'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-transaction.c:385,5'
          Dst:             array_free_i
        - Src:             'mail-cache-transaction.c:402,2'
          Dst:             array_free_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_cache_transaction_update_fields
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          246
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_get_modifiable_data
        - i_memcpy
        - i_panic
        - mail_cache_header_rewrite_fields
        - mail_cache_transaction_set_used
        - mail_index_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:433,6'
          Dst:             mail_cache_transaction_set_used
        - Src:             'mail-cache-transaction.c:435,7'
          Dst:             mail_cache_header_rewrite_fields
        - Src:             'mail-cache-transaction.c:438,7'
          Dst:             mail_cache_transaction_set_used
        - Src:             'mail-cache-transaction.c:439,4'
          Dst:             mail_index_set_error
        - Src:             'mail-cache-transaction.c:451,6'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-cache-transaction.c:457,4'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:468,3'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:475,4'
          Dst:             i_memcpy
        - Src:             'mail-cache-transaction.c:483,2'
          Dst:             i_panic
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_transaction_purge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_cache_purge
        - mail_cache_transaction_forget_flushed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:214,12'
          Dst:             mail_cache_purge
        - Src:             'mail-cache-transaction.c:217,2'
          Dst:             mail_cache_transaction_forget_flushed
    - functionName:    mail_cache_transaction_forget_flushed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - e_warning
        - mail_index_ext_set_reset_id
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:133,3'
          Dst:             e_warning
        - Src:             'mail-cache-transaction.c:142,2'
          Dst:             mail_index_ext_set_reset_id
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_close_mail
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_is_created_i
        - seq_range_array_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:935,6'
          Dst:             array_is_created_i
        - Src:             'mail-cache-transaction.c:936,3'
          Dst:             seq_range_array_remove
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_field_want_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - mail_cache_field_exists
        - mail_cache_field_get_decision
        - mail_cache_get_first_new_seq
        - mail_cache_transaction_refresh_decisions
      functionUses:    7
      BranchProfiles:
        - Branch String:   'mail-cache-transaction.c:893,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-cache-transaction.c:889,2'
          Dst:             mail_cache_transaction_refresh_decisions
        - Src:             'mail-cache-transaction.c:891,13'
          Dst:             mail_cache_field_get_decision
        - Src:             'mail-cache-transaction.c:901,5'
          Dst:             mail_cache_get_first_new_seq
        - Src:             'mail-cache-transaction.c:910,9'
          Dst:             mail_cache_field_exists
    - functionName:    mail_cache_transaction_refresh_decisions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_header_fields_read
        - mail_cache_open_and_verify
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:771,9'
          Dst:             mail_cache_open_and_verify
        - Src:             'mail-cache-transaction.c:773,9'
          Dst:             mail_cache_header_fields_read
    - functionName:    mail_cache_transaction_drop_last_flush
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - buffer_copy
        - buffer_set_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:490,2'
          Dst:             buffer_copy
        - Src:             'mail-cache-transaction.c:492,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-transaction.c:497,2'
          Dst:             array_clear_i
        - Src:             'mail-cache-transaction.c:498,2'
          Dst:             array_clear_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_cache_transaction_drop_unwanted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - buffer_delete
        - seq_range_array_remove
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:593,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-cache-transaction.c:597,7'
          Dst:             seq_range_exists
        - Src:             'mail-cache-transaction.c:602,4'
          Dst:             seq_range_array_remove
        - Src:             'mail-cache-transaction.c:612,2'
          Dst:             array_delete_i
        - Src:             'mail-cache-transaction.c:613,2'
          Dst:             buffer_delete
    - functionName:    mail_cache_transaction_switch_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - buffer_append
        - buffer_create_dynamic
        - mail_cache_transaction_update_last_rec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:661,3'
          Dst:             mail_cache_transaction_update_last_rec
        - Src:             'mail-cache-transaction.c:664,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache-transaction.c:666,3'
          Dst:             array_create_i
        - Src:             'mail-cache-transaction.c:667,3'
          Dst:             array_create_i
        - Src:             'mail-cache-transaction.c:668,3'
          Dst:             array_create_i
        - Src:             'mail-cache-transaction.c:672,2'
          Dst:             buffer_append
    - functionName:    mail_cache_transaction_update_last_rec
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - buffer_set_used_size
        - mail_cache_transaction_update_last_rec_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:640,7'
          Dst:             mail_cache_transaction_update_last_rec_size
        - Src:             'mail-cache-transaction.c:642,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-transaction.c:648,14'
          Dst:             array_append_space_i
    - functionName:    mail_cache_transaction_update_last_rec_size
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_get_modifiable_data
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:624,9'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-cache-transaction.c:629,2'
          Dst:             i_panic
    - functionName:    mail_cache_field_can_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_field_exists
        - mail_cache_field_get_decision
        - mail_cache_register_get_field
        - mail_cache_transaction_refresh_decisions
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:918,2'
          Dst:             mail_cache_transaction_refresh_decisions
        - Src:             'mail-cache-transaction.c:920,13'
          Dst:             mail_cache_field_get_decision
        - Src:             'mail-cache-transaction.c:925,41'
          Dst:             mail_cache_register_get_field
        - Src:             'mail-cache-transaction.c:929,9'
          Dst:             mail_cache_field_exists
    - functionName:    mail_cache_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          424
      EdgeCount:       79
      CyclomaticComplexity: 19
      functionsReached:
        - array_idx_set_i
        - buffer_append
        - buffer_append_zero
        - buffer_write
        - i_panic
        - mail_cache_decision_add
        - mail_cache_field_can_add
        - mail_cache_transaction_drop_last_flush
        - mail_cache_transaction_drop_unwanted
        - mail_cache_transaction_flush
        - mail_cache_transaction_refresh_decisions
        - mail_cache_transaction_switch_seq
        - mail_cache_transaction_update_last_rec_size
        - seq_range_array_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:784,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:785,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:787,7'
          Dst:             mail_cache_field_can_add
        - Src:             'mail-cache-transaction.c:795,2'
          Dst:             mail_cache_transaction_refresh_decisions
        - Src:             'mail-cache-transaction.c:800,2'
          Dst:             mail_cache_decision_add
        - Src:             'mail-cache-transaction.c:805,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:813,3'
          Dst:             mail_cache_transaction_switch_seq
        - Src:             'mail-cache-transaction.c:815,3'
          Dst:             seq_range_array_add
        - Src:             'mail-cache-transaction.c:825,6'
          Dst:             mail_cache_transaction_update_last_rec_size
        - Src:             'mail-cache-transaction.c:838,2'
          Dst:             array_idx_set_i
        - Src:             'mail-cache-transaction.c:842,2'
          Dst:             buffer_write
        - Src:             'mail-cache-transaction.c:852,4'
          Dst:             mail_cache_transaction_drop_unwanted
        - Src:             'mail-cache-transaction.c:854,8'
          Dst:             mail_cache_transaction_flush
        - Src:             'mail-cache-transaction.c:869,4'
          Dst:             mail_cache_transaction_drop_last_flush
        - Src:             'mail-cache-transaction.c:873,2'
          Dst:             buffer_append
        - Src:             'mail-cache-transaction.c:875,3'
          Dst:             buffer_append
        - Src:             'mail-cache-transaction.c:879,2'
          Dst:             buffer_append
        - Src:             'mail-cache-transaction.c:881,3'
          Dst:             buffer_append_zero
    - functionName:    mail_cache_transaction_flush
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          406
      EdgeCount:       86
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - array_count_i
        - fstat
        - i_panic
        - mail_cache_append
        - mail_cache_flush_and_unlock
        - mail_cache_link_records
        - mail_cache_set_corrupted
        - mail_cache_set_syscall_error
        - mail_cache_transaction_lock
        - mail_cache_transaction_update_fields
        - mail_cache_transaction_update_index
        - mail_cache_unlock
        - mail_transaction_log_sync_lock
        - mail_transaction_log_sync_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:509,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:511,6'
          Dst:             array_count_i
        - Src:             'mail-cache-transaction.c:513,3'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:526,7'
          Dst:             mail_transaction_log_sync_lock
        - Src:             'mail-cache-transaction.c:532,6'
          Dst:             mail_cache_transaction_lock
        - Src:             'mail-cache-transaction.c:534,4'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-cache-transaction.c:540,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:541,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:543,6'
          Dst:             mail_cache_transaction_update_fields
        - Src:             'mail-cache-transaction.c:545,4'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-cache-transaction.c:548,3'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache-transaction.c:553,6'
          Dst:             fstat
        - Src:             'mail-cache-transaction.c:554,8'
          Dst:             __errno_location
        - Src:             'mail-cache-transaction.c:554,8'
          Dst:             __errno_location
        - Src:             'mail-cache-transaction.c:555,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache-transaction.c:558,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache-transaction.c:562,7'
          Dst:             mail_cache_link_records
        - Src:             'mail-cache-transaction.c:568,6'
          Dst:             mail_cache_append
        - Src:             'mail-cache-transaction.c:573,3'
          Dst:             mail_cache_transaction_update_index
        - Src:             'mail-cache-transaction.c:576,6'
          Dst:             mail_cache_flush_and_unlock
        - Src:             'mail-cache-transaction.c:580,3'
          Dst:             mail_transaction_log_sync_unlock
    - functionName:    mail_cache_transaction_lock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          231
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mail_cache_lock
        - mail_cache_transaction_forget_flushed
        - mail_cache_transaction_lock
        - mail_cache_transaction_purge
        - mail_cache_unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:228,13'
          Dst:             mail_cache_lock
        - Src:             'mail-cache-transaction.c:233,8'
          Dst:             mail_cache_transaction_purge
        - Src:             'mail-cache-transaction.c:235,11'
          Dst:             mail_cache_transaction_lock
        - Src:             'mail-cache-transaction.c:240,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:248,4'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache-transaction.c:249,10'
          Dst:             mail_cache_transaction_purge
        - Src:             'mail-cache-transaction.c:250,11'
          Dst:             mail_cache_transaction_lock
        - Src:             'mail-cache-transaction.c:259,3'
          Dst:             mail_cache_transaction_forget_flushed
        - Src:             'mail-cache-transaction.c:260,3'
          Dst:             i_panic
    - functionName:    mail_cache_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_cache_transaction_flush
        - mail_cache_transaction_rollback
        - mail_cache_transaction_update_last_rec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:685,4'
          Dst:             mail_cache_transaction_update_last_rec
        - Src:             'mail-cache-transaction.c:686,7'
          Dst:             mail_cache_transaction_flush
        - Src:             'mail-cache-transaction.c:698,2'
          Dst:             mail_cache_transaction_rollback
    - functionName:    mail_cache_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          137
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_free_i
        - array_idx_clear_i
        - array_is_created_i
        - buffer_free
        - mail_cache_flush_and_unlock
        - mail_cache_transaction_lock
        - mail_index_view_close
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:168,7'
          Dst:             mail_cache_transaction_lock
        - Src:             'mail-cache-transaction.c:172,10'
          Dst:             mail_cache_flush_and_unlock
        - Src:             'mail-cache-transaction.c:176,2'
          Dst:             array_idx_clear_i
        - Src:             'mail-cache-transaction.c:181,2'
          Dst:             mail_index_view_close
        - Src:             'mail-cache-transaction.c:182,2'
          Dst:             buffer_free
        - Src:             'mail-cache-transaction.c:183,6'
          Dst:             array_is_created_i
        - Src:             'mail-cache-transaction.c:184,3'
          Dst:             array_free_i
        - Src:             'mail-cache-transaction.c:185,6'
          Dst:             array_is_created_i
        - Src:             'mail-cache-transaction.c:186,3'
          Dst:             array_free_i
        - Src:             'mail-cache-transaction.c:187,2'
          Dst:             array_free_i
        - Src:             'mail-cache-transaction.c:188,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_transaction_lookup_rec
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          130
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - mail_cache_transaction_update_last_rec_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:273,9'
          Dst:             array_get_i
        - Src:             'mail-cache-transaction.c:286,8'
          Dst:             mail_cache_transaction_update_last_rec_size
    - functionName:    mail_cache_transactions_have_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_transaction_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_clear_i
        - array_is_created_i
        - buffer_set_used_size
        - mail_cache_transaction_forget_flushed
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:148,2'
          Dst:             mail_cache_transaction_forget_flushed
        - Src:             'mail-cache-transaction.c:150,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache-transaction.c:151,6'
          Dst:             array_is_created_i
        - Src:             'mail-cache-transaction.c:152,3'
          Dst:             array_clear_i
    - functionName:    mail_index_transaction_cache_rollback
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_transaction_rollback
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:89,43'
          Dst:             module_context_get_require
        - Src:             'mail-cache-transaction.c:92,2'
          Dst:             mail_cache_transaction_rollback
    - functionName:    mail_index_transaction_cache_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_transaction_commit
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:77,43'
          Dst:             module_context_get_require
        - Src:             'mail-cache-transaction.c:82,8'
          Dst:             mail_cache_transaction_commit
    - functionName:    mail_index_transaction_cache_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_transaction_reset
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:66,43'
          Dst:             module_context_get_require
        - Src:             'mail-cache-transaction.c:69,2'
          Dst:             mail_cache_transaction_reset
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_get_transaction
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_set_i
        - i_panic
        - mail_index_transaction_open_updated_view
        - malloc_multiply_check
        - module_context_get
        - module_get_context_id
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-transaction.c:103,3'
          Dst:             module_context_get
        - Src:             'mail-cache-transaction.c:108,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-transaction.c:108,8'
          Dst:             p_malloc
        - Src:             'mail-cache-transaction.c:113,2'
          Dst:             i_panic
        - Src:             'mail-cache-transaction.c:115,21'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'mail-cache-transaction.c:122,2'
          Dst:             module_get_context_id
        - Src:             'mail-cache-transaction.c:122,2'
          Dst:             array_idx_set_i
    - functionName:    mail_cache_init_file_cache
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - file_cache_set_fd
        - file_cache_set_size
        - fstat
        - mail_cache_set_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:119,3'
          Dst:             file_cache_set_fd
        - Src:             'mail-cache.c:121,6'
          Dst:             fstat
        - Src:             'mail-cache.c:123,10'
          Dst:             file_cache_set_size
        - Src:             'mail-cache.c:124,14'
          Dst:             __errno_location
        - Src:             'mail-cache.c:124,14'
          Dst:             __errno_location
        - Src:             'mail-cache.c:125,3'
          Dst:             mail_cache_set_syscall_error
    - functionName:    mail_cache_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_file_set_syscall_error
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:27,2'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_cache_verify_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - mail_cache_set_corrupted
        - mail_cache_unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:292,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:298,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:304,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:311,3'
          Dst:             mail_cache_unlink
        - Src:             'mail-cache.c:315,3'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - event_create_passthrough
        - i_panic
        - mail_cache_unlink
        - mail_index_set_error_nolog
        - t_pop
        - t_push
        - t_strdup_printf
        - t_strdup_vprintf
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:43,2'
          Dst:             mail_cache_unlink
        - Src:             'mail-cache.c:46,2'
          Dst:             t_push
        - Src:             'mail-cache.c:47,24'
          Dst:             t_strdup_vprintf
        - Src:             'mail-cache.c:48,24'
          Dst:             t_strdup_printf
        - Src:             'mail-cache.c:50,3'
          Dst:             event_create_passthrough
        - Src:             'mail-cache.c:50,3'
          Dst:             e_error
        - Src:             'mail-cache.c:53,3'
          Dst:             mail_index_set_error_nolog
        - Src:             'mail-cache.c:54,4'
          Dst:             t_pop
        - Src:             'mail-cache.c:54,4'
          Dst:             i_panic
    - functionName:    mail_cache_unlink
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_unlink_if_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:34,3'
          Dst:             i_unlink_if_exists
    - functionName:    mail_cache_map_finish
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          170
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_cache_purge_later
        - mail_cache_update_need_purge
        - mail_cache_verify_header
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:332,8'
          Dst:             mail_cache_verify_header
        - Src:             'mail-cache.c:335,5'
          Dst:             mail_cache_purge_later
        - Src:             'mail-cache.c:344,4'
          Dst:             i_memcpy
        - Src:             'mail-cache.c:348,3'
          Dst:             mail_cache_update_need_purge
        - Src:             'mail-cache.c:350,3'
          Dst:             i_panic
        - Src:             'mail-cache.c:352,2'
          Dst:             i_panic
    - functionName:    mail_cache_update_need_purge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          260
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - fstat
        - mail_cache_purge_later
        - mail_cache_set_syscall_error
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:231,3'
          Dst:             mail_cache_purge_later
        - Src:             'mail-cache.c:256,23'
          Dst:             t_strdup_printf
        - Src:             'mail-cache.c:270,23'
          Dst:             t_strdup_printf
        - Src:             'mail-cache.c:276,7'
          Dst:             fstat
        - Src:             'mail-cache.c:277,9'
          Dst:             __errno_location
        - Src:             'mail-cache.c:277,9'
          Dst:             __errno_location
        - Src:             'mail-cache.c:278,5'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:282,4'
          Dst:             mail_cache_purge_later
    - functionName:    mail_cache_map_with_read
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - buffer_append_space_unsafe
        - buffer_create_dynamic
        - buffer_set_used_size
        - mail_cache_map_finish
        - mail_cache_set_syscall_error
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:369,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-cache.c:376,10'
          Dst:             mail_cache_map_finish
        - Src:             'mail-cache.c:379,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:388,9'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-cache.c:389,8'
          Dst:             pread
        - Src:             'mail-cache.c:391,7'
          Dst:             __errno_location
        - Src:             'mail-cache.c:392,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:394,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:399,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:406,9'
          Dst:             mail_cache_map_finish
    - functionName:    mail_cache_get_first_new_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_get_header
        - mail_index_lookup_seq_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:1004,12'
          Dst:             mail_index_get_header
        - Src:             'mail-cache.c:1008,7'
          Dst:             mail_index_lookup_seq_range
    - functionName:    mail_cache_view_update_cache_decisions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          154
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_free
        - i_panic
        - mail_cache_header_fields_update
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:981,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:986,23'
          Dst:             mail_cache_header_fields_update
        - Src:             'mail-cache.c:989,2'
          Dst:             buffer_free
        - Src:             'mail-cache.c:990,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_view_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:967,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache.c:967,9'
          Dst:             p_malloc
        - Src:             'mail-cache.c:971,3'
          Dst:             buffer_create_dynamic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_cache_exists
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 959
      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:    mail_cache_append
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          157
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fstat
        - mail_cache_set_corrupted
        - mail_cache_set_syscall_error
        - mail_cache_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:935,7'
          Dst:             fstat
        - Src:             'mail-cache.c:936,9'
          Dst:             __errno_location
        - Src:             'mail-cache.c:936,9'
          Dst:             __errno_location
        - Src:             'mail-cache.c:937,5'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:942,4'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:949,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:952,6'
          Dst:             mail_cache_write
    - functionName:    mail_cache_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_set_used_size
        - file_cache_write
        - i_panic
        - mail_cache_set_syscall_error
        - pwrite_full
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:915,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:917,6'
          Dst:             pwrite_full
        - Src:             'mail-cache.c:918,3'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:923,3'
          Dst:             file_cache_write
        - Src:             'mail-cache.c:925,3'
          Dst:             buffer_set_used_size
    - functionName:    mail_cache_flush_and_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_cache_header_fields_update
        - mail_cache_unlock
        - mail_cache_update_need_purge
        - mail_cache_write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:870,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:873,23'
          Dst:             mail_cache_header_fields_update
        - Src:             'mail-cache.c:879,3'
          Dst:             mail_cache_unlock
        - Src:             'mail-cache.c:885,7'
          Dst:             mail_cache_write
        - Src:             'mail-cache.c:889,3'
          Dst:             mail_cache_update_need_purge
        - Src:             'mail-cache.c:892,2'
          Dst:             mail_cache_unlock
    - functionName:    mail_cache_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - fdatasync
        - i_panic
        - mail_cache_set_syscall_error
        - mail_cache_unlock_file
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:898,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:904,7'
          Dst:             fdatasync
        - Src:             'mail-cache.c:905,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:909,2'
          Dst:             mail_cache_unlock_file
    - functionName:    mail_cache_unlock_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - file_unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:697,3'
          Dst:             file_unlock
    - functionName:    mail_cache_need_reopen
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          215
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - mail_cache_set_syscall_error
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:181,3'
          Dst:             i_panic
        - Src:             'mail-cache.c:182,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'mail-cache.c:184,6'
          Dst:             nfs_safe_stat
        - Src:             'mail-cache.c:187,29'
          Dst:             __errno_location
        - Src:             'mail-cache.c:188,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:194,7'
          Dst:             gnu_dev_major
        - Src:             'mail-cache.c:194,7'
          Dst:             gnu_dev_major
        - Src:             'mail-cache.c:194,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-cache.c:194,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-cache.c:203,7'
          Dst:             fstat
        - Src:             'mail-cache.c:204,8'
          Dst:             __errno_location
        - Src:             'mail-cache.c:204,8'
          Dst:             __errno_location
        - Src:             'mail-cache.c:206,4'
          Dst:             mail_cache_set_syscall_error
    - functionName:    mail_cache_lock_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          194
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - file_dotlock_create
        - file_lock_from_dotlock
        - i_panic
        - mail_cache_set_syscall_error
        - mail_index_flush_read_cache
        - mail_index_lock_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:658,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:663,9'
          Dst:             mail_index_lock_fd
        - Src:             'mail-cache.c:672,9'
          Dst:             file_dotlock_create
        - Src:             'mail-cache.c:675,23'
          Dst:             file_lock_from_dotlock
        - Src:             'mail-cache.c:677,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:689,2'
          Dst:             mail_index_flush_read_cache
    - functionName:    mail_cache_lock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          293
      EdgeCount:       66
      CyclomaticComplexity: 14
      functionsReached:
        - buffer_set_used_size
        - file_cache_invalidate
        - i_panic
        - mail_cache_lock_file
        - mail_cache_map_all
        - mail_cache_need_reopen
        - mail_cache_open_and_verify
        - mail_cache_reopen
        - mail_cache_sync_reset_id
        - mail_cache_unlock
        - mail_cache_unlock_file
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:806,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:810,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:819,13'
          Dst:             mail_cache_open_and_verify
        - Src:             'mail-cache.c:828,7'
          Dst:             mail_cache_lock_file
        - Src:             'mail-cache.c:830,8'
          Dst:             mail_cache_need_reopen
        - Src:             'mail-cache.c:834,14'
          Dst:             mail_cache_reopen
        - Src:             'mail-cache.c:835,4'
          Dst:             i_panic
        - Src:             'mail-cache.c:838,3'
          Dst:             i_panic
        - Src:             'mail-cache.c:842,13'
          Dst:             mail_cache_sync_reset_id
        - Src:             'mail-cache.c:843,3'
          Dst:             mail_cache_unlock_file
        - Src:             'mail-cache.c:846,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:853,3'
          Dst:             file_cache_invalidate
        - Src:             'mail-cache.c:857,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:858,13'
          Dst:             mail_cache_map_all
        - Src:             'mail-cache.c:859,3'
          Dst:             mail_cache_unlock
    - functionName:    mail_cache_open_and_verify
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          95
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - mail_cache_file_close
        - mail_cache_header_fields_read
        - mail_cache_try_open
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:554,3'
          Dst:             mail_cache_file_close
        - Src:             'mail-cache.c:556,13'
          Dst:             mail_cache_try_open
        - Src:             'mail-cache.c:558,3'
          Dst:             mail_cache_file_close
        - Src:             'mail-cache.c:563,7'
          Dst:             mail_cache_header_fields_read
        - Src:             'mail-cache.c:570,3'
          Dst:             mail_cache_file_close
    - functionName:    mail_cache_reopen
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_file_close
        - mail_cache_open_and_verify
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:215,2'
          Dst:             mail_cache_file_close
        - Src:             'mail-cache.c:216,9'
          Dst:             mail_cache_open_and_verify
    - functionName:    mail_cache_sync_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mail_cache_set_corrupted
        - mail_cache_sync_wait_index
        - mail_cache_verify_reset_id
        - mail_index_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:771,6'
          Dst:             mail_cache_verify_reset_id
        - Src:             'mail-cache.c:778,3'
          Dst:             i_panic
        - Src:             'mail-cache.c:779,3'
          Dst:             mail_cache_set_corrupted
        - Src:             'mail-cache.c:784,6'
          Dst:             mail_index_refresh
        - Src:             'mail-cache.c:786,6'
          Dst:             mail_cache_verify_reset_id
        - Src:             'mail-cache.c:791,8'
          Dst:             mail_cache_sync_wait_index
        - Src:             'mail-cache.c:793,3'
          Dst:             mail_cache_set_corrupted
    - functionName:    mail_cache_map_all
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_cache_map_full
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:538,12'
          Dst:             mail_cache_map_full
        - Src:             'mail-cache.c:539,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:541,3'
          Dst:             i_panic
    - functionName:    mail_cache_map_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          514
      EdgeCount:       102
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - buffer_set_used_size
        - e_error
        - file_cache_get_map
        - file_cache_read
        - fstat
        - i_panic
        - mail_cache_map_finish
        - mail_cache_map_with_read
        - mail_cache_set_syscall_error
        - mmap_ro_file
        - munmap
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:430,7'
          Dst:             fstat
        - Src:             'mail-cache.c:431,4'
          Dst:             e_error
        - Src:             'mail-cache.c:446,10'
          Dst:             mail_cache_map_with_read
        - Src:             'mail-cache.c:450,9'
          Dst:             file_cache_read
        - Src:             'mail-cache.c:459,29'
          Dst:             __errno_location
        - Src:             'mail-cache.c:460,33'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:465,10'
          Dst:             file_cache_get_map
        - Src:             'mail-cache.c:469,10'
          Dst:             mail_cache_map_finish
        - Src:             'mail-cache.c:477,3'
          Dst:             i_panic
        - Src:             'mail-cache.c:487,7'
          Dst:             munmap
        - Src:             'mail-cache.c:488,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:493,4'
          Dst:             i_panic
        - Src:             'mail-cache.c:503,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:505,21'
          Dst:             mmap_ro_file
        - Src:             'mail-cache.c:510,40'
          Dst:             t_strdup_printf
        - Src:             'mail-cache.c:510,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:518,9'
          Dst:             mail_cache_map_finish
    - functionName:    munmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_cache_verify_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_view_close
        - mail_index_view_get_ext
        - mail_index_view_open
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:707,10'
          Dst:             mail_index_view_open
        - Src:             'mail-cache.c:708,8'
          Dst:             mail_index_view_get_ext
        - Src:             'mail-cache.c:710,2'
          Dst:             mail_index_view_close
    - functionName:    mail_cache_sync_wait_index
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          166
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - mail_cache_lock_file
        - mail_cache_need_reopen
        - mail_cache_reopen
        - mail_cache_unlock_file
        - mail_cache_verify_reset_id
        - mail_index_refresh
        - mail_transaction_log_sync_lock
        - mail_transaction_log_sync_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:734,3'
          Dst:             mail_cache_unlock_file
        - Src:             'mail-cache.c:735,6'
          Dst:             mail_transaction_log_sync_lock
        - Src:             'mail-cache.c:742,9'
          Dst:             mail_cache_lock_file
        - Src:             'mail-cache.c:745,8'
          Dst:             mail_cache_need_reopen
        - Src:             'mail-cache.c:749,14'
          Dst:             mail_cache_reopen
        - Src:             'mail-cache.c:755,11'
          Dst:             mail_index_refresh
        - Src:             'mail-cache.c:758,9'
          Dst:             mail_cache_verify_reset_id
        - Src:             'mail-cache.c:759,2'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-cache.c:761,3'
          Dst:             mail_cache_unlock_file
    - functionName:    mail_cache_file_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_set_used_size
        - close
        - file_cache_set_fd
        - file_lock_free
        - mail_cache_set_syscall_error
        - munmap
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:89,7'
          Dst:             munmap
        - Src:             'mail-cache.c:90,4'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:94,3'
          Dst:             file_cache_set_fd
        - Src:             'mail-cache.c:96,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-cache.c:103,2'
          Dst:             file_lock_free
        - Src:             'mail-cache.c:107,7'
          Dst:             close
        - Src:             'mail-cache.c:108,4'
          Dst:             mail_cache_set_syscall_error
    - functionName:    mail_cache_try_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          141
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_panic
        - mail_cache_file_close
        - mail_cache_init_file_cache
        - mail_cache_map_all
        - mail_cache_purge_later_reset
        - mail_cache_set_syscall_error
        - nfs_safe_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:137,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:143,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:144,14'
          Dst:             nfs_safe_open
        - Src:             'mail-cache.c:147,13'
          Dst:             __errno_location
        - Src:             'mail-cache.c:148,3'
          Dst:             mail_cache_file_close
        - Src:             'mail-cache.c:150,4'
          Dst:             mail_cache_purge_later_reset
        - Src:             'mail-cache.c:154,3'
          Dst:             mail_cache_set_syscall_error
        - Src:             'mail-cache.c:158,2'
          Dst:             mail_cache_init_file_cache
        - Src:             'mail-cache.c:160,13'
          Dst:             mail_cache_map_all
        - Src:             'mail-cache.c:161,3'
          Dst:             mail_cache_file_close
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          133
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_free
        - event_unref
        - file_cache_free
        - hash_table_destroy
        - i_panic
        - mail_cache_file_close
        - mail_index_unregister_expunge_handler
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:626,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:629,3'
          Dst:             file_cache_free
        - Src:             'mail-cache.c:631,2'
          Dst:             mail_index_unregister_expunge_handler
        - Src:             'mail-cache.c:632,2'
          Dst:             mail_cache_file_close
        - Src:             'mail-cache.c:634,2'
          Dst:             buffer_free
        - Src:             'mail-cache.c:635,2'
          Dst:             hash_table_destroy
        - Src:             'mail-cache.c:636,2'
          Dst:             pool_unref
        - Src:             'mail-cache.c:637,2'
          Dst:             event_unref
        - Src:             'mail-cache.c:638,2'
          Dst:             p_free_internal
        - Src:             'mail-cache.c:639,2'
          Dst:             p_free_internal
        - Src:             'mail-cache.c:640,2'
          Dst:             p_free_internal
        - Src:             'mail-cache.c:641,2'
          Dst:             p_free_internal
        - Src:             'mail-cache.c:642,2'
          Dst:             p_free_internal
        - Src:             'mail-cache.c:643,2'
          Dst:             p_free_internal
    - functionName:    mail_cache_open_or_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_cache_open_or_create_path
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:615,21'
          Dst:             t_strconcat
        - Src:             'mail-cache.c:617,9'
          Dst:             mail_cache_open_or_create_path
    - functionName:    mail_cache_open_or_create_path
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          172
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_add_category
        - event_create
        - file_cache_new_path
        - hash_table_create
        - i_strdup
        - mail_cache_expunge_handler
        - mail_index_ext_register
        - mail_index_register_expunge_handler
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcase_hash
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:580,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache.c:580,10'
          Dst:             p_malloc
        - Src:             'mail-cache.c:583,20'
          Dst:             i_strdup
        - Src:             'mail-cache.c:584,22'
          Dst:             pool_alloconly_create
        - Src:             'mail-cache.c:585,2'
          Dst:             hash_table_create
        - Src:             'mail-cache.c:585,2'
          Dst:             strcase_hash
        - Src:             'mail-cache.c:585,2'
          Dst:             strcasecmp
        - Src:             'mail-cache.c:588,17'
          Dst:             event_create
        - Src:             'mail-cache.c:589,2'
          Dst:             event_add_category
        - Src:             'mail-cache.c:601,23'
          Dst:             file_cache_new_path
        - Src:             'mail-cache.c:606,3'
          Dst:             mail_index_ext_register
        - Src:             'mail-cache.c:608,2'
          Dst:             mail_index_register_expunge_handler
        - Src:             'mail-cache.c:608,2'
          Dst:             mail_cache_expunge_handler
    - functionName:    mail_cache_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_cache_map_full
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:525,2'
          Dst:             i_panic
        - Src:             'mail-cache.c:528,12'
          Dst:             mail_cache_map_full
        - Src:             'mail-cache.c:529,2'
          Dst:             i_panic
    - functionName:    mail_cache_set_seq_corrupted_reason
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          93
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - event_create_passthrough
        - mail_cache_expunge_count
        - mail_index_lookup_uid
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_ext
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache.c:67,3'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-cache.c:68,2'
          Dst:             mail_index_update_ext
        - Src:             'mail-cache.c:70,6'
          Dst:             mail_index_transaction_commit
        - Src:             'mail-cache.c:76,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-cache.c:77,23'
          Dst:             t_strdup_printf
        - Src:             'mail-cache.c:79,2'
          Dst:             event_create_passthrough
        - Src:             'mail-cache.c:79,2'
          Dst:             e_error
        - Src:             'mail-cache.c:83,2'
          Dst:             mail_cache_expunge_count
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_alloc_cache_list_unref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:63,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:64,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:67,2'
          Dst:             mail_index_close
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_alloc_cache_index_closing
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          94
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - destroy_unrefed
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:295,3'
          Dst:             module_context_get
        - Src:             'mail-index-alloc-cache.c:297,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:306,8'
          Dst:             destroy_unrefed
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    destroy_unrefed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          163
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - mail_index_alloc_cache_list_free
        - mail_index_alloc_cache_list_unref
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:207,4'
          Dst:             mail_index_alloc_cache_list_free
        - Src:             'mail-index-alloc-cache.c:221,5'
          Dst:             mail_index_alloc_cache_list_unref
        - Src:             'mail-index-alloc-cache.c:228,3'
          Dst:             timeout_remove
    - functionName:    mail_index_alloc_cache_list_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_alloc_cache_list_unref
        - mail_index_free
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:74,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:77,3'
          Dst:             mail_index_alloc_cache_list_unref
        - Src:             'mail-index-alloc-cache.c:78,2'
          Dst:             mail_index_free
        - Src:             'mail-index-alloc-cache.c:79,2'
          Dst:             p_free_internal
        - Src:             'mail-index-alloc-cache.c:80,2'
          Dst:             p_free_internal
    - functionName:    mail_index_alloc_cache_index_opened
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - module_context_get
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:279,3'
          Dst:             module_context_get
        - Src:             'mail-index-alloc-cache.c:285,7'
          Dst:             stat
    - functionName:    mail_index_alloc_cache_destroy_unrefed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_unrefed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:273,2'
          Dst:             destroy_unrefed
    - functionName:    index_removal_timeout
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_unrefed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:235,2'
          Dst:             destroy_unrefed
    - functionName:    mail_index_alloc_cache_unref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          146
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_removal_timeout
        - io_loop_get_root
        - mail_index_alloc_cache_list_free
        - timeout_add_to
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:252,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:253,2'
          Dst:             i_panic
        - Src:             'mail-index-alloc-cache.c:261,3'
          Dst:             mail_index_alloc_cache_list_free
        - Src:             'mail-index-alloc-cache.c:265,14'
          Dst:             io_loop_get_root
        - Src:             'mail-index-alloc-cache.c:265,14'
          Dst:             timeout_add_to
        - Src:             'mail-index-alloc-cache.c:265,14'
          Dst:             index_removal_timeout
    - functionName:    mail_index_alloc_cache_find
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - gnu_dev_major
        - gnu_dev_minor
        - i_error
        - stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:180,6'
          Dst:             stat
        - Src:             'mail-index-alloc-cache.c:181,7'
          Dst:             __errno_location
        - Src:             'mail-index-alloc-cache.c:182,4'
          Dst:             i_error
        - Src:             'mail-index-alloc-cache.c:188,7'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:188,7'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:188,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-alloc-cache.c:188,7'
          Dst:             gnu_dev_minor
    - functionName:    mail_index_alloc_cache_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          66
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_set_i
        - i_strdup
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:45,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-alloc-cache.c:45,9'
          Dst:             p_malloc
        - Src:             'mail-index-alloc-cache.c:49,23'
          Dst:             i_strdup
        - Src:             'mail-index-alloc-cache.c:56,2'
          Dst:             module_get_context_id
        - Src:             'mail-index-alloc-cache.c:56,2'
          Dst:             array_idx_set_i
    - functionName:    mail_index_alloc_cache_find_and_expire
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          308
      EdgeCount:       83
      CyclomaticComplexity: 24
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
        - mail_index_alloc_cache_list_free
        - stat
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:104,8'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:104,8'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:104,8'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-alloc-cache.c:104,8'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-alloc-cache.c:108,9'
          Dst:             stat
        - Src:             'mail-index-alloc-cache.c:110,10'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:110,10'
          Dst:             gnu_dev_major
        - Src:             'mail-index-alloc-cache.c:110,10'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-alloc-cache.c:110,10'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-alloc-cache.c:117,8'
          Dst:             strcmp
        - Src:             'mail-index-alloc-cache.c:125,5'
          Dst:             mail_index_alloc_cache_list_free
    - functionName:    mail_index_alloc_cache_get
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-alloc-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          143
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - i_panic
        - mail_index_alloc
        - mail_index_alloc_cache_add
        - mail_index_alloc_cache_find_and_expire
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-alloc-cache.c:150,13'
          Dst:             stat
        - Src:             'mail-index-alloc-cache.c:151,7'
          Dst:             __errno_location
        - Src:             'mail-index-alloc-cache.c:153,14'
          Dst:             __errno_location
        - Src:             'mail-index-alloc-cache.c:153,14'
          Dst:             __errno_location
        - Src:             'mail-index-alloc-cache.c:153,14'
          Dst:             __errno_location
        - Src:             'mail-index-alloc-cache.c:154,4'
          Dst:             eacces_error_get
        - Src:             'mail-index-alloc-cache.c:154,4'
          Dst:             e_error
        - Src:             'mail-index-alloc-cache.c:157,4'
          Dst:             e_error
        - Src:             'mail-index-alloc-cache.c:161,10'
          Dst:             mail_index_alloc_cache_find_and_expire
        - Src:             'mail-index-alloc-cache.c:165,4'
          Dst:             mail_index_alloc
        - Src:             'mail-index-alloc-cache.c:166,11'
          Dst:             mail_index_alloc_cache_add
        - Src:             'mail-index-alloc-cache.c:170,2'
          Dst:             i_panic
    - functionName:    keyword_name_is_valid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_fsck_find_keyword_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mail_index_fsck_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          503
      EdgeCount:       65
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_i
        - array_create_i
        - array_has_name
        - array_idx_modifiable_i
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_append_zero
        - buffer_copy
        - buffer_create_dynamic
        - buffer_free
        - buffer_write
        - i_panic
        - keyword_name_is_valid
        - mail_index_fsck_error
        - mail_index_fsck_find_keyword_count
        - mail_index_map_ext_hdr_offset
        - pool_datastack_create
        - strlen
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:159,3'
          Dst:             mail_index_map_ext_hdr_offset
        - Src:             'mail-index-fsck.c:170,4'
          Dst:             mail_index_fsck_find_keyword_count
        - Src:             'mail-index-fsck.c:171,3'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:182,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-fsck.c:182,2'
          Dst:             array_create_i
        - Src:             'mail-index-fsck.c:185,8'
          Dst:             keyword_name_is_valid
        - Src:             'mail-index-fsck.c:191,24'
          Dst:             array_has_name
        - Src:             'mail-index-fsck.c:195,3'
          Dst:             array_append_i
        - Src:             'mail-index-fsck.c:200,15'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-fsck.c:203,11'
          Dst:             t_strdup_printf
        - Src:             'mail-index-fsck.c:204,9'
          Dst:             array_has_name
        - Src:             'mail-index-fsck.c:217,2'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:220,9'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-fsck.c:222,15'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-fsck.c:228,8'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-fsck.c:234,3'
          Dst:             buffer_write
        - Src:             'mail-index-fsck.c:237,38'
          Dst:             strlen
        - Src:             'mail-index-fsck.c:237,3'
          Dst:             buffer_append
        - Src:             'mail-index-fsck.c:242,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-fsck.c:249,3'
          Dst:             buffer_copy
        - Src:             'mail-index-fsck.c:256,3'
          Dst:             buffer_write
        - Src:             'mail-index-fsck.c:260,2'
          Dst:             i_panic
        - Src:             'mail-index-fsck.c:261,2'
          Dst:             buffer_write
        - Src:             'mail-index-fsck.c:266,2'
          Dst:             buffer_free
    - functionName:    mail_index_fsck_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_set_error
        - t_strdup_vprintf
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:18,26'
          Dst:             t_strdup_vprintf
        - Src:             'mail-index-fsck.c:17,2'
          Dst:             mail_index_set_error
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_has_name
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:88,2'
          Dst:             i_memcpy
        - Src:             'mail-index-fsck.c:89,7'
          Dst:             strcmp
    - functionName:    mail_index_fsck_log_pos
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          258
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - mail_index_fsck_error
        - mail_transaction_log_get_head
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:36,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-fsck.c:62,9'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:65,3'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:66,3'
          Dst:             mail_index_fsck_error
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mail_index_fsck_records
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          570
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - mail_index_fsck_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:349,6'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:355,6'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:394,3'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:408,2'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:409,9'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:410,9'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:411,9'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:413,9'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:414,2'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:415,2'
          Dst:             mail_index_fsck_error
    - functionName:    mail_index_fsck_extensions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          161
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_create_i
        - array_has_name
        - buffer_copy
        - buffer_set_used_size
        - mail_index_fsck_error
        - mail_index_fsck_keywords
        - mail_index_map_ext_get_next
        - mail_index_map_ext_hdr_check
        - pool_datastack_create
        - strcmp
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:278,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-fsck.c:278,2'
          Dst:             array_create_i
        - Src:             'mail-index-fsck.c:286,7'
          Dst:             mail_index_map_ext_get_next
        - Src:             'mail-index-fsck.c:289,4'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:294,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-fsck.c:297,7'
          Dst:             mail_index_map_ext_hdr_check
        - Src:             'mail-index-fsck.c:299,4'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:301,14'
          Dst:             array_has_name
        - Src:             'mail-index-fsck.c:302,4'
          Dst:             mail_index_fsck_error
        - Src:             'mail-index-fsck.c:306,11'
          Dst:             t_strdup
        - Src:             'mail-index-fsck.c:308,8'
          Dst:             strcmp
        - Src:             'mail-index-fsck.c:309,5'
          Dst:             mail_index_fsck_keywords
        - Src:             'mail-index-fsck.c:313,4'
          Dst:             array_append_i
        - Src:             'mail-index-fsck.c:320,3'
          Dst:             buffer_copy
        - Src:             'mail-index-fsck.c:322,3'
          Dst:             buffer_set_used_size
    - functionName:    mail_index_fsck_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_fsck_log_pos
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:77,23'
          Dst:             time_to_uint32
        - Src:             'mail-index-fsck.c:80,3'
          Dst:             mail_index_fsck_log_pos
    - functionName:    mail_index_reset_fscked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     externalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_fsck_locked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     externalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_fsck
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:484,2'
          Dst:             i_panic
        - Src:             'mail-index-fsck.c:485,8'
          Dst:             mail_index_fsck
        - Src:             'mail-index-fsck.c:486,2'
          Dst:             i_panic
    - functionName:    mail_index_fsck
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     externalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          144
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - e_warning
        - i_panic
        - mail_index_fsck_map
        - mail_index_map_clone
        - mail_index_unmap
        - mail_index_write
        - mail_transaction_log_create
        - mail_transaction_log_sync_lock
        - mail_transaction_log_sync_unlock
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:448,2'
          Dst:             e_warning
        - Src:             'mail-index-fsck.c:455,7'
          Dst:             mail_transaction_log_create
        - Src:             'mail-index-fsck.c:460,7'
          Dst:             mail_transaction_log_sync_lock
        - Src:             'mail-index-fsck.c:465,8'
          Dst:             mail_index_map_clone
        - Src:             'mail-index-fsck.c:466,2'
          Dst:             mail_index_unmap
        - Src:             'mail-index-fsck.c:469,2'
          Dst:             t_push
        - Src:             'mail-index-fsck.c:470,3'
          Dst:             mail_index_fsck_map
        - Src:             'mail-index-fsck.c:471,4'
          Dst:             t_pop
        - Src:             'mail-index-fsck.c:471,4'
          Dst:             i_panic
        - Src:             'mail-index-fsck.c:473,2'
          Dst:             mail_index_write
        - Src:             'mail-index-fsck.c:476,3'
          Dst:             mail_transaction_log_sync_unlock
    - functionName:    mail_index_fsck_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-fsck.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_fsck_extensions
        - mail_index_fsck_header
        - mail_index_fsck_records
        - mail_transaction_log_get_head
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-fsck.c:426,3'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-fsck.c:432,2'
          Dst:             mail_index_fsck_header
        - Src:             'mail-index-fsck.c:433,2'
          Dst:             mail_index_fsck_extensions
        - Src:             'mail-index-fsck.c:434,2'
          Dst:             mail_index_fsck_records
        - Src:             'mail-index-fsck.c:438,2'
          Dst:             i_panic
    - functionName:    mail_index_flush_read_cache
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - nfs_flush_read_cache_locked
        - nfs_flush_read_cache_unlocked
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-lock.c:57,3'
          Dst:             nfs_flush_read_cache_locked
        - Src:             'mail-index-lock.c:59,3'
          Dst:             nfs_flush_read_cache_unlocked
    - functionName:    mail_index_lock_fd
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - file_wait_lock
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-lock.c:32,3'
          Dst:             i_panic
        - Src:             'mail-index-lock.c:39,8'
          Dst:             file_wait_lock
        - Src:             'mail-index-lock.c:42,3'
          Dst:             e_error
    - functionName:    mail_index_record_map_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - buffer_free
        - i_panic
        - mail_index_set_syscall_error
        - munmap
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:273,3'
          Dst:             i_panic
        - Src:             'mail-index-map.c:274,3'
          Dst:             buffer_free
        - Src:             'mail-index-map.c:276,3'
          Dst:             i_panic
        - Src:             'mail-index-map.c:277,7'
          Dst:             munmap
        - Src:             'mail-index-map.c:278,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-map.c:281,2'
          Dst:             array_free_i
        - Src:             'mail-index-map.c:282,2'
          Dst:             p_free_internal
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_bsearch_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          267
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:506,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:514,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:526,2'
          Dst:             i_panic
    - functionName:    mail_index_map_lookup_seq_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          203
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mail_index_bsearch_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:548,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:549,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:556,17'
          Dst:             mail_index_bsearch_uid
        - Src:             'mail-index-map.c:579,17'
          Dst:             mail_index_bsearch_uid
        - Src:             'mail-index-map.c:582,2'
          Dst:             i_panic
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_map_get_ext_idx
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:490,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:491,16'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:494,7'
          Dst:             array_idx_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_map_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - mail_index_map_copy_header
        - mail_index_map_copy_records
        - mail_index_record_map_alloc
        - mail_index_record_map_unlink
        - mail_index_set_syscall_error
        - munmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:465,6'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:468,13'
          Dst:             mail_index_record_map_alloc
        - Src:             'mail-index-map.c:471,2'
          Dst:             mail_index_map_copy_records
        - Src:             'mail-index-map.c:473,2'
          Dst:             mail_index_map_copy_header
        - Src:             'mail-index-map.c:476,3'
          Dst:             mail_index_record_map_unlink
        - Src:             'mail-index-map.c:479,7'
          Dst:             munmap
        - Src:             'mail-index-map.c:480,4'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_record_map_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:365,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-map.c:365,12'
          Dst:             p_malloc
        - Src:             'mail-index-map.c:366,2'
          Dst:             array_create_i
        - Src:             'mail-index-map.c:367,2'
          Dst:             array_append_i
    - functionName:    mail_index_map_copy_records
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_get_modifiable_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:325,17'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-map.c:327,2'
          Dst:             buffer_append
        - Src:             'mail-index-map.c:329,18'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_map_copy_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          171
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_set_used_size
        - buffer_write
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:344,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-map.c:347,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-map.c:350,2'
          Dst:             buffer_append
        - Src:             'mail-index-map.c:353,3'
          Dst:             buffer_write
        - Src:             'mail-index-map.c:357,2'
          Dst:             i_panic
    - functionName:    mail_index_record_map_unlink
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
        - mail_index_record_map_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:289,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'mail-index-map.c:290,3'
          Dst:             i_unreached
        - Src:             'mail-index-map.c:291,2'
          Dst:             array_delete_i
        - Src:             'mail-index-map.c:293,6'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:294,3'
          Dst:             mail_index_record_map_free
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_record_map_move_to_private
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          153
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - buffer_set_used_size
        - i_panic
        - mail_index_map_copy_records
        - mail_index_record_map_alloc
        - mail_index_record_map_unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:424,6'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:427,13'
          Dst:             mail_index_record_map_alloc
        - Src:             'mail-index-map.c:428,3'
          Dst:             mail_index_map_copy_records
        - Src:             'mail-index-map.c:430,3'
          Dst:             mail_index_record_map_unlink
        - Src:             'mail-index-map.c:440,3'
          Dst:             i_panic
        - Src:             'mail-index-map.c:448,3'
          Dst:             buffer_set_used_size
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_unmap
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
        - buffer_free
        - i_panic
        - mail_index_record_map_unlink
        - p_free_internal
        - pool_unref
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:307,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:308,2'
          Dst:             mail_index_record_map_unlink
        - Src:             'mail-index-map.c:310,2'
          Dst:             pool_unref
        - Src:             'mail-index-map.c:311,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:312,3'
          Dst:             array_free_i
        - Src:             'mail-index-map.c:313,2'
          Dst:             buffer_free
        - Src:             'mail-index-map.c:314,2'
          Dst:             p_free_internal
    - functionName:    mail_index_map_clone
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          193
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_array_i
        - array_append_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - buffer_create_dynamic
        - buffer_get_modifiable_data
        - i_panic
        - mail_index_map_copy_header
        - mail_index_map_init_extbufs
        - mail_index_record_map_alloc
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:377,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-map.c:377,12'
          Dst:             p_malloc
        - Src:             'mail-index-map.c:381,22'
          Dst:             mail_index_record_map_alloc
        - Src:             'mail-index-map.c:383,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-map.c:386,3'
          Dst:             array_append_i
        - Src:             'mail-index-map.c:389,2'
          Dst:             mail_index_map_copy_header
        - Src:             'mail-index-map.c:392,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:393,11'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:394,3'
          Dst:             mail_index_map_init_extbufs
        - Src:             'mail-index-map.c:396,3'
          Dst:             array_append_array_i
        - Src:             'mail-index-map.c:397,3'
          Dst:             array_append_array_i
        - Src:             'mail-index-map.c:400,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-map.c:401,4'
          Dst:             i_panic
        - Src:             'mail-index-map.c:403,16'
          Dst:             p_strdup
        - Src:             'mail-index-map.c:409,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:410,3'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:410,3'
          Dst:             array_create_i
        - Src:             'mail-index-map.c:412,3'
          Dst:             array_append_array_i
    - functionName:    mail_index_map_init_extbufs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - nearest_power
        - p_clear
        - p_get_max_easy_alloc_size
        - pool_alloconly_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:26,12'
          Dst:             nearest_power
        - Src:             'mail-index-map.c:25,4'
          Dst:             pool_alloconly_create
        - Src:             'mail-index-map.c:28,3'
          Dst:             p_clear
        - Src:             'mail-index-map.c:32,10'
          Dst:             p_get_max_easy_alloc_size
        - Src:             'mail-index-map.c:39,2'
          Dst:             array_create_i
        - Src:             'mail-index-map.c:40,2'
          Dst:             array_create_i
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    p_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_header_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_map_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - mail_index_header_init
        - mail_index_map_clone
        - pool_datastack_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:259,2'
          Dst:             mail_index_header_init
        - Src:             'mail-index-map.c:260,25'
          Dst:             pool_datastack_create
        - Src:             'mail-index-map.c:260,25'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-map.c:261,2'
          Dst:             buffer_append
        - Src:             'mail-index-map.c:266,9'
          Dst:             mail_index_map_clone
    - functionName:    mail_index_map_ext_hdr_check_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          159
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:183,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map.c:192,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map.c:197,14'
          Dst:             t_strdup_printf
    - functionName:    mail_index_map_ext_hdr_check
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_index_ext_name_is_valid
        - mail_index_map_ext_hdr_check_record
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:213,7'
          Dst:             mail_index_ext_name_is_valid
        - Src:             'mail-index-map.c:219,7'
          Dst:             mail_index_map_ext_hdr_check_record
        - Src:             'mail-index-map.c:224,14'
          Dst:             t_strdup_printf
    - functionName:    mail_index_map_ext_get_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          152
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_map_ext_hdr_offset
        - str_sanitize
        - strcmp
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:131,12'
          Dst:             mail_index_map_ext_hdr_offset
        - Src:             'mail-index-map.c:135,12'
          Dst:             t_strndup
        - Src:             'mail-index-map.c:137,22'
          Dst:             str_sanitize
        - Src:             'mail-index-map.c:137,6'
          Dst:             strcmp
    - functionName:    mail_index_map_ext_hdr_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_map_register_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          188
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_idx_set_i
        - array_is_created_i
        - i_panic
        - mail_index_ext_name_is_valid
        - mail_index_ext_register
        - mail_index_map_ext_hdr_offset
        - mail_index_map_init_extbufs
        - mail_index_map_lookup_ext
        - p_strdup
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:74,2'
          Dst:             mail_index_ext_name_is_valid
        - Src:             'mail-index-map.c:74,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:76,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:77,17'
          Dst:             mail_index_map_init_extbufs
        - Src:             'mail-index-map.c:80,9'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:82,2'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-map.c:82,2'
          Dst:             i_panic
        - Src:             'mail-index-map.c:84,8'
          Dst:             array_append_space_i
        - Src:             'mail-index-map.c:85,14'
          Dst:             p_strdup
        - Src:             'mail-index-map.c:88,46'
          Dst:             strlen
        - Src:             'mail-index-map.c:88,16'
          Dst:             mail_index_map_ext_hdr_offset
        - Src:             'mail-index-map.c:95,19'
          Dst:             mail_index_ext_register
        - Src:             'mail-index-map.c:102,9'
          Dst:             array_count_i
        - Src:             'mail-index-map.c:103,3'
          Dst:             array_append_i
        - Src:             'mail-index-map.c:104,2'
          Dst:             array_idx_set_i
    - functionName:    mail_index_map_lookup_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - strcmp
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map.c:48,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-map.c:52,7'
          Dst:             strcmp
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_modseq_update_old_rec
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          217
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_create_from_buffer_i
        - array_idx_i
        - array_is_created_i
        - buffer_create_from_const_data
        - mail_index_lookup_seq
        - mail_index_lookup_seq_range
        - mail_index_modseq_update_to_highest
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-modseq.c:233,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-modseq.c:239,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-modseq.c:241,11'
          Dst:             mail_index_modseq_update_to_highest
        - Src:             'mail-index-modseq.c:247,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-index-modseq.c:248,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-index-modseq.c:260,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-index-modseq.c:263,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-index-modseq.c:267,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-index-modseq.c:268,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-index-modseq.c:278,10'
          Dst:             array_is_created_i
        - Src:             'mail-index-modseq.c:278,36'
          Dst:             array_count_i
        - Src:             'mail-index-modseq.c:280,9'
          Dst:             array_idx_i
        - Src:             'mail-index-modseq.c:281,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-modseq.c:283,10'
          Dst:             mail_index_modseq_update_to_highest
    - functionName:    mail_index_modseq_update_to_highest
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_modseq_update
        - mail_index_view_has_modseqs
        - mail_transaction_log_view_get_prev_modseq
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:214,7'
          Dst:             mail_index_view_has_modseqs
        - Src:             'mail-index-modseq.c:217,11'
          Dst:             mail_transaction_log_view_get_prev_modseq
        - Src:             'mail-index-modseq.c:218,2'
          Dst:             mail_index_modseq_update
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      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-index/../../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:    mail_index_view_has_modseqs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map_get_ext_idx
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:21,9'
          Dst:             mail_index_map_get_ext_idx
    - functionName:    mail_index_modseq_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          139
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:194,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:199,8'
          Dst:             array_idx_i
    - functionName:    mail_index_modseq_get_next_log_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          190
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - mail_transaction_log_file_get_modseq_next_offset
        - mail_transaction_log_find_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:446,9'
          Dst:             mail_transaction_log_find_file
        - Src:             'mail-index-modseq.c:465,6'
          Dst:             mail_transaction_log_file_get_modseq_next_offset
    - functionName:    mail_index_modseq_hdr_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_modseq_sync_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:427,2'
          Dst:             mail_index_modseq_sync_init
    - functionName:    mail_index_modseq_sync_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          259
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - array_idx_i
        - i_panic
        - i_unreached
        - mail_index_map_get_ext_idx
        - mail_index_modseq_update
        - mail_index_modseq_update_old_rec
        - mail_transaction_log_view_close
        - mail_transaction_log_view_get_prev_modseq
        - mail_transaction_log_view_get_prev_pos
        - mail_transaction_log_view_next
        - mail_transaction_log_view_open
        - mail_transaction_log_view_set
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:302,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:304,3'
          Dst:             i_unreached
        - Src:             'mail-index-modseq.c:305,8'
          Dst:             array_idx_i
        - Src:             'mail-index-modseq.c:316,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-modseq.c:324,18'
          Dst:             mail_transaction_log_view_open
        - Src:             'mail-index-modseq.c:325,8'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-modseq.c:331,9'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-modseq.c:336,16'
          Dst:             mail_transaction_log_view_get_prev_modseq
        - Src:             'mail-index-modseq.c:344,3'
          Dst:             mail_index_modseq_update
        - Src:             'mail-index-modseq.c:349,3'
          Dst:             mail_index_modseq_update
        - Src:             'mail-index-modseq.c:353,10'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-modseq.c:355,4'
          Dst:             t_push
        - Src:             'mail-index-modseq.c:356,5'
          Dst:             mail_index_modseq_update_old_rec
        - Src:             'mail-index-modseq.c:358,6'
          Dst:             t_pop
        - Src:             'mail-index-modseq.c:358,6'
          Dst:             i_panic
        - Src:             'mail-index-modseq.c:361,2'
          Dst:             mail_transaction_log_view_close
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_modseq_update_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          158
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_i
        - buffer_write
        - i_panic
        - mail_index_map_get_ext_idx
        - mail_transaction_log_view_get_prev_modseq
        - mail_transaction_log_view_get_prev_pos
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:390,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:394,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-modseq.c:396,19'
          Dst:             mail_transaction_log_view_get_prev_modseq
        - Src:             'mail-index-modseq.c:398,8'
          Dst:             array_idx_i
        - Src:             'mail-index-modseq.c:409,3'
          Dst:             buffer_write
        - Src:             'mail-index-modseq.c:411,3'
          Dst:             i_panic
    - functionName:    mail_index_modseq_sync_end
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_modseq_update_header
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:421,3'
          Dst:             mail_index_modseq_update_header
        - Src:             'mail-index-modseq.c:422,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_modseq_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_modseq_sync_init
        - mail_index_view_has_modseqs
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:369,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-modseq.c:369,8'
          Dst:             p_malloc
        - Src:             'mail-index-modseq.c:372,6'
          Dst:             mail_index_view_has_modseqs
        - Src:             'mail-index-modseq.c:373,3'
          Dst:             mail_index_modseq_sync_init
    - functionName:    mail_index_modseq_set
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          102
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
        - mail_index_view_has_modseqs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:166,7'
          Dst:             mail_index_view_has_modseqs
        - Src:             'mail-index-modseq.c:170,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:174,8'
          Dst:             array_idx_i
    - functionName:    mail_index_modseq_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_i
        - mail_index_lookup_full
        - mail_index_map_get_ext_idx
        - mail_index_modseq_get_head
        - mail_index_modseq_get_highest
        - mail_index_view_has_modseqs
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:130,7'
          Dst:             mail_index_view_has_modseqs
        - Src:             'mail-index-modseq.c:131,10'
          Dst:             mail_index_modseq_get_head
        - Src:             'mail-index-modseq.c:133,8'
          Dst:             mail_index_lookup_full
        - Src:             'mail-index-modseq.c:134,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:137,10'
          Dst:             mail_index_modseq_get_head
        - Src:             'mail-index-modseq.c:140,8'
          Dst:             array_idx_i
        - Src:             'mail-index-modseq.c:153,10'
          Dst:             mail_index_modseq_get_highest
    - functionName:    mail_index_modseq_get_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_modseq_get_highest
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map_modseq_get_highest
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:119,9'
          Dst:             mail_index_map_modseq_get_highest
    - functionName:    mail_index_map_modseq_get_highest
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_map_get_modseq_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:106,15'
          Dst:             mail_index_map_get_modseq_header
    - functionName:    mail_index_map_get_modseq_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:92,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:95,8'
          Dst:             array_idx_i
    - functionName:    mail_index_modseq_hdr_snapshot_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_map_get_modseq_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:79,3'
          Dst:             mail_index_map_get_modseq_header
    - functionName:    mail_index_have_modseq_tracking
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map_get_modseq_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:73,9'
          Dst:             mail_index_map_get_modseq_header
    - functionName:    mail_index_modseq_enable
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_map_get_ext_idx
        - mail_index_modseq_get_head
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:46,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-modseq.c:49,10'
          Dst:             mail_index_view_open
        - Src:             'mail-index-modseq.c:50,11'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-index-modseq.c:53,24'
          Dst:             mail_index_modseq_get_head
        - Src:             'mail-index-modseq.c:54,3'
          Dst:             mail_index_update_header_ext
        - Src:             'mail-index-modseq.c:58,9'
          Dst:             mail_index_transaction_commit
        - Src:             'mail-index-modseq.c:59,3'
          Dst:             mail_index_view_close
        - Src:             'mail-index-modseq.c:62,8'
          Dst:             mail_index_map_get_ext_idx
    - functionName:    mail_index_modseq_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_ext_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-modseq.c:28,3'
          Dst:             mail_index_ext_register
    - functionName:    strmap_rec_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_strmap_write_block
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          426
      EdgeCount:       70
      CyclomaticComplexity: 11
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_pack_num
        - mail_index_uint32_to_offset
        - o_stream_nsend
        - o_stream_seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:898,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:901,9'
          Dst:             array_get_i
        - Src:             'mail-index-strmap.c:902,10'
          Dst:             array_get_i
        - Src:             'mail-index-strmap.c:903,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:907,3'
          Dst:             mail_index_pack_num
        - Src:             'mail-index-strmap.c:921,3'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:928,4'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:932,4'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:935,3'
          Dst:             mail_index_pack_num
        - Src:             'mail-index-strmap.c:936,3'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:938,4'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:940,4'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:941,4'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:949,15'
          Dst:             mail_index_uint32_to_offset
        - Src:             'mail-index-strmap.c:950,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:953,8'
          Dst:             o_stream_seek
        - Src:             'mail-index-strmap.c:954,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:955,8'
          Dst:             o_stream_seek
        - Src:             'mail-index-strmap.c:960,2'
          Dst:             i_panic
    - functionName:    mail_index_strmap_recreate_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_get_header
        - mail_index_strmap_write_block
        - o_stream_nsend
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:972,12'
          Dst:             mail_index_get_header
        - Src:             'mail-index-strmap.c:978,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-strmap.c:981,2'
          Dst:             mail_index_strmap_write_block
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_strmap_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_delete
        - file_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1076,3'
          Dst:             file_unlock
        - Src:             'mail-index-strmap.c:1078,3'
          Dst:             file_dotlock_delete
    - functionName:    mail_index_strmap_write_append
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          357
      EdgeCount:       69
      CyclomaticComplexity: 17
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_get_i
        - i_panic
        - i_stream_seek
        - i_stream_sync
        - mail_index_strmap_set_syscall_error
        - mail_index_strmap_write_block
        - o_stream_cork
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_finish
        - o_stream_seek
        - strmap_read_block_deinit
        - strmap_read_block_init
        - strmap_read_block_next
        - strmap_rec_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1120,8'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mail-index-strmap.c:1120,8'
          Dst:             strmap_rec_cmp
        - Src:             'mail-index-strmap.c:1123,13'
          Dst:             array_get_i
        - Src:             'mail-index-strmap.c:1129,2'
          Dst:             i_stream_sync
        - Src:             'mail-index-strmap.c:1130,2'
          Dst:             i_stream_seek
        - Src:             'mail-index-strmap.c:1133,16'
          Dst:             strmap_read_block_init
        - Src:             'mail-index-strmap.c:1134,17'
          Dst:             strmap_read_block_next
        - Src:             'mail-index-strmap.c:1156,7'
          Dst:             strmap_read_block_deinit
        - Src:             'mail-index-strmap.c:1167,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:1168,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:1171,11'
          Dst:             o_stream_create_fd
        - Src:             'mail-index-strmap.c:1172,8'
          Dst:             o_stream_seek
        - Src:             'mail-index-strmap.c:1173,2'
          Dst:             o_stream_cork
        - Src:             'mail-index-strmap.c:1174,2'
          Dst:             mail_index_strmap_write_block
        - Src:             'mail-index-strmap.c:1176,6'
          Dst:             o_stream_finish
        - Src:             'mail-index-strmap.c:1177,3'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:1180,2'
          Dst:             o_stream_destroy
    - functionName:    strmap_read_block_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          174
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcpy
        - i_stream_read_bytes
        - i_stream_skip
        - mail_index_lookup_seq_range
        - mail_index_offset_to_uint32
        - mail_index_strmap_set_syscall_error
        - mail_index_strmap_view_set_corrupted
        - mail_index_view_get_messages_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:507,8'
          Dst:             i_stream_read_bytes
        - Src:             'mail-index-strmap.c:514,3'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:517,2'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:518,15'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-index-strmap.c:524,2'
          Dst:             i_stream_skip
        - Src:             'mail-index-strmap.c:531,3'
          Dst:             mail_index_strmap_view_set_corrupted
        - Src:             'mail-index-strmap.c:538,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-strmap.c:540,10'
          Dst:             mail_index_view_get_messages_count
    - functionName:    strmap_read_block_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_strmap_read_packed
        - mail_index_strmap_read_rec_first
        - mail_index_strmap_read_rec_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:552,6'
          Dst:             mail_index_strmap_read_rec_next
        - Src:             'mail-index-strmap.c:561,7'
          Dst:             mail_index_strmap_read_packed
        - Src:             'mail-index-strmap.c:565,9'
          Dst:             mail_index_strmap_read_rec_first
    - functionName:    strmap_read_block_deinit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mail_index_set_error
        - mail_index_strmap_set_syscall_error
        - mail_index_strmap_view_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:580,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:586,3'
          Dst:             mail_index_strmap_view_set_corrupted
        - Src:             'mail-index-strmap.c:591,3'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:595,4'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:597,4'
          Dst:             mail_index_strmap_view_set_corrupted
    - functionName:    mail_index_strmap_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_panic
        - mail_index_set_error
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:122,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:124,6'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:124,6'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:131,2'
          Dst:             mail_index_set_error
    - functionName:    mail_index_strmap_view_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_unlink
        - mail_index_set_error
        - mail_index_strmap_close
        - mail_index_strmap_view_reset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:239,2'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:242,2'
          Dst:             i_unlink
        - Src:             'mail-index-strmap.c:243,2'
          Dst:             mail_index_strmap_close
        - Src:             'mail-index-strmap.c:244,2'
          Dst:             mail_index_strmap_view_reset
    - functionName:    mail_index_strmap_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - file_dotlock_delete
        - file_lock_free
        - i_stream_unref
        - mail_index_strmap_set_syscall_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:139,3'
          Dst:             file_lock_free
        - Src:             'mail-index-strmap.c:141,3'
          Dst:             file_dotlock_delete
        - Src:             'mail-index-strmap.c:144,7'
          Dst:             close
        - Src:             'mail-index-strmap.c:145,4'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:148,2'
          Dst:             i_stream_unref
    - functionName:    mail_index_strmap_view_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - hash2_clear
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:228,2'
          Dst:             array_clear_i
        - Src:             'mail-index-strmap.c:229,2'
          Dst:             array_clear_i
        - Src:             'mail-index-strmap.c:230,2'
          Dst:             hash2_clear
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_index_strmap_read_rec_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          100
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:468,3'
          Dst:             i_stream_skip
        - Src:             'mail-index-strmap.c:477,2'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:478,2'
          Dst:             i_memcpy
    - functionName:    mail_index_strmap_read_packed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_read_bytes
        - i_stream_skip
        - mail_index_unpack_num
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:359,8'
          Dst:             i_stream_read_bytes
        - Src:             'mail-index-strmap.c:368,6'
          Dst:             mail_index_unpack_num
        - Src:             'mail-index-strmap.c:370,2'
          Dst:             i_stream_skip
    - functionName:    mail_index_strmap_read_rec_first
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          212
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - i_stream_read_bytes
        - i_stream_skip
        - i_unreached
        - mail_index_strmap_read_packed
        - mail_index_strmap_read_rec_next
        - mail_index_strmap_uid_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:425,6'
          Dst:             mail_index_strmap_read_packed
        - Src:             'mail-index-strmap.c:431,8'
          Dst:             mail_index_strmap_uid_exists
        - Src:             'mail-index-strmap.c:434,6'
          Dst:             i_stream_read_bytes
        - Src:             'mail-index-strmap.c:442,4'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:447,3'
          Dst:             i_stream_skip
        - Src:             'mail-index-strmap.c:457,7'
          Dst:             mail_index_strmap_read_rec_next
        - Src:             'mail-index-strmap.c:458,3'
          Dst:             i_unreached
    - functionName:    mail_index_strmap_uid_exists
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          177
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_index_is_expunged
        - mail_index_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:380,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:403,3'
          Dst:             mail_index_refresh
        - Src:             'mail-index-strmap.c:404,7'
          Dst:             mail_index_is_expunged
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_index_strmap_lock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          190
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - file_dotlock_create
        - file_wait_lock
        - i_panic
        - mail_index_set_error
        - mail_index_strmap_set_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1042,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:1045,3'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:1052,9'
          Dst:             file_wait_lock
        - Src:             'mail-index-strmap.c:1056,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:1061,3'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:1063,9'
          Dst:             file_dotlock_create
        - Src:             'mail-index-strmap.c:1066,4'
          Dst:             mail_index_strmap_set_syscall_error
    - functionName:    mail_index_strmap_recreate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          207
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - array_count_i
        - close
        - i_unlink
        - mail_index_set_error
        - mail_index_strmap_recreate_write
        - mail_index_strmap_set_syscall_error
        - o_stream_cork
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - rename
        - safe_mkstemp_hostpid_group
        - str_append
        - str_c
        - t_str_new
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:992,6'
          Dst:             array_count_i
        - Src:             'mail-index-strmap.c:994,7'
          Dst:             unlink
        - Src:             'mail-index-strmap.c:994,35'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:995,4'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:999,8'
          Dst:             t_str_new
        - Src:             'mail-index-strmap.c:1000,2'
          Dst:             str_append
        - Src:             'mail-index-strmap.c:1001,7'
          Dst:             safe_mkstemp_hostpid_group
        - Src:             'mail-index-strmap.c:1004,14'
          Dst:             str_c
        - Src:             'mail-index-strmap.c:1007,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:1012,11'
          Dst:             o_stream_create_fd
        - Src:             'mail-index-strmap.c:1013,2'
          Dst:             o_stream_cork
        - Src:             'mail-index-strmap.c:1014,2'
          Dst:             mail_index_strmap_recreate_write
        - Src:             'mail-index-strmap.c:1015,6'
          Dst:             o_stream_finish
        - Src:             'mail-index-strmap.c:1017,21'
          Dst:             o_stream_get_error
        - Src:             'mail-index-strmap.c:1016,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:1020,2'
          Dst:             o_stream_destroy
        - Src:             'mail-index-strmap.c:1021,6'
          Dst:             close
        - Src:             'mail-index-strmap.c:1022,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:1025,25'
          Dst:             rename
        - Src:             'mail-index-strmap.c:1026,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-strmap.c:1032,3'
          Dst:             i_unlink
    - functionName:    mail_index_strmap_view_renumber
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          399
      EdgeCount:       58
      CyclomaticComplexity: 10
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - hash2_clear
        - hash2_insert_hash
        - i_memcpy
        - i_panic
        - mail_index_strmap_uid_exists
        - mail_index_strmap_zero_terminate
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:830,17'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-strmap.c:830,17'
          Dst:             p_malloc
        - Src:             'mail-index-strmap.c:832,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-strmap.c:833,15'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-strmap.c:834,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:840,10'
          Dst:             mail_index_strmap_uid_exists
        - Src:             'mail-index-strmap.c:841,4'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:851,3'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:860,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:861,2'
          Dst:             array_delete_i
        - Src:             'mail-index-strmap.c:862,2'
          Dst:             array_delete_i
        - Src:             'mail-index-strmap.c:863,2'
          Dst:             mail_index_strmap_zero_terminate
        - Src:             'mail-index-strmap.c:866,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:871,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-strmap.c:872,2'
          Dst:             hash2_clear
        - Src:             'mail-index-strmap.c:875,14'
          Dst:             hash2_insert_hash
        - Src:             'mail-index-strmap.c:876,3'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:881,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../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:    mail_index_strmap_zero_terminate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 814
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_delete_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:812,2'
          Dst:             array_append_space_i
        - Src:             'mail-index-strmap.c:813,2'
          Dst:             array_count_i
        - Src:             'mail-index-strmap.c:813,2'
          Dst:             array_delete_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    crc32_str
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/crc32.h'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crc32_data_more
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/crc32.h:11,42'
          Dst:             strlen
        - Src:             '../../src/lib/crc32.h:11,9'
          Dst:             crc32_data_more
    - functionName:    strmap_view_sync_handle_conflict
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - hash2_remove_iter
        - mail_index_is_expunged
        - mail_index_lookup_seq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:616,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-strmap.c:618,3'
          Dst:             hash2_remove_iter
        - Src:             'mail-index-strmap.c:621,6'
          Dst:             mail_index_is_expunged
    - functionName:    strmap_view_sync_block_check_conflicts
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - hash2_iterate
        - strmap_view_sync_handle_conflict
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:656,21'
          Dst:             hash2_iterate
        - Src:             'mail-index-strmap.c:660,8'
          Dst:             strmap_view_sync_handle_conflict
    - functionName:    mail_index_strmap_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          187
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - i_memcpy
        - i_panic
        - i_stream_create_fd
        - i_stream_read_bytes
        - i_unlink
        - mail_index_get_header
        - mail_index_strmap_close
        - mail_index_strmap_set_syscall_error
        - mail_index_strmap_view_reset
        - mail_index_strmap_view_set_corrupted
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:256,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:258,15'
          Dst:             open
        - Src:             'mail-index-strmap.c:260,7'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:262,3'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:265,18'
          Dst:             i_stream_create_fd
        - Src:             'mail-index-strmap.c:266,8'
          Dst:             i_stream_read_bytes
        - Src:             'mail-index-strmap.c:269,4'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:270,4'
          Dst:             mail_index_strmap_close
        - Src:             'mail-index-strmap.c:272,4'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:273,4'
          Dst:             mail_index_strmap_view_set_corrupted
        - Src:             'mail-index-strmap.c:277,2'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:279,12'
          Dst:             mail_index_get_header
        - Src:             'mail-index-strmap.c:284,3'
          Dst:             i_unlink
        - Src:             'mail-index-strmap.c:285,3'
          Dst:             mail_index_strmap_close
        - Src:             'mail-index-strmap.c:296,2'
          Dst:             mail_index_strmap_view_reset
    - functionName:    mail_index_strmap_need_reopen
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - mail_index_strmap_set_syscall_error
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:305,6'
          Dst:             fstat
        - Src:             'mail-index-strmap.c:306,8'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:306,8'
          Dst:             __errno_location
        - Src:             'mail-index-strmap.c:307,4'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:310,6'
          Dst:             stat
        - Src:             'mail-index-strmap.c:311,3'
          Dst:             mail_index_strmap_set_syscall_error
        - Src:             'mail-index-strmap.c:314,38'
          Dst:             gnu_dev_major
        - Src:             'mail-index-strmap.c:314,38'
          Dst:             gnu_dev_major
        - Src:             'mail-index-strmap.c:314,38'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-strmap.c:314,38'
          Dst:             gnu_dev_minor
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_strmap_view_sync_rollback
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1256
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_strmap_view_reset
        - mail_index_strmap_zero_terminate
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1253,2'
          Dst:             mail_index_strmap_view_reset
        - Src:             'mail-index-strmap.c:1254,2'
          Dst:             mail_index_strmap_zero_terminate
        - Src:             'mail-index-strmap.c:1255,2'
          Dst:             p_free_internal
    - functionName:    mail_index_strmap_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - hash2_count
        - mail_index_strmap_lock
        - mail_index_strmap_need_reopen
        - mail_index_strmap_recreate
        - mail_index_strmap_unlock
        - mail_index_strmap_view_renumber
        - mail_index_strmap_write_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1190,6'
          Dst:             hash2_count
        - Src:             'mail-index-strmap.c:1192,3'
          Dst:             mail_index_strmap_view_renumber
        - Src:             'mail-index-strmap.c:1194,8'
          Dst:             mail_index_strmap_recreate
        - Src:             'mail-index-strmap.c:1207,7'
          Dst:             mail_index_strmap_recreate
        - Src:             'mail-index-strmap.c:1215,6'
          Dst:             mail_index_strmap_lock
        - Src:             'mail-index-strmap.c:1218,13'
          Dst:             mail_index_strmap_need_reopen
        - Src:             'mail-index-strmap.c:1223,9'
          Dst:             mail_index_strmap_write_append
        - Src:             'mail-index-strmap.c:1225,2'
          Dst:             mail_index_strmap_unlock
    - functionName:    mail_index_strmap_view_sync_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 1232
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_delete_i
        - mail_index_strmap_write
        - mail_index_strmap_zero_terminate
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:1237,2'
          Dst:             p_free_internal
        - Src:             'mail-index-strmap.c:1239,8'
          Dst:             mail_index_strmap_write
        - Src:             'mail-index-strmap.c:1240,2'
          Dst:             mail_index_strmap_zero_terminate
        - Src:             'mail-index-strmap.c:1243,2'
          Dst:             array_append_space_i
        - Src:             'mail-index-strmap.c:1244,2'
          Dst:             array_count_i
        - Src:             'mail-index-strmap.c:1244,2'
          Dst:             array_delete_i
    - functionName:    mail_index_strmap_view_sync_add_unique
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:793,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:801,2'
          Dst:             array_append_i
        - Src:             'mail-index-strmap.c:802,2'
          Dst:             array_append_space_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    crc32_str_nonzero
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - crc32_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:746,19'
          Dst:             crc32_str
    - functionName:    mail_index_strmap_view_sync_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          163
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - crc32_str_nonzero
        - hash2_insert
        - hash2_lookup
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:759,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:764,19'
          Dst:             crc32_str_nonzero
        - Src:             'mail-index-strmap.c:766,12'
          Dst:             hash2_lookup
        - Src:             'mail-index-strmap.c:774,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:776,8'
          Dst:             hash2_insert
        - Src:             'mail-index-strmap.c:780,2'
          Dst:             array_append_i
        - Src:             'mail-index-strmap.c:781,2'
          Dst:             array_append_i
    - functionName:    mail_index_strmap_view_sync_block
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          133
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - hash2_insert_hash
        - i_memcpy
        - strmap_read_block_deinit
        - strmap_read_block_next
        - strmap_view_sync_block_check_conflicts
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:675,16'
          Dst:             strmap_read_block_next
        - Src:             'mail-index-strmap.c:685,7'
          Dst:             strmap_view_sync_block_check_conflicts
        - Src:             'mail-index-strmap.c:692,3'
          Dst:             array_append_i
        - Src:             'mail-index-strmap.c:693,3'
          Dst:             array_append_i
        - Src:             'mail-index-strmap.c:696,14'
          Dst:             hash2_insert_hash
        - Src:             'mail-index-strmap.c:697,3'
          Dst:             i_memcpy
        - Src:             'mail-index-strmap.c:699,9'
          Dst:             strmap_read_block_deinit
    - functionName:    mail_index_strmap_refresh
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_sync
        - mail_index_lookup_seq
        - mail_index_strmap_close
        - mail_index_strmap_need_reopen
        - mail_index_strmap_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:325,8'
          Dst:             mail_index_strmap_need_reopen
        - Src:             'mail-index-strmap.c:332,9'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-strmap.c:340,5'
          Dst:             i_stream_sync
        - Src:             'mail-index-strmap.c:344,3'
          Dst:             mail_index_strmap_close
        - Src:             'mail-index-strmap.c:347,9'
          Dst:             mail_index_strmap_open
    - functionName:    mail_index_strmap_view_sync_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_seek
        - mail_index_strmap_refresh
        - mail_index_strmap_view_sync_block
        - malloc_multiply_check
        - p_malloc
        - strmap_read_block_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:710,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-strmap.c:710,9'
          Dst:             p_malloc
        - Src:             'mail-index-strmap.c:713,6'
          Dst:             mail_index_strmap_refresh
        - Src:             'mail-index-strmap.c:717,3'
          Dst:             i_stream_seek
        - Src:             'mail-index-strmap.c:719,17'
          Dst:             strmap_read_block_init
        - Src:             'mail-index-strmap.c:720,8'
          Dst:             mail_index_strmap_view_sync_block
        - Src:             'mail-index-strmap.c:734,4'
          Dst:             i_panic
    - functionName:    mail_index_strmap_view_get_highest_idx
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_index_strmap_view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash2_destroy
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:214,2'
          Dst:             array_free_i
        - Src:             'mail-index-strmap.c:215,2'
          Dst:             array_free_i
        - Src:             'mail-index-strmap.c:216,2'
          Dst:             hash2_destroy
        - Src:             'mail-index-strmap.c:217,2'
          Dst:             p_free_internal
    - functionName:    mail_index_strmap_hash_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_strmap_hash_key
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_strmap_view_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          83
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash2_create
        - mail_index_strmap_hash_cmp
        - mail_index_strmap_hash_key
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:190,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-strmap.c:190,9'
          Dst:             p_malloc
        - Src:             'mail-index-strmap.c:199,2'
          Dst:             array_create_i
        - Src:             'mail-index-strmap.c:200,2'
          Dst:             array_create_i
        - Src:             'mail-index-strmap.c:201,15'
          Dst:             hash2_create
        - Src:             'mail-index-strmap.c:201,15'
          Dst:             mail_index_strmap_hash_key
        - Src:             'mail-index-strmap.c:201,15'
          Dst:             mail_index_strmap_hash_cmp
    - functionName:    mail_index_strmap_deinit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_strmap_close
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:156,2'
          Dst:             mail_index_strmap_close
        - Src:             'mail-index-strmap.c:157,2'
          Dst:             p_free_internal
        - Src:             'mail-index-strmap.c:158,2'
          Dst:             p_free_internal
    - functionName:    mail_index_strmap_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-strmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          93
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strconcat
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-strmap.c:99,2'
          Dst:             i_panic
        - Src:             'mail-index-strmap.c:101,11'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-strmap.c:101,11'
          Dst:             p_malloc
        - Src:             'mail-index-strmap.c:103,17'
          Dst:             i_strconcat
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_sync_add_keyword_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_keywords_create
        - mail_index_keywords_unref
        - mail_index_update_keywords
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:116,13'
          Dst:             mail_index_keywords_create
        - Src:             'mail-index-sync.c:119,4'
          Dst:             mail_index_update_keywords
        - Src:             'mail-index-sync.c:123,2'
          Dst:             mail_index_keywords_unref
    - functionName:    mail_index_sync_add_keyword_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          155
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_keywords_create
        - mail_index_keywords_unref
        - mail_index_update_keywords
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:86,2'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:93,21'
          Dst:             t_strndup
        - Src:             'mail-index-sync.c:95,13'
          Dst:             mail_index_keywords_create
        - Src:             'mail-index-sync.c:101,4'
          Dst:             mail_index_update_keywords
        - Src:             'mail-index-sync.c:106,2'
          Dst:             mail_index_keywords_unref
    - functionName:    mail_index_sync_add_flag_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          120
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_update_flags_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:63,4'
          Dst:             mail_index_update_flags_range
        - Src:             'mail-index-sync.c:69,4'
          Dst:             mail_index_update_flags_range
    - functionName:    mail_index_sync_add_expunge_guid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          60
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_expunge_guid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:51,3'
          Dst:             mail_index_expunge_guid
    - functionName:    mail_index_sync_add_expunge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_expunge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:41,4'
          Dst:             mail_index_expunge
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mail_index_sync_add_transaction
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - mail_index_sync_add_expunge
        - mail_index_sync_add_expunge_guid
        - mail_index_sync_add_flag_update
        - mail_index_sync_add_keyword_reset
        - mail_index_sync_add_keyword_update
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-sync.c:128,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync.c:130,3'
          Dst:             mail_index_sync_add_expunge
        - Src:             'mail-index-sync.c:133,3'
          Dst:             mail_index_sync_add_expunge_guid
        - Src:             'mail-index-sync.c:136,17'
          Dst:             mail_index_sync_add_flag_update
        - Src:             'mail-index-sync.c:139,17'
          Dst:             mail_index_sync_add_keyword_update
        - Src:             'mail-index-sync.c:142,17'
          Dst:             mail_index_sync_add_keyword_reset
    - functionName:    mail_index_sync_add_dirty_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup
        - mail_index_update_flags
        - mail_index_view_get_messages_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:158,19'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-sync.c:160,9'
          Dst:             mail_index_lookup
        - Src:             'mail-index-sync.c:164,3'
          Dst:             mail_index_update_flags
    - functionName:    mail_index_need_sync
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          176
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - mail_cache_need_purge
        - mail_transaction_log_get_head
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:268,3'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-sync.c:281,9'
          Dst:             mail_cache_need_purge
    - functionName:    mail_index_sync_read_and_sort
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          339
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - array_is_created_i
        - i_panic
        - mail_index_sync_add_dirty_updates
        - mail_index_sync_add_transaction
        - mail_index_transaction_sort_expunges
        - mail_transaction_log_view_next
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:182,3'
          Dst:             mail_index_sync_add_dirty_updates
        - Src:             'mail-index-sync.c:188,16'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-sync.c:198,3'
          Dst:             t_push
        - Src:             'mail-index-sync.c:199,8'
          Dst:             mail_index_sync_add_transaction
        - Src:             'mail-index-sync.c:207,5'
          Dst:             t_pop
        - Src:             'mail-index-sync.c:207,5'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:212,19'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:213,3'
          Dst:             array_count_i
        - Src:             'mail-index-sync.c:214,2'
          Dst:             array_create_i
        - Src:             'mail-index-sync.c:216,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:217,3'
          Dst:             mail_index_transaction_sort_expunges
        - Src:             'mail-index-sync.c:218,14'
          Dst:             array_append_space_i
        - Src:             'mail-index-sync.c:222,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:223,14'
          Dst:             array_append_space_i
        - Src:             'mail-index-sync.c:228,3'
          Dst:             array_idx_i
        - Src:             'mail-index-sync.c:230,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:231,15'
          Dst:             array_append_space_i
        - Src:             'mail-index-sync.c:236,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:237,15'
          Dst:             array_append_space_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    mail_index_sync_set_log_view
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_set_error
        - mail_transaction_log_get_head
        - mail_transaction_log_view_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:294,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-sync.c:296,8'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-sync.c:304,3'
          Dst:             mail_index_set_error
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_sync_begin_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          276
      EdgeCount:       71
      CyclomaticComplexity: 21
      functionsReached:
        - mail_index_fsck_locked
        - mail_index_map
        - mail_index_need_sync
        - mail_index_set_error
        - mail_index_sync_begin_init
        - mail_transaction_log_sync_lock
        - mail_transaction_log_sync_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:341,7'
          Dst:             mail_transaction_log_sync_lock
        - Src:             'mail-index-sync.c:354,13'
          Dst:             mail_index_map
        - Src:             'mail-index-sync.c:357,5'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-index-sync.c:362,7'
          Dst:             mail_index_map
        - Src:             'mail-index-sync.c:364,5'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-index-sync.c:369,7'
          Dst:             mail_index_need_sync
        - Src:             'mail-index-sync.c:372,4'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-index-sync.c:380,10'
          Dst:             mail_index_sync_begin_init
        - Src:             'mail-index-sync.c:388,4'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-index-sync.c:397,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-sync.c:400,3'
          Dst:             mail_index_fsck_locked
    - functionName:    mail_index_sync_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          144
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_strdup_vprintf
        - mail_index_set_error
        - mail_transaction_log_view_get_prev_pos
        - p_free_internal
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:1044,25'
          Dst:             i_strdup_vprintf
        - Src:             'mail-index-sync.c:1055,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync.c:1063,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-sync.c:1069,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_index_sync_keywords_apply
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_delete_i
        - array_get_i
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-sync.c:1012,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync.c:1011,20'
          Dst:             array_get_i
        - Src:             'mail-index-sync.c:1019,3'
          Dst:             array_append_i
        - Src:             'mail-index-sync.c:1024,5'
          Dst:             array_delete_i
        - Src:             'mail-index-sync.c:1030,3'
          Dst:             i_unreached
    - functionName:    mail_index_sync_flags_apply
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1002
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:999,2'
          Dst:             i_panic
    - functionName:    mail_index_sync_rollback
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_sync_end
        - mail_index_transaction_rollback
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:992,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'mail-index-sync.c:993,2'
          Dst:             mail_index_sync_end
    - functionName:    mail_index_sync_end
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_panic
        - mail_index_transaction_rollback
        - mail_index_view_close
        - mail_transaction_log_sync_unlock
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:765,2'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:776,2'
          Dst:             mail_transaction_log_sync_unlock
        - Src:             'mail-index-sync.c:778,2'
          Dst:             mail_index_view_close
        - Src:             'mail-index-sync.c:779,2'
          Dst:             mail_index_transaction_rollback
        - Src:             'mail-index-sync.c:780,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:781,3'
          Dst:             array_free_i
        - Src:             'mail-index-sync.c:782,2'
          Dst:             p_free_internal
        - Src:             'mail-index-sync.c:783,2'
          Dst:             p_free_internal
    - functionName:    mail_index_sync_want_index_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          162
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:856,15'
          Dst:             t_strdup_printf
        - Src:             'mail-index-sync.c:865,15'
          Dst:             t_strdup_printf
        - Src:             'mail-index-sync.c:874,15'
          Dst:             t_strdup_printf
    - functionName:    mail_index_sync_update_mailbox_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          150
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - mail_transaction_log_get_head
        - mail_transaction_log_set_mailbox_sync_pos
        - mail_transaction_log_view_get_prev_pos
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:815,3'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-sync.c:817,3'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync.c:820,2'
          Dst:             mail_transaction_log_set_mailbox_sync_pos
    - functionName:    mail_index_sync_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 987
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         65
      ICount:          406
      EdgeCount:       87
      CyclomaticComplexity: 24
      functionsReached:
        - mail_cache_need_purge
        - mail_cache_purge
        - mail_cache_transactions_have_changes
        - mail_index_map
        - mail_index_set_deleted
        - mail_index_set_error_nolog
        - mail_index_sync_end
        - mail_index_sync_update_mailbox_offset
        - mail_index_sync_want_index_write
        - mail_index_transaction_commit
        - mail_index_transaction_get_next_uid
        - mail_index_update_header
        - mail_index_write
        - mail_transaction_log_want_rotate
        - p_free_internal
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:896,3'
          Dst:             mail_index_set_deleted
        - Src:             'mail-index-sync.c:901,3'
          Dst:             mail_index_set_error_nolog
        - Src:             'mail-index-sync.c:905,2'
          Dst:             mail_index_sync_update_mailbox_offset
        - Src:             'mail-index-sync.c:908,14'
          Dst:             mail_index_transaction_get_next_uid
        - Src:             'mail-index-sync.c:910,4'
          Dst:             mail_index_update_header
        - Src:             'mail-index-sync.c:923,3'
          Dst:             mail_index_update_header
        - Src:             'mail-index-sync.c:929,9'
          Dst:             mail_index_transaction_commit
        - Src:             'mail-index-sync.c:931,3'
          Dst:             mail_index_sync_end
        - Src:             'mail-index-sync.c:946,6'
          Dst:             mail_index_map
        - Src:             'mail-index-sync.c:953,18'
          Dst:             mail_cache_need_purge
        - Src:             'mail-index-sync.c:954,7'
          Dst:             mail_cache_transactions_have_changes
        - Src:             'mail-index-sync.c:955,7'
          Dst:             mail_cache_purge
        - Src:             'mail-index-sync.c:967,7'
          Dst:             mail_index_map
        - Src:             'mail-index-sync.c:978,3'
          Dst:             mail_transaction_log_want_rotate
        - Src:             'mail-index-sync.c:980,22'
          Dst:             mail_index_sync_want_index_write
        - Src:             'mail-index-sync.c:981,3'
          Dst:             p_free_internal
        - Src:             'mail-index-sync.c:983,3'
          Dst:             mail_index_write
        - Src:             'mail-index-sync.c:985,2'
          Dst:             mail_index_sync_end
    - functionName:    mail_index_sync_set_reason
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:756,2'
          Dst:             p_free_internal
        - Src:             'mail-index-sync.c:757,16'
          Dst:             i_strdup
    - functionName:    mail_index_sync_no_warning
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_sync_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_get_modifiable_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:744,2'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_sync_set_commit_result
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 737
      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:    mail_index_sync_have_more
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:726,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:727,25'
          Dst:             array_count_i
    - functionName:    mail_index_sync_get_keyword_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_sync_get_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_sync_get_expunge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:634,2'
          Dst:             i_memcpy
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_sync_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          236
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_get_modifiable_i
        - array_idx_i
        - array_is_created_i
        - mail_index_sync_get_expunge
        - mail_index_sync_get_keyword_update
        - mail_index_sync_get_update
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:679,14'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-sync.c:681,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:682,27'
          Dst:             array_count_i
        - Src:             'mail-index-sync.c:685,15'
          Dst:             array_idx_i
        - Src:             'mail-index-sync.c:704,15'
          Dst:             array_idx_i
        - Src:             'mail-index-sync.c:708,3'
          Dst:             mail_index_sync_get_expunge
        - Src:             'mail-index-sync.c:711,3'
          Dst:             mail_index_sync_get_update
        - Src:             'mail-index-sync.c:714,3'
          Dst:             mail_index_sync_get_keyword_update
    - functionName:    mail_index_sync_get_offsets
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          85
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_transaction_log_get_head
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:624,2'
          Dst:             mail_transaction_log_get_head
    - functionName:    mail_index_sync_have_any_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_sync_view_have_any
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:610,9'
          Dst:             mail_index_view_open
        - Src:             'mail-index-sync.c:611,8'
          Dst:             mail_index_sync_view_have_any
        - Src:             'mail-index-sync.c:612,2'
          Dst:             mail_index_view_close
    - functionName:    mail_index_sync_view_have_any
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          272
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - mail_transaction_log_get_head
        - mail_transaction_log_view_next
        - mail_transaction_log_view_set
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-index-sync.c:569,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync.c:548,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-sync.c:555,6'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-sync.c:564,16'
          Dst:             mail_transaction_log_view_next
    - functionName:    mail_index_sync_have_any
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_sync_view_have_any
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:599,9'
          Dst:             mail_index_view_open
        - Src:             'mail-index-sync.c:600,8'
          Dst:             mail_index_sync_view_have_any
        - Src:             'mail-index-sync.c:601,2'
          Dst:             mail_index_view_close
    - functionName:    mail_index_sync_has_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:523,9'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync.c:524,3'
          Dst:             array_count_i
    - functionName:    mail_index_sync_begin_to2
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          305
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - mail_index_dummy_view_open
        - mail_index_fsck_locked
        - mail_index_sync_begin_init
        - mail_index_sync_read_and_sort
        - mail_index_sync_rollback
        - mail_index_sync_set_log_view
        - mail_index_transaction_begin
        - mail_index_view_close
        - mail_index_view_open
        - malloc_multiply_check
        - p_malloc
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:419,2'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:432,2'
          Dst:             t_push
        - Src:             'mail-index-sync.c:433,9'
          Dst:             mail_index_sync_begin_init
        - Src:             'mail-index-sync.c:435,4'
          Dst:             t_pop
        - Src:             'mail-index-sync.c:435,4'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:441,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-sync.c:441,8'
          Dst:             p_malloc
        - Src:             'mail-index-sync.c:445,14'
          Dst:             mail_index_view_open
        - Src:             'mail-index-sync.c:447,14'
          Dst:             mail_index_dummy_view_open
        - Src:             'mail-index-sync.c:448,20'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-index-sync.c:450,2'
          Dst:             mail_index_view_close
        - Src:             'mail-index-sync.c:457,8'
          Dst:             mail_index_sync_set_log_view
        - Src:             'mail-index-sync.c:460,17'
          Dst:             mail_index_sync_rollback
        - Src:             'mail-index-sync.c:466,3'
          Dst:             mail_index_fsck_locked
        - Src:             'mail-index-sync.c:467,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mail-index-sync.c:474,6'
          Dst:             mail_index_sync_read_and_sort
        - Src:             'mail-index-sync.c:475,17'
          Dst:             mail_index_sync_rollback
        - Src:             'mail-index-sync.c:486,19'
          Dst:             mail_index_transaction_begin
    - functionName:    mail_index_sync_begin_to
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_sync_begin_to2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:508,2'
          Dst:             i_panic
        - Src:             'mail-index-sync.c:510,8'
          Dst:             mail_index_sync_begin_to2
        - Src:             'mail-index-sync.c:514,9'
          Dst:             mail_index_sync_begin_to2
    - functionName:    mail_index_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_sync_begin_to
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync.c:320,8'
          Dst:             mail_index_sync_begin_to
        - Src:             'mail-index-sync.c:322,2'
          Dst:             i_panic
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    expunges_convert_to_uids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          140
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_memcpy
        - mail_index_transaction_get_uid
        - mail_index_transaction_sort_expunges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:281,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:284,2'
          Dst:             mail_index_transaction_sort_expunges
        - Src:             'mail-index-transaction-finish.c:286,13'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-finish.c:291,20'
          Dst:             mail_index_transaction_get_uid
        - Src:             'mail-index-transaction-finish.c:294,4'
          Dst:             mail_index_transaction_get_uid
        - Src:             'mail-index-transaction-finish.c:297,5'
          Dst:             i_memcpy
        - Src:             'mail-index-transaction-finish.c:303,2'
          Dst:             array_delete_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_transaction_sort_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_sort_i
        - mail_transaction_expunge_guid_cmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:26,2'
          Dst:             array_sort_i
        - Src:             'mail-index-transaction-finish.c:26,2'
          Dst:             mail_transaction_expunge_guid_cmp
    - functionName:    mail_index_transaction_get_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_transaction_lookup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:180,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-finish.c:183,9'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-finish.c:185,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-finish.c:188,2'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    2
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mail_transaction_expunge_guid_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    keyword_updates_convert_to_uids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - mail_index_transaction_seq_range_to_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:267,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:270,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-finish.c:271,3'
          Dst:             mail_index_transaction_seq_range_to_uid
        - Src:             'mail-index-transaction-finish.c:272,3'
          Dst:             mail_index_transaction_seq_range_to_uid
    - functionName:    mail_index_transaction_seq_range_to_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          185
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - array_insert_space_i
        - array_is_created_i
        - get_nonexpunged_uid2
        - i_memcpy
        - i_panic
        - mail_index_transaction_get_uid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:229,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:232,10'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-finish.c:234,11'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-finish.c:236,10'
          Dst:             mail_index_transaction_get_uid
        - Src:             'mail-index-transaction-finish.c:237,10'
          Dst:             mail_index_transaction_get_uid
        - Src:             'mail-index-transaction-finish.c:238,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-finish.c:246,16'
          Dst:             array_insert_space_i
        - Src:             'mail-index-transaction-finish.c:247,12'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-finish.c:250,4'
          Dst:             i_memcpy
        - Src:             'mail-index-transaction-finish.c:252,22'
          Dst:             get_nonexpunged_uid2
        - Src:             'mail-index-transaction-finish.c:254,4'
          Dst:             i_panic
    - functionName:    get_nonexpunged_uid2
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_get_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:215,9'
          Dst:             mail_index_transaction_get_uid
    - functionName:    mail_index_convert_to_uids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - array_is_created_i
        - mail_index_transaction_get_uid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:199,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:202,10'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-finish.c:204,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-finish.c:205,10'
          Dst:             mail_index_transaction_get_uid
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    ext_reset_update_atomic
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_i
        - array_idx_modifiable_i
        - array_idx_set_i
        - array_is_created_i
        - mail_index_ext_set_reset_id
        - mail_index_map_get_ext_idx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:38,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-transaction-finish.c:42,13'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-finish.c:47,3'
          Dst:             mail_index_ext_set_reset_id
        - Src:             'mail-index-transaction-finish.c:54,2'
          Dst:             array_idx_set_i
        - Src:             'mail-index-transaction-finish.c:57,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:58,11'
          Dst:             array_idx_modifiable_i
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_drop_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_delete_i
        - array_get_i
        - array_insert_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:91,15'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-finish.c:99,2'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-finish.c:105,3'
          Dst:             array_insert_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_convert_to_uids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - expunges_convert_to_uids
        - keyword_updates_convert_to_uids
        - mail_index_convert_to_uids
        - mail_index_transaction_seq_range_to_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:311,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:312,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-finish.c:313,4'
          Dst:             mail_index_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:315,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:316,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-finish.c:317,4'
          Dst:             mail_index_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:320,9'
          Dst:             keyword_updates_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:321,2'
          Dst:             expunges_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:322,2'
          Dst:             mail_index_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:323,2'
          Dst:             mail_index_transaction_seq_range_to_uid
    - functionName:    transaction_update_atomic_reset_ids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - array_is_created_i
        - ext_reset_update_atomic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:70,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:73,23'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-finish.c:76,4'
          Dst:             ext_reset_update_atomic
    - functionName:    mail_index_transaction_finish
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - mail_index_transaction_convert_to_uids
        - mail_index_transaction_finish_so_far
        - mail_index_update_day_headers
        - mail_index_update_modseq
        - transaction_update_atomic_reset_ids
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:337,2'
          Dst:             mail_index_transaction_finish_so_far
        - Src:             'mail-index-transaction-finish.c:339,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:340,3'
          Dst:             mail_index_update_day_headers
        - Src:             'mail-index-transaction-finish.c:341,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:342,3'
          Dst:             transaction_update_atomic_reset_ids
        - Src:             'mail-index-transaction-finish.c:345,2'
          Dst:             mail_index_transaction_convert_to_uids
        - Src:             'mail-index-transaction-finish.c:349,3'
          Dst:             mail_index_update_modseq
    - functionName:    mail_index_transaction_finish_so_far
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - mail_index_transaction_check_conflicts
        - mail_index_transaction_finish_flag_updates
        - mail_index_transaction_sort_appends
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:328,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:329,3'
          Dst:             mail_index_transaction_sort_appends
        - Src:             'mail-index-transaction-finish.c:330,2'
          Dst:             mail_index_transaction_finish_flag_updates
        - Src:             'mail-index-transaction-finish.c:332,3'
          Dst:             mail_index_transaction_check_conflicts
    - functionName:    mail_index_transaction_finish_flag_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          166
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - array_clear_i
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_i
        - array_is_created_i
        - mail_index_lookup
        - mail_transaction_drop_range
        - pool_datastack_create
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:119,44'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-finish.c:122,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-finish.c:122,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-finish.c:123,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-finish.c:127,3'
          Dst:             array_clear_i
        - Src:             'mail-index-transaction-finish.c:129,10'
          Dst:             mail_index_lookup
        - Src:             'mail-index-transaction-finish.c:133,5'
          Dst:             seq_range_array_add
        - Src:             'mail-index-transaction-finish.c:136,7'
          Dst:             mail_transaction_drop_range
        - Src:             'mail-index-transaction-finish.c:137,13'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-finish.c:140,6'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-finish.c:141,3'
          Dst:             array_free_i
    - functionName:    mail_index_transaction_check_conflicts
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          153
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mail_index_cancel_flag_updates
        - mail_index_cancel_keyword_updates
        - mail_index_modseq_get_highest
        - mail_index_modseq_lookup
        - mail_index_transaction_set_log_updates
        - seq_range_array_add_with_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-finish.c:150,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-finish.c:151,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-finish.c:153,23'
          Dst:             mail_index_modseq_get_highest
        - Src:             'mail-index-transaction-finish.c:163,7'
          Dst:             mail_index_modseq_lookup
        - Src:             'mail-index-transaction-finish.c:164,11'
          Dst:             mail_index_cancel_flag_updates
        - Src:             'mail-index-transaction-finish.c:165,11'
          Dst:             mail_index_cancel_keyword_updates
        - Src:             'mail-index-transaction-finish.c:167,5'
          Dst:             seq_range_array_add_with_init
        - Src:             'mail-index-transaction-finish.c:172,2'
          Dst:             mail_index_transaction_set_log_updates
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    sort_appends_seq_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-sort-appends.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          193
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_create_i
        - array_delete_i
        - array_free_i
        - array_get_modifiable_i
        - seq_range_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-sort-appends.c:71,10'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-sort-appends.c:81,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-sort-appends.c:85,3'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-sort-appends.c:89,2'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-sort-appends.c:90,2'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-sort-appends.c:92,10'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-sort-appends.c:97,4'
          Dst:             seq_range_array_add
        - Src:             'mail-index-transaction-sort-appends.c:99,2'
          Dst:             array_free_i
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_sort_appends_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-sort-appends.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - sort_appends_seq_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-sort-appends.c:108,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:111,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-sort-appends.c:112,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:113,4'
          Dst:             sort_appends_seq_range
        - Src:             'mail-index-transaction-sort-appends.c:117,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:118,4'
          Dst:             sort_appends_seq_range
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_sort_appends_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-sort-appends.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_modifiable_i
        - array_idx_i
        - array_is_created_i
        - mail_index_seq_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-sort-appends.c:36,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:39,19'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-sort-appends.c:42,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:45,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-sort-appends.c:46,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-sort-appends.c:49,14'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-sort-appends.c:53,10'
          Dst:             mail_index_seq_array_add
        - Src:             'mail-index-transaction-sort-appends.c:57,3'
          Dst:             array_free_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    uid_map_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-sort-appends.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_index_transaction_sort_appends
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-sort-appends.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          304
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_modifiable_i
        - array_is_created_i
        - buffer_write
        - i_panic
        - mail_index_transaction_sort_appends_ext
        - mail_index_transaction_sort_appends_keywords
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - qsort
        - uid_map_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-sort-appends.c:132,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-sort-appends.c:134,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-sort-appends.c:135,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-sort-appends.c:138,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-sort-appends.c:147,16'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction-sort-appends.c:147,16'
          Dst:             p_malloc
        - Src:             'mail-index-transaction-sort-appends.c:149,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-sort-appends.c:155,2'
          Dst:             qsort
        - Src:             'mail-index-transaction-sort-appends.c:155,2'
          Dst:             uid_map_cmp
        - Src:             'mail-index-transaction-sort-appends.c:158,16'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction-sort-appends.c:158,16'
          Dst:             p_malloc
        - Src:             'mail-index-transaction-sort-appends.c:163,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-sort-appends.c:165,2'
          Dst:             buffer_write
        - Src:             'mail-index-transaction-sort-appends.c:167,2'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-sort-appends.c:169,22'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction-sort-appends.c:169,22'
          Dst:             p_malloc
        - Src:             'mail-index-transaction-sort-appends.c:172,2'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-sort-appends.c:174,2'
          Dst:             mail_index_transaction_sort_appends_ext
        - Src:             'mail-index-transaction-sort-appends.c:177,2'
          Dst:             mail_index_transaction_sort_appends_ext
        - Src:             'mail-index-transaction-sort-appends.c:180,2'
          Dst:             mail_index_transaction_sort_appends_keywords
        - Src:             'mail-index-transaction-sort-appends.c:181,2'
          Dst:             p_free_internal
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_ext_update_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - array_count_i
        - array_idx_modifiable_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:922,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:922,40'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:926,11'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-update.c:927,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:928,4'
          Dst:             array_clear_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    59
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_index_transaction_has_ext_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:875,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:877,8'
          Dst:             array_is_created_i
    - functionName:    mail_index_transaction_has_ext_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          192
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - array_is_created_i
        - mail_index_transaction_has_ext_updates
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:887,6'
          Dst:             mail_index_transaction_has_ext_updates
        - Src:             'mail-index-transaction-update.c:889,6'
          Dst:             mail_index_transaction_has_ext_updates
        - Src:             'mail-index-transaction-update.c:892,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:900,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:908,6'
          Dst:             array_is_created_i
    - functionName:    mail_index_revert_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_delete_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - mail_index_seq_array_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:296,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:299,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:300,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:301,7'
          Dst:             mail_index_seq_array_lookup
        - Src:             'mail-index-transaction-update.c:302,4'
          Dst:             array_delete_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_set_max_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1364
      functionLinenumberEnd: 1369
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1365,2'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1365,2'
          Dst:             i_panic
    - functionName:    mail_index_set_undeleted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1359
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1356,2'
          Dst:             i_panic
    - functionName:    mail_index_set_deleted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1352
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1349,2'
          Dst:             i_panic
    - functionName:    mail_index_unset_fscked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1345
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_update_header
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1336,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1341,3'
          Dst:             mail_index_update_header
    - functionName:    mail_index_update_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          160
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:716,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:717,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:718,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:724,3'
          Dst:             i_memcpy
        - Src:             'mail-index-transaction-update.c:729,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_index_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_transaction_reset
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1326,2'
          Dst:             mail_index_transaction_reset
    - functionName:    mail_index_transaction_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_cancel_array
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1294
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_free_i
        - array_is_created_i
        - seq_range_array_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1286,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1287,7'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:1288,8'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:1289,5'
          Dst:             array_free_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    21
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_index_cancel_keyword_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1317
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          128
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - array_free_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - mail_index_cancel_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1302,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1305,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:1306,7'
          Dst:             mail_index_cancel_array
        - Src:             'mail-index-transaction-update.c:1308,7'
          Dst:             mail_index_cancel_array
        - Src:             'mail-index-transaction-update.c:1310,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1311,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1315,3'
          Dst:             array_free_i
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    keyword_update_remove_existing
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - mail_index_keywords_create_from_indexes
        - mail_index_transaction_lookup_latest_keywords
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1137,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-update.c:1137,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1144,20'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:1146,4'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-update.c:1148,3'
          Dst:             mail_index_transaction_lookup_latest_keywords
        - Src:             'mail-index-transaction-update.c:1150,6'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:1152,9'
          Dst:             mail_index_keywords_create_from_indexes
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    14
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    keyword_update_has_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1094
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          174
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - array_create_i
        - array_get_i
        - mail_index_transaction_lookup_latest_keywords
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-transaction-update.c:1116,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1100,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-update.c:1100,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1102,3'
          Dst:             mail_index_transaction_lookup_latest_keywords
        - Src:             'mail-index-transaction-update.c:1103,17'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_index_update_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          440
      EdgeCount:       93
      CyclomaticComplexity: 17
      functionsReached:
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - i_panic
        - keyword_update_has_changes
        - keyword_update_remove_existing
        - mail_index_keywords_unref
        - mail_index_view_get_messages_count
        - seq_range_array_add_with_init
        - seq_range_array_remove
        - t_pop
        - t_push
        - update_minmax_flagupdate_seq
      functionUses:    15
      BranchProfiles:
        - Branch String:   'mail-index-transaction-update.c:1193,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1166,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction-update.c:1166,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1169,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1174,2'
          Dst:             update_minmax_flagupdate_seq
        - Src:             'mail-index-transaction-update.c:1176,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1180,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1184,3'
          Dst:             t_push
        - Src:             'mail-index-transaction-update.c:1185,14'
          Dst:             keyword_update_has_changes
        - Src:             'mail-index-transaction-update.c:1188,5'
          Dst:             t_pop
        - Src:             'mail-index-transaction-update.c:1188,5'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1197,31'
          Dst:             t_push
        - Src:             'mail-index-transaction-update.c:1199,22'
          Dst:             keyword_update_remove_existing
        - Src:             'mail-index-transaction-update.c:1201,5'
          Dst:             t_pop
        - Src:             'mail-index-transaction-update.c:1201,5'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1203,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:1204,4'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:1220,8'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:1222,4'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:1226,5'
          Dst:             seq_range_array_add_with_init
        - Src:             'mail-index-transaction-update.c:1233,8'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:1235,4'
          Dst:             seq_range_array_add_with_init
        - Src:             'mail-index-transaction-update.c:1236,4'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:1240,3'
          Dst:             mail_index_keywords_unref
    - functionName:    update_minmax_flagupdate_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_atomic_inc_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          144
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - i_panic
        - mail_index_seq_array_add
        - mail_index_view_get_messages_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1067,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction-update.c:1067,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1070,2'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:1070,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1077,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1078,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1079,10'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:1080,6'
          Dst:             mail_index_seq_array_add
        - Src:             'mail-index-transaction-update.c:1084,9'
          Dst:             mail_index_seq_array_add
    - functionName:    mail_index_update_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1059
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          237
      EdgeCount:       47
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - array_create_i
        - array_get_i
        - array_idx_get_space_i
        - array_idx_i
        - array_is_created_i
        - i_panic
        - mail_index_seq_array_add
        - mail_index_view_get_messages_count
      functionUses:    45
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1026,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction-update.c:1026,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1029,2'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:1029,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1033,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1037,11'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-update.c:1043,10'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-update.c:1046,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1048,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1049,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1050,10'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:1053,7'
          Dst:             mail_index_seq_array_add
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    mail_index_update_header_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          206
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - i_memcpy
        - i_panic
        - i_realloc
        - nearest_power
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:995,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:996,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:999,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1000,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:1002,8'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:1004,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1005,14'
          Dst:             nearest_power
        - Src:             'mail-index-transaction-update.c:1006,15'
          Dst:             i_realloc
        - Src:             'mail-index-transaction-update.c:1007,15'
          Dst:             i_realloc
        - Src:             'mail-index-transaction-update.c:1011,2'
          Dst:             i_memcpy
    - functionName:    mail_index_ext_reset_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 961
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          152
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_idx_clear_i
        - array_idx_modifiable_i
        - array_is_created_i
        - mail_index_ext_update_reset
        - mail_index_transaction_has_ext_changes
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:935,2'
          Dst:             mail_index_ext_update_reset
        - Src:             'mail-index-transaction-update.c:936,2'
          Dst:             mail_index_ext_update_reset
        - Src:             'mail-index-transaction-update.c:937,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:938,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:942,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-update.c:944,4'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-update.c:945,4'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-update.c:949,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:950,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:952,3'
          Dst:             array_idx_clear_i
        - Src:             'mail-index-transaction-update.c:954,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:955,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:957,3'
          Dst:             array_idx_clear_i
        - Src:             'mail-index-transaction-update.c:960,23'
          Dst:             mail_index_transaction_has_ext_changes
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_ext_using_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 965
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - mail_index_ext_reset_changes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:969,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:970,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:971,15'
          Dst:             array_idx_get_space_i
        - Src:             'mail-index-transaction-update.c:976,3'
          Dst:             mail_index_ext_reset_changes
    - functionName:    mail_index_ext_reset_inc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_idx_set_i
        - array_is_created_i
        - mail_index_ext_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:863,2'
          Dst:             mail_index_ext_reset
        - Src:             'mail-index-transaction-update.c:865,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:866,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:867,2'
          Dst:             array_idx_set_i
    - functionName:    mail_index_ext_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_idx_set_i
        - array_is_created_i
        - i_panic
        - mail_index_ext_set_reset_id
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:844,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:850,2'
          Dst:             mail_index_ext_set_reset_id
        - Src:             'mail-index-transaction-update.c:852,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:853,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:854,2'
          Dst:             array_idx_set_i
    - functionName:    mail_index_ext_set_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_ext_reset_changes
        - mail_index_ext_using_reset_id
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:983,2'
          Dst:             mail_index_ext_using_reset_id
        - Src:             'mail-index-transaction-update.c:985,2'
          Dst:             mail_index_ext_reset_changes
    - functionName:    mail_index_ext_resize_hdr
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_ext_resize
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:836,2'
          Dst:             mail_index_ext_resize
    - functionName:    mail_index_ext_resize
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          302
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - array_create_i
        - array_get_i
        - array_idx_i
        - array_idx_set_i
        - array_is_created_i
        - i_panic
        - mail_index_ext_rec_updates_resize
        - mail_index_map_get_ext_idx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:773,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-update.c:776,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-transaction-update.c:784,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-update.c:792,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:793,13'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-update.c:810,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:811,3'
          Dst:             mail_index_ext_rec_updates_resize
        - Src:             'mail-index-transaction-update.c:816,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:817,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:821,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:825,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:830,2'
          Dst:             array_idx_set_i
    - functionName:    mail_index_ext_rec_updates_resize
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_free_i
        - array_idx_i
        - array_idx_modifiable_i
        - array_is_created_i
        - i_memcpy
        - mail_index_seq_array_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:742,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:744,10'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-transaction-update.c:745,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:750,2'
          Dst:             mail_index_seq_array_alloc
        - Src:             'mail-index-transaction-update.c:753,18'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-update.c:754,28'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-update.c:756,3'
          Dst:             array_append_space_i
        - Src:             'mail-index-transaction-update.c:756,3'
          Dst:             i_memcpy
        - Src:             'mail-index-transaction-update.c:759,2'
          Dst:             array_free_i
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    mail_index_attribute_unset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_attribute_set_full
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:709,2'
          Dst:             mail_index_attribute_set_full
    - functionName:    mail_index_attribute_set_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - char
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          100
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_create_dynamic
        - strlen
        - time_to_uint32_trunc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:680,16'
          Dst:             time_to_uint32_trunc
        - Src:             'mail-index-transaction-update.c:683,26'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-update.c:684,33'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-update.c:686,2'
          Dst:             buffer_append_c
        - Src:             'mail-index-transaction-update.c:687,2'
          Dst:             buffer_append_c
        - Src:             'mail-index-transaction-update.c:688,43'
          Dst:             strlen
        - Src:             'mail-index-transaction-update.c:688,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-update.c:690,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-update.c:692,3'
          Dst:             buffer_append
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_attribute_set
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_attribute_set_full
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:702,2'
          Dst:             mail_index_attribute_set_full
    - functionName:    mail_index_update_flags
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 673
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_update_flags_range
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:672,2'
          Dst:             mail_index_update_flags_range
    - functionName:    mail_index_update_flags_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          477
      EdgeCount:       90
      CyclomaticComplexity: 20
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
        - mail_index_insert_flag_update
        - mail_index_record_modify_flags
        - mail_index_transaction_get_flag_update_pos
        - mail_index_transaction_lookup
        - mail_index_view_get_messages_count
        - update_minmax_flagupdate_seq
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mail-index-transaction-update.c:604,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-transaction-update.c:578,2'
          Dst:             update_minmax_flagupdate_seq
        - Src:             'mail-index-transaction-update.c:584,10'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-update.c:585,4'
          Dst:             mail_index_record_modify_flags
        - Src:             'mail-index-transaction-update.c:594,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:595,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction-update.c:595,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:621,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:622,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:623,3'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-update.c:627,16'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:649,3'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-update.c:651,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:662,9'
          Dst:             mail_index_transaction_get_flag_update_pos
        - Src:             'mail-index-transaction-update.c:664,3'
          Dst:             mail_index_insert_flag_update
    - functionName:    mail_index_transaction_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:19,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:21,9'
          Dst:             array_idx_modifiable_i
    - functionName:    mail_index_record_modify_flags
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-transaction-update.c:556,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_transaction_get_flag_update_pos
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          148
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:422,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-update.c:423,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:424,2'
          Dst:             i_panic
    - functionName:    mail_index_insert_flag_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         122
      ICount:          917
      EdgeCount:       149
      CyclomaticComplexity: 29
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_insert_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:452,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:455,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:456,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:461,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:476,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:477,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:479,4'
          Dst:             array_insert_i
        - Src:             'mail-index-transaction-update.c:480,14'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:494,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:495,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:497,4'
          Dst:             array_insert_i
        - Src:             'mail-index-transaction-update.c:498,14'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:512,4'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-update.c:513,14'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:522,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:525,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:526,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:527,3'
          Dst:             array_insert_i
        - Src:             'mail-index-transaction-update.c:529,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:541,4'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-update.c:545,14'
          Dst:             array_get_modifiable_i
    - functionName:    mail_index_expunge_last_append
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - array_free_i
        - i_panic
        - mail_index_revert_changes_common
        - mail_index_transaction_set_log_updates
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:345,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:347,2'
          Dst:             mail_index_revert_changes_common
        - Src:             'mail-index-transaction-update.c:350,2'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-update.c:355,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:357,2'
          Dst:             mail_index_transaction_set_log_updates
    - functionName:    mail_index_revert_changes_common
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_delete_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - mail_index_revert_ext
        - mail_index_seq_array_lookup
        - mail_index_transaction_has_ext_changes
        - seq_range_array_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:313,2'
          Dst:             mail_index_revert_ext
        - Src:             'mail-index-transaction-update.c:314,2'
          Dst:             mail_index_revert_ext
        - Src:             'mail-index-transaction-update.c:315,23'
          Dst:             mail_index_transaction_has_ext_changes
        - Src:             'mail-index-transaction-update.c:318,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:319,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:320,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:321,5'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:324,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:325,5'
          Dst:             seq_range_array_remove
        - Src:             'mail-index-transaction-update.c:331,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:332,6'
          Dst:             mail_index_seq_array_lookup
        - Src:             'mail-index-transaction-update.c:333,3'
          Dst:             array_delete_i
    - functionName:    mail_index_transaction_set_log_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:108,19'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:109,3'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:110,3'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:111,3'
          Dst:             array_is_created_i
    - functionName:    mail_index_expunge_guid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_get_i
        - array_is_created_i
        - i_memcpy
        - i_panic
        - mail_index_expunge_last_append
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:374,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:380,3'
          Dst:             mail_index_expunge_last_append
        - Src:             'mail-index-transaction-update.c:385,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:386,4'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:389,15'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-update.c:393,13'
          Dst:             array_append_space_i
        - Src:             'mail-index-transaction-update.c:395,3'
          Dst:             i_memcpy
    - functionName:    mail_index_expunge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_expunge_guid
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:364,2'
          Dst:             mail_index_expunge_guid
    - functionName:    mail_index_cancel_flag_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          192
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - array_delete_i
        - array_free_i
        - array_get_modifiable_i
        - array_insert_i
        - array_is_created_i
        - i_panic
        - mail_index_transaction_get_flag_update_pos
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:1251,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:1254,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:1255,6'
          Dst:             mail_index_transaction_get_flag_update_pos
        - Src:             'mail-index-transaction-update.c:1259,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:1269,4'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction-update.c:1271,4'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:1279,3'
          Dst:             array_insert_i
    - functionName:    mail_index_revert_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_cancel_flag_updates
        - mail_index_revert_changes_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:338,2'
          Dst:             mail_index_revert_changes_common
        - Src:             'mail-index-transaction-update.c:339,8'
          Dst:             mail_index_cancel_flag_updates
    - functionName:    mail_index_update_highest_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_update_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:264,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:265,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:267,6'
          Dst:             array_append_space_i
    - functionName:    mail_index_append_finish_uids_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          344
      EdgeCount:       66
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:211,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:214,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:215,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:218,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-update.c:219,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:226,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:231,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:241,2'
          Dst:             array_clear_i
        - Src:             'mail-index-transaction-update.c:242,10'
          Dst:             array_append_space_i
        - Src:             'mail-index-transaction-update.c:248,12'
          Dst:             array_append_space_i
    - functionName:    mail_index_append_finish_uids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_append_finish_uids_full
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:198,9'
          Dst:             mail_index_append_finish_uids_full
    - functionName:    mail_index_append
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          189
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - mail_index_transaction_lookup
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:162,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-update.c:166,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:167,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-update.c:176,8'
          Dst:             array_append_space_i
        - Src:             'mail-index-transaction-update.c:183,10'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-update.c:187,5'
          Dst:             i_panic
    - functionName:    mail_index_update_day_headers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          142
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_i
        - mail_index_get_header
        - mail_index_update_header
        - time_to_local_day_start
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:126,9'
          Dst:             mail_index_get_header
        - Src:             'mail-index-transaction-update.c:127,8'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-update.c:129,10'
          Dst:             time_to_local_day_start
        - Src:             'mail-index-transaction-update.c:146,18'
          Dst:             time_to_uint32_trunc
        - Src:             'mail-index-transaction-update.c:149,2'
          Dst:             mail_index_update_header
        - Src:             'mail-index-transaction-update.c:152,2'
          Dst:             mail_index_update_header
    - functionName:    mail_index_transaction_reset_v
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         71
      ICount:          491
      EdgeCount:       91
      CyclomaticComplexity: 22
      functionsReached:
        - array_free_i
        - array_is_created_i
        - buffer_free
        - buffer_get_modifiable_data
        - mail_index_view_get_messages_count
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-update.c:29,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:30,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:31,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:32,5'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:34,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:36,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:37,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:38,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:39,5'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:41,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:43,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:44,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:45,4'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-update.c:46,4'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-update.c:48,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:51,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:54,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-transaction-update.c:55,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:56,5'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:57,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:58,5'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:60,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:63,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:64,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:65,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:66,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:67,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:68,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:69,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:70,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:71,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:72,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:73,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:74,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:75,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:76,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:77,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-update.c:78,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-update.c:79,2'
          Dst:             buffer_free
        - Src:             'mail-index-transaction-update.c:80,2'
          Dst:             buffer_free
        - Src:             'mail-index-transaction-update.c:82,21'
          Dst:             mail_index_view_get_messages_count
    - functionName:    tview_return_updated_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          219
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - buffer_append
        - buffer_create_dynamic
        - buffer_set_used_size
        - mail_index_map_get_ext_idx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:338,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-transaction-view.c:340,10'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:344,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:350,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:351,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-view.c:352,11'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:367,5'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-view.c:372,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-transaction-view.c:376,3'
          Dst:             buffer_append
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      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_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    tview_is_ext_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:387,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:390,11'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    tview_lookup_ext_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          141
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_i
        - array_is_created_i
        - mail_index_map_clone
        - mail_index_map_get_ext_idx
        - mail_index_map_register_ext
        - mail_index_seq_array_lookup
        - tview_return_updated_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:404,12'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:405,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:406,7'
          Dst:             mail_index_seq_array_lookup
        - Src:             'mail-index-transaction-view.c:411,4'
          Dst:             mail_index_map_clone
        - Src:             'mail-index-transaction-view.c:413,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-transaction-view.c:418,4'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:426,3'
          Dst:             mail_index_map_register_ext
        - Src:             'mail-index-transaction-view.c:430,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-view.c:432,12'
          Dst:             tview_return_updated_ext
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    keyword_index_remove
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:282,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-view.c:285,4'
          Dst:             array_delete_i
    - functionName:    keyword_index_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:268,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-view.c:273,2'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    tview_apply_flag_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          308
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - array_is_created_i
        - i_malloc
        - i_memcpy
        - i_panic
        - mail_index_transaction_get_flag_update_pos
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:93,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:96,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-view.c:97,8'
          Dst:             mail_index_transaction_get_flag_update_pos
        - Src:             'mail-index-transaction-view.c:110,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:111,4'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-view.c:115,26'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction-view.c:115,17'
          Dst:             i_malloc
        - Src:             'mail-index-transaction-view.c:117,3'
          Dst:             array_append_i
        - Src:             'mail-index-transaction-view.c:119,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-view.c:120,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-view.c:123,2'
          Dst:             i_memcpy
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    tview_ext_get_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:488,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:489,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-view.c:491,16'
          Dst:             array_idx_i
    - functionName:    tview_get_header_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tview_lookup_ext_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          148
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
        - tview_is_ext_reset
        - tview_lookup_ext_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:444,2'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-view.c:444,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-view.c:449,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:450,15'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-view.c:453,7'
          Dst:             tview_lookup_ext_update
        - Src:             'mail-index-transaction-view.c:460,7'
          Dst:             tview_is_ext_reset
    - functionName:    tview_lookup_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          160
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_i
        - array_is_created_i
        - keyword_index_add
        - keyword_index_remove
        - seq_range_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:307,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:308,13'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-view.c:314,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:315,7'
          Dst:             seq_range_exists
        - Src:             'mail-index-transaction-view.c:316,4'
          Dst:             keyword_index_add
        - Src:             'mail-index-transaction-view.c:317,12'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:318,5'
          Dst:             seq_range_exists
        - Src:             'mail-index-transaction-view.c:319,4'
          Dst:             keyword_index_remove
    - functionName:    tview_lookup_first
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:249,8'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-view.c:252,2'
          Dst:             i_panic
    - functionName:    tview_lookup_seq_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          276
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - mail_index_transaction_lookup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:189,8'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-view.c:203,10'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-view.c:222,9'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-view.c:228,2'
          Dst:             i_panic
    - functionName:    tview_lookup_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_lookup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:162,12'
          Dst:             mail_index_transaction_lookup
    - functionName:    tview_lookup_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_transaction_is_expunged
        - mail_index_transaction_lookup
        - tview_apply_flag_updates
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:143,10'
          Dst:             mail_index_transaction_lookup
        - Src:             'mail-index-transaction-view.c:147,8'
          Dst:             tview_apply_flag_updates
        - Src:             'mail-index-transaction-view.c:150,6'
          Dst:             mail_index_transaction_is_expunged
    - functionName:    tview_get_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_get_next_uid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:72,13'
          Dst:             mail_index_transaction_get_next_uid
    - functionName:    tview_get_message_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          45
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tview_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_get_modifiable_i
        - array_is_created_i
        - buffer_free
        - mail_index_transaction_unref
        - mail_index_unmap
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:37,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index-transaction-view.c:38,2'
          Dst:             buffer_free
        - Src:             'mail-index-transaction-view.c:40,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-view.c:41,10'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-view.c:43,4'
          Dst:             p_free_internal
        - Src:             'mail-index-transaction-view.c:44,3'
          Dst:             array_free_i
        - Src:             'mail-index-transaction-view.c:48,2'
          Dst:             mail_index_transaction_unref
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_open_updated_view
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_ref
        - mail_index_view_clone
        - mail_index_view_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-view.c:522,3'
          Dst:             mail_index_view_ref
        - Src:             'mail-index-transaction-view.c:526,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction-view.c:526,10'
          Dst:             p_malloc
        - Src:             'mail-index-transaction-view.c:527,2'
          Dst:             mail_index_view_clone
        - Src:             'mail-index-transaction-view.c:532,2'
          Dst:             mail_index_transaction_ref
    - functionName:    mail_transaction_log_file_refresh
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          106
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_map
        - mail_transaction_log_rotate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:152,7'
          Dst:             mail_transaction_log_rotate
        - Src:             'mail-index-transaction.c:158,6'
          Dst:             mail_index_map
        - Src:             'mail-index-transaction.c:161,2'
          Dst:             i_panic
    - functionName:    mail_index_transaction_commit_real
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          231
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_unlink_if_exists
        - mail_index_transaction_export
        - mail_index_transaction_finish
        - mail_index_view_add_hidden_transaction
        - mail_transaction_log_append_begin
        - mail_transaction_log_append_commit
        - mail_transaction_log_file_refresh
        - mail_transaction_log_get_head
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:185,6'
          Dst:             mail_transaction_log_append_begin
        - Src:             'mail-index-transaction.c:187,8'
          Dst:             mail_transaction_log_file_refresh
        - Src:             'mail-index-transaction.c:188,16'
          Dst:             t_push
        - Src:             'mail-index-transaction.c:189,3'
          Dst:             mail_index_transaction_finish
        - Src:             'mail-index-transaction.c:190,3'
          Dst:             mail_index_transaction_export
        - Src:             'mail-index-transaction.c:191,4'
          Dst:             t_pop
        - Src:             'mail-index-transaction.c:191,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:193,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-transaction.c:194,6'
          Dst:             mail_transaction_log_append_commit
        - Src:             'mail-index-transaction.c:196,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-transaction.c:197,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:202,3'
          Dst:             i_unlink_if_exists
        - Src:             'mail-index-transaction.c:210,3'
          Dst:             mail_index_view_add_hidden_transaction
    - functionName:    mail_index_transaction_rollback_v
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_transaction_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:257,9'
          Dst:             mail_index_transaction_unref
    - functionName:    mail_index_transaction_unref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          122
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_free_i
        - mail_index_transaction_reset_v
        - mail_index_view_close
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:79,2'
          Dst:             mail_index_transaction_reset_v
        - Src:             'mail-index-transaction.c:82,2'
          Dst:             array_free_i
        - Src:             'mail-index-transaction.c:83,2'
          Dst:             mail_index_view_close
        - Src:             'mail-index-transaction.c:84,2'
          Dst:             mail_index_view_close
        - Src:             'mail-index-transaction.c:85,2'
          Dst:             p_free_internal
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_commit_v
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          214
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
        - mail_index_refresh
        - mail_index_transaction_commit_real
        - mail_index_transaction_unref
        - mail_index_view_get_messages_count
        - mail_transaction_log_get_head
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:223,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction.c:223,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:226,12'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction.c:226,12'
          Dst:             array_count_i
        - Src:             'mail-index-transaction.c:229,7'
          Dst:             t_push
        - Src:             'mail-index-transaction.c:230,9'
          Dst:             mail_index_transaction_commit_real
        - Src:             'mail-index-transaction.c:232,4'
          Dst:             t_pop
        - Src:             'mail-index-transaction.c:232,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:233,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-transaction.c:247,3'
          Dst:             mail_index_refresh
        - Src:             'mail-index-transaction.c:251,2'
          Dst:             mail_index_transaction_unref
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          197
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_create_i
        - array_is_created_i
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - mail_index_view_get_messages_count
        - mail_index_view_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:323,3'
          Dst:             mail_index_view_ref
        - Src:             'mail-index-transaction.c:325,6'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-transaction.c:325,6'
          Dst:             p_malloc
        - Src:             'mail-index-transaction.c:338,4'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-transaction.c:341,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction.c:345,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction.c:347,4'
          Dst:             hook_build_init
        - Src:             'mail-index-transaction.c:349,3'
          Dst:             i_memcpy
        - Src:             'mail-index-transaction.c:351,4'
          Dst:             hook_build_update
        - Src:             'mail-index-transaction.c:354,3'
          Dst:             hook_build_deinit
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_transaction_commit_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          170
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - mail_index_set_error_nolog
        - mail_index_transaction_rollback
        - mail_index_view_is_inconsistent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:274,6'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'mail-index-transaction.c:275,3'
          Dst:             mail_index_set_error_nolog
        - Src:             'mail-index-transaction.c:276,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'mail-index-transaction.c:284,4'
          Dst:             mail_index_set_error_nolog
        - Src:             'mail-index-transaction.c:285,4'
          Dst:             mail_index_transaction_rollback
    - functionName:    mail_index_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_transaction_commit_full
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:264,9'
          Dst:             mail_index_transaction_commit_full
    - functionName:    mail_index_transaction_lookup_latest_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_keywords
        - mail_index_lookup_seq
        - mail_index_lookup_uid
        - mail_index_refresh
        - mail_index_view_open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:128,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mail-index-transaction.c:133,3'
          Dst:             mail_index_refresh
        - Src:             'mail-index-transaction.c:134,20'
          Dst:             mail_index_view_open
        - Src:             'mail-index-transaction.c:136,6'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-transaction.c:137,3'
          Dst:             mail_index_lookup_keywords
        - Src:             'mail-index-transaction.c:139,3'
          Dst:             mail_index_lookup_keywords
    - functionName:    mail_index_transaction_get_next_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          184
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:98,6'
          Dst:             array_is_created_i
    - functionName:    mail_index_transaction_ref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_transaction_is_expunged
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_bsearch_i
        - array_is_created_i
        - mail_index_transaction_sort_expunges
        - mail_transaction_expunge_guid_cmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:55,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction.c:59,3'
          Dst:             mail_index_transaction_sort_expunges
        - Src:             'mail-index-transaction.c:62,9'
          Dst:             array_bsearch_i
        - Src:             'mail-index-transaction.c:62,9'
          Dst:             mail_transaction_expunge_guid_cmp
    - functionName:    mail_index_transaction_get_view
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_hook_unregister
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_free_i
        - array_idx_i
        - array_is_created_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:28,2'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction.c:28,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:29,21'
          Dst:             array_count_i
        - Src:             'mail-index-transaction.c:31,4'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction.c:33,4'
          Dst:             array_delete_i
        - Src:             'mail-index-transaction.c:38,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction.c:39,6'
          Dst:             array_count_i
        - Src:             'mail-index-transaction.c:40,3'
          Dst:             array_free_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_transaction_hook_register
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction.c:18,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction.c:19,3'
          Dst:             array_create_i
        - Src:             'mail-index-transaction.c:20,2'
          Dst:             array_append_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    i_bswap_32
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_index_seq_array_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          120
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_modifiable_i
        - array_insert_space_i
        - array_is_created_i
        - i_memcpy
        - i_panic
        - mail_index_seq_array_alloc
        - mail_index_seq_array_lookup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-util.c:126,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-util.c:127,3'
          Dst:             mail_index_seq_array_alloc
        - Src:             'mail-index-util.c:128,2'
          Dst:             i_panic
        - Src:             'mail-index-util.c:130,6'
          Dst:             mail_index_seq_array_lookup
        - Src:             'mail-index-util.c:132,7'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-util.c:135,4'
          Dst:             i_memcpy
        - Src:             'mail-index-util.c:138,3'
          Dst:             i_memcpy
        - Src:             'mail-index-util.c:142,7'
          Dst:             array_insert_space_i
        - Src:             'mail-index-util.c:143,3'
          Dst:             i_memcpy
        - Src:             'mail-index-util.c:144,3'
          Dst:             i_memcpy
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_seq_array_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - array_is_created_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-util.c:109,2'
          Dst:             array_is_created_i
        - Src:             'mail-index-util.c:109,2'
          Dst:             i_panic
        - Src:             'mail-index-util.c:111,2'
          Dst:             array_create_i
    - functionName:    mail_index_seq_array_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_count_i
        - array_idx_i
        - mail_index_seq_record_cmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-util.c:92,23'
          Dst:             array_count_i
        - Src:             'mail-index-util.c:94,26'
          Dst:             array_count_i
        - Src:             'mail-index-util.c:94,26'
          Dst:             array_idx_i
        - Src:             'mail-index-util.c:100,9'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mail-index-util.c:100,9'
          Dst:             mail_index_seq_record_cmp
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_seq_record_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_unpack_num
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_pack_num
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    be32_to_cpu
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_bswap_32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:264,1'
          Dst:             i_bswap_32
    - functionName:    mail_index_offset_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - be32_to_cpu
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-util.c:24,11'
          Dst:             be32_to_cpu
    - functionName:    cpu32_to_be
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_bswap_32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:264,1'
          Dst:             i_bswap_32
    - functionName:    mail_index_uint32_to_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - cpu32_to_be
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-util.c:10,2'
          Dst:             i_panic
        - Src:             'mail-index-util.c:11,2'
          Dst:             i_panic
        - Src:             'mail-index-util.c:19,9'
          Dst:             cpu32_to_be
    - functionName:    view_sync_is_hidden
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:715,7'
          Dst:             array_is_created_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_sync_want
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          241
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - mail_transaction_log_view_get_prev_pos
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:736,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-view-sync.c:743,4'
          Dst:             i_panic
    - functionName:    have_existing_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_seq_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:211,7'
          Dst:             mail_index_lookup_seq_range
    - functionName:    have_existing_guid_expunge
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_seq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:228,7'
          Dst:             mail_index_lookup_seq
    - functionName:    view_sync_add_expunge_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:148,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:152,3'
          Dst:             seq_range_array_add_range
    - functionName:    view_sync_add_expunge_guids
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:162,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:166,3'
          Dst:             seq_range_array_add
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    2
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    uint_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    view_sync_lost_keywords_equal
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_modifiable_i
        - memcmp
        - qsort
        - uint_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:290,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-view-sync.c:291,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-view-sync.c:295,2'
          Dst:             qsort
        - Src:             'mail-index-view-sync.c:295,2'
          Dst:             uint_cmp
        - Src:             'mail-index-view-sync.c:296,2'
          Dst:             qsort
        - Src:             'mail-index-view-sync.c:296,2'
          Dst:             uint_cmp
        - Src:             'mail-index-view-sync.c:297,9'
          Dst:             memcmp
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    view_sync_expunges2seqs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          124
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_modifiable_i
        - i_panic
        - mail_index_lookup_seq_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:123,15'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-view-sync.c:126,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-view-sync.c:130,4'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:137,2'
          Dst:             array_count_i
        - Src:             'mail-index-view-sync.c:137,2'
          Dst:             array_delete_i
    - functionName:    view_sync_update_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          171
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_idx_i
        - buffer_append
        - buffer_append_zero
        - buffer_set_used_size
        - mail_index_sync_record
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:309,11'
          Dst:             array_get_i
        - Src:             'mail-index-view-sync.c:312,13'
          Dst:             array_idx_i
        - Src:             'mail-index-view-sync.c:320,21'
          Dst:             strlen
        - Src:             'mail-index-view-sync.c:321,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-view-sync.c:322,3'
          Dst:             buffer_append
        - Src:             'mail-index-view-sync.c:323,3'
          Dst:             buffer_append
        - Src:             'mail-index-view-sync.c:326,4'
          Dst:             buffer_append_zero
        - Src:             'mail-index-view-sync.c:329,3'
          Dst:             buffer_append
        - Src:             'mail-index-view-sync.c:330,3'
          Dst:             buffer_append
        - Src:             'mail-index-view-sync.c:333,7'
          Dst:             mail_index_sync_record
    - functionName:    view_sync_apply_lost_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          303
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - array_idx_i
        - mail_index_map_lookup_keywords
        - mail_index_sync_record
        - seq_range_array_add
        - view_sync_lost_keywords_equal
        - view_sync_update_keywords
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:373,7'
          Dst:             mail_index_sync_record
        - Src:             'mail-index-view-sync.c:378,2'
          Dst:             mail_index_map_lookup_keywords
        - Src:             'mail-index-view-sync.c:379,2'
          Dst:             mail_index_map_lookup_keywords
        - Src:             'mail-index-view-sync.c:380,7'
          Dst:             view_sync_lost_keywords_equal
        - Src:             'mail-index-view-sync.c:390,7'
          Dst:             mail_index_sync_record
        - Src:             'mail-index-view-sync.c:394,7'
          Dst:             view_sync_update_keywords
        - Src:             'mail-index-view-sync.c:405,9'
          Dst:             array_idx_i
        - Src:             'mail-index-view-sync.c:419,3'
          Dst:             seq_range_array_add
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_view_add_hidden_transaction
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:1042,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-view-sync.c:1043,3'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:1045,9'
          Dst:             array_append_space_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_index_view_sync_clean_log_syncs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_delete_i
        - array_get_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:957,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-view-sync.c:961,10'
          Dst:             array_get_i
        - Src:             'mail-index-view-sync.c:970,3'
          Dst:             array_delete_i
    - functionName:    mail_index_view_sync_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          314
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_panic
        - mail_index_map_modseq_get_highest
        - mail_index_modseq_sync_end
        - mail_index_sync_map_deinit
        - mail_index_unmap
        - mail_index_view_sync_clean_log_syncs
        - mail_transaction_log_view_clear
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:980,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:992,3'
          Dst:             mail_index_modseq_sync_end
        - Src:             'mail-index-view-sync.c:995,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view-sync.c:1005,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:1013,3'
          Dst:             mail_index_sync_map_deinit
        - Src:             'mail-index-view-sync.c:1014,2'
          Dst:             mail_index_view_sync_clean_log_syncs
        - Src:             'mail-index-view-sync.c:1021,2'
          Dst:             mail_transaction_log_view_clear
        - Src:             'mail-index-view-sync.c:1024,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-view-sync.c:1025,3'
          Dst:             array_free_i
        - Src:             'mail-index-view-sync.c:1026,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-view-sync.c:1027,3'
          Dst:             array_free_i
        - Src:             'mail-index-view-sync.c:1029,25'
          Dst:             mail_index_map_modseq_get_highest
        - Src:             'mail-index-view-sync.c:1031,2'
          Dst:             p_free_internal
    - functionName:    mail_index_view_sync_get_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_sync_get_rec
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          279
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-view-sync.c:832,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    mail_index_view_sync_get_next_transaction
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          213
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - mail_index_sync_record
        - mail_index_view_sync_want
        - mail_transaction_log_view_get_prev_pos
        - mail_transaction_log_view_next
        - view_sync_is_hidden
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:784,9'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-view-sync.c:797,12'
          Dst:             mail_index_view_sync_want
        - Src:             'mail-index-view-sync.c:799,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-view-sync.c:814,10'
          Dst:             mail_index_sync_record
        - Src:             'mail-index-view-sync.c:821,16'
          Dst:             view_sync_is_hidden
    - functionName:    mail_index_view_sync_next_lost
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:907,10'
          Dst:             array_get_i
    - functionName:    mail_index_view_sync_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mail_index_view_sync_get_next_transaction
        - mail_index_view_sync_get_rec
        - mail_index_view_sync_next_lost
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:927,10'
          Dst:             mail_index_view_sync_next_lost
        - Src:             'mail-index-view-sync.c:931,10'
          Dst:             mail_index_view_sync_get_next_transaction
        - Src:             'mail-index-view-sync.c:940,12'
          Dst:             mail_index_view_sync_get_rec
    - functionName:    view_sync_have_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - have_existing_expunges
        - have_existing_guid_expunge
        - mail_transaction_log_view_is_last
        - mail_transaction_log_view_mark
        - mail_transaction_log_view_next
        - mail_transaction_log_view_rewind
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:241,6'
          Dst:             mail_transaction_log_view_is_last
        - Src:             'mail-index-view-sync.c:244,2'
          Dst:             mail_transaction_log_view_mark
        - Src:             'mail-index-view-sync.c:246,16'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-view-sync.c:254,8'
          Dst:             have_existing_guid_expunge
        - Src:             'mail-index-view-sync.c:260,8'
          Dst:             have_existing_expunges
        - Src:             'mail-index-view-sync.c:267,2'
          Dst:             mail_transaction_log_view_rewind
    - functionName:    view_sync_get_expunges
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_transaction_log_view_mark
        - mail_transaction_log_view_next
        - mail_transaction_log_view_rewind
        - view_sync_add_expunge_guids
        - view_sync_add_expunge_range
        - view_sync_expunges2seqs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:182,2'
          Dst:             mail_transaction_log_view_mark
        - Src:             'mail-index-view-sync.c:183,16'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-view-sync.c:190,4'
          Dst:             view_sync_add_expunge_guids
        - Src:             'mail-index-view-sync.c:193,4'
          Dst:             view_sync_add_expunge_range
        - Src:             'mail-index-view-sync.c:197,2'
          Dst:             mail_transaction_log_view_rewind
        - Src:             'mail-index-view-sync.c:199,21'
          Dst:             view_sync_expunges2seqs
    - functionName:    view_sync_get_log_lost_changes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          386
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - array_clear_i
        - array_create_i
        - buffer_create_dynamic
        - mail_index_map_get_ext_idx
        - mail_index_map_lookup_keywords
        - mail_index_set_error
        - mail_index_sync_get_atomic_map
        - mail_index_sync_record
        - pool_datastack_create
        - seq_range_array_add
        - view_sync_apply_lost_changes
        - view_sync_expunges2seqs
        - view_sync_update_keywords
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:439,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-view-sync.c:441,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view-sync.c:445,2'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:446,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-view-sync.c:446,2'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:447,2'
          Dst:             pool_datastack_create
        - Src:             'mail-index-view-sync.c:447,2'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:448,21'
          Dst:             pool_datastack_create
        - Src:             'mail-index-view-sync.c:448,21'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-view-sync.c:457,8'
          Dst:             view_sync_apply_lost_changes
        - Src:             'mail-index-view-sync.c:462,4'
          Dst:             seq_range_array_add
        - Src:             'mail-index-view-sync.c:466,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:476,3'
          Dst:             seq_range_array_add
        - Src:             'mail-index-view-sync.c:483,7'
          Dst:             mail_index_sync_record
        - Src:             'mail-index-view-sync.c:486,3'
          Dst:             mail_index_map_lookup_keywords
        - Src:             'mail-index-view-sync.c:488,7'
          Dst:             view_sync_update_keywords
        - Src:             'mail-index-view-sync.c:491,21'
          Dst:             view_sync_expunges2seqs
        - Src:             'mail-index-view-sync.c:503,3'
          Dst:             array_clear_i
    - functionName:    view_sync_set_log_view_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          208
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - mail_transaction_log_view_clear
        - mail_transaction_log_view_get_prev_pos
        - mail_transaction_log_view_set
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:74,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-view-sync.c:84,9'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-view-sync.c:89,15'
          Dst:             t_strdup_printf
        - Src:             'mail-index-view-sync.c:100,3'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-view-sync.c:105,4'
          Dst:             mail_transaction_log_view_clear
    - functionName:    mail_index_view_sync_init_fix
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          106
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_set_error
        - mail_index_unmap
        - mail_transaction_log_view_set
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:525,2'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view-sync.c:533,8'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-view-sync.c:536,3'
          Dst:             mail_index_set_error
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_view_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          683
      EdgeCount:       116
      CyclomaticComplexity: 28
      functionsReached:
        - array_create_i
        - e_warning
        - i_panic
        - mail_index_map_clone
        - mail_index_modseq_sync_end
        - mail_index_set_error
        - mail_index_sync_map_deinit
        - mail_index_sync_map_init
        - mail_index_unmap
        - mail_index_view_is_inconsistent
        - mail_index_view_sync_init_fix
        - mail_index_view_unref_maps
        - malloc_multiply_check
        - p_malloc
        - view_sync_get_expunges
        - view_sync_get_log_lost_changes
        - view_sync_have_expunges
        - view_sync_set_log_view_range
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view-sync.c:555,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:556,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:562,2'
          Dst:             mail_index_view_unref_maps
        - Src:             'mail-index-view-sync.c:564,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-view-sync.c:564,8'
          Dst:             p_malloc
        - Src:             'mail-index-view-sync.c:568,2'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:573,3'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:576,3'
          Dst:             i_panic
        - Src:             'mail-index-view-sync.c:577,7'
          Dst:             mail_index_view_sync_init_fix
        - Src:             'mail-index-view-sync.c:581,6'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'mail-index-view-sync.c:582,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:588,8'
          Dst:             view_sync_set_log_view_range
        - Src:             'mail-index-view-sync.c:591,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:603,4'
          Dst:             e_warning
        - Src:             'mail-index-view-sync.c:608,4'
          Dst:             array_create_i
        - Src:             'mail-index-view-sync.c:609,3'
          Dst:             mail_index_sync_map_init
        - Src:             'mail-index-view-sync.c:611,9'
          Dst:             view_sync_get_log_lost_changes
        - Src:             'mail-index-view-sync.c:612,3'
          Dst:             mail_index_modseq_sync_end
        - Src:             'mail-index-view-sync.c:613,3'
          Dst:             mail_index_sync_map_deinit
        - Src:             'mail-index-view-sync.c:615,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:625,7'
          Dst:             view_sync_get_expunges
        - Src:             'mail-index-view-sync.c:634,19'
          Dst:             view_sync_have_expunges
        - Src:             'mail-index-view-sync.c:652,8'
          Dst:             mail_index_view_sync_init_fix
        - Src:             'mail-index-view-sync.c:657,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:669,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view-sync.c:679,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view-sync.c:691,14'
          Dst:             mail_index_map_clone
        - Src:             'mail-index-view-sync.c:692,4'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view-sync.c:701,2'
          Dst:             mail_index_sync_map_init
    - functionName:    mail_index_view_ref_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:113,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-view.c:114,10'
          Dst:             array_get_i
        - Src:             'mail-index-view.c:122,3'
          Dst:             array_create_i
        - Src:             'mail-index-view.c:128,2'
          Dst:             array_append_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    view_ext_get_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:400,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:403,8'
          Dst:             array_idx_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    view_get_header_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:381,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:388,8'
          Dst:             array_idx_i
    - functionName:    view_lookup_ext_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - view_map_lookup_ext_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:366,12'
          Dst:             view_map_lookup_ext_full
    - functionName:    view_map_lookup_ext_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:350,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:353,8'
          Dst:             array_idx_i
    - functionName:    view_lookup_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_data_lookup_keywords
        - mail_index_lookup_ext_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:338,2'
          Dst:             mail_index_lookup_ext_full
        - Src:             'mail-index-view.c:340,2'
          Dst:             mail_index_data_lookup_keywords
    - functionName:    mail_index_lookup_ext_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_data_lookup_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          141
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_get_i
        - array_is_created_i
        - mail_index_ext_get_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:296,2'
          Dst:             array_clear_i
        - Src:             'mail-index-view.c:301,8'
          Dst:             mail_index_ext_get_size
        - Src:             'mail-index-view.c:306,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-view.c:309,20'
          Dst:             array_get_i
        - Src:             'mail-index-view.c:327,4'
          Dst:             array_append_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_index_ext_get_size
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - i_panic
        - mail_index_map_get_ext_idx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:573,2'
          Dst:             i_panic
        - Src:             'mail-index-view.c:575,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:583,8'
          Dst:             array_idx_i
    - functionName:    view_lookup_first
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          231
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - mail_index_lookup_seq_range
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:271,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-view.c:276,2'
          Dst:             i_panic
    - functionName:    mail_index_lookup_seq_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    31
      BranchProfiles:  []
      Callsites:       []
    - functionName:    view_lookup_seq_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map_lookup_seq_range
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:247,2'
          Dst:             mail_index_map_lookup_seq_range
    - functionName:    view_lookup_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_view_get_messages_count
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:238,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-view.c:238,2'
          Dst:             i_panic
    - functionName:    mail_index_view_get_messages_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    38
      BranchProfiles:  []
      Callsites:       []
    - functionName:    view_lookup_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          338
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - mail_index_fsck
        - mail_index_set_error
        - mail_index_view_get_messages_count
        - mail_index_view_ref_map
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:165,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-view.c:165,2'
          Dst:             i_panic
        - Src:             'mail-index-view.c:171,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-view.c:174,10'
          Dst:             mail_index_fsck
        - Src:             'mail-index-view.c:221,3'
          Dst:             mail_index_view_ref_map
    - functionName:    view_get_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    view_get_messages_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 148
      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:    view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          173
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_panic
        - mail_index_unmap
        - mail_index_view_unref_maps
        - mail_transaction_log_view_close
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:71,2'
          Dst:             i_panic
        - Src:             'mail-index-view.c:72,2'
          Dst:             i_panic
        - Src:             'mail-index-view.c:76,2'
          Dst:             mail_transaction_log_view_close
        - Src:             'mail-index-view.c:78,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-view.c:79,3'
          Dst:             array_free_i
        - Src:             'mail-index-view.c:80,2'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view.c:81,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-view.c:82,3'
          Dst:             mail_index_view_unref_maps
        - Src:             'mail-index-view.c:83,3'
          Dst:             array_free_i
        - Src:             'mail-index-view.c:85,2'
          Dst:             array_free_i
        - Src:             'mail-index-view.c:86,2'
          Dst:             p_free_internal
    - functionName:    mail_index_view_unref_maps
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_clear_i
        - array_get_modifiable_i
        - array_is_created_i
        - mail_index_unmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:136,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-view.c:139,9'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-view.c:141,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index-view.c:143,2'
          Dst:             array_clear_i
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    mail_index_view_get_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - mail_index_map_get_ext_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:650,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:653,9'
          Dst:             array_idx_i
    - functionName:    mail_index_view_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_view_open_with_map
      functionUses:    41
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:638,9'
          Dst:             mail_index_view_open_with_map
    - functionName:    mail_index_view_open_with_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          142
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - mail_transaction_log_view_open
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:609,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-view.c:609,9'
          Dst:             p_malloc
        - Src:             'mail-index-view.c:613,19'
          Dst:             mail_transaction_log_view_open
        - Src:             'mail-index-view.c:625,2'
          Dst:             array_create_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_index_ext_get_reset_id
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_map_get_header_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_get_header_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup_ext
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup_ext_full
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:536,2'
          Dst:             mail_index_lookup_ext_full
    - functionName:    mail_index_lookup_first
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup_seq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    47
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup_uid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    48
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup_view_flags
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          100
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_data_lookup_keywords
        - mail_index_view_get_messages_count
        - view_map_lookup_ext_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:491,2'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mail-index-view.c:491,2'
          Dst:             i_panic
        - Src:             'mail-index-view.c:496,17'
          Dst:             view_map_lookup_ext_full
        - Src:             'mail-index-view.c:498,2'
          Dst:             mail_index_data_lookup_keywords
    - functionName:    mail_index_lookup_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_map_lookup_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mail_index_data_lookup_keywords
        - mail_index_map_get_ext_idx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:467,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-view.c:471,9'
          Dst:             array_idx_i
        - Src:             'mail-index-view.c:475,2'
          Dst:             mail_index_data_lookup_keywords
    - functionName:    mail_index_is_expunged
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup_full
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup_full
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:440,9'
          Dst:             mail_index_lookup_full
    - functionName:    mail_index_get_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    80
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    76
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:419,2'
          Dst:             i_panic
    - functionName:    mail_index_view_have_transactions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      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:    mail_index_view_get_index
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_ref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_view_clone
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          190
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - mail_transaction_log_view_open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:41,4'
          Dst:             mail_transaction_log_view_open
        - Src:             'mail-index-view.c:55,2'
          Dst:             array_create_i
    - functionName:    mail_index_view_dup_private
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map_clone
        - mail_index_unmap
        - mail_index_view_clone
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-view.c:21,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-view.c:21,9'
          Dst:             p_malloc
        - Src:             'mail-index-view.c:22,2'
          Dst:             mail_index_view_clone
        - Src:             'mail-index-view.c:24,8'
          Dst:             mail_index_map_clone
        - Src:             'mail-index-view.c:25,2'
          Dst:             mail_index_unmap
    - functionName:    mail_index_create_backup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          158
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - fdatasync
        - link
        - mail_index_set_error
        - rename
        - t_strconcat
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-write.c:21,7'
          Dst:             fdatasync
        - Src:             'mail-index-write.c:22,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-write.c:28,16'
          Dst:             t_strconcat
        - Src:             'mail-index-write.c:29,20'
          Dst:             t_strconcat
        - Src:             'mail-index-write.c:30,8'
          Dst:             link
        - Src:             'mail-index-write.c:31,17'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:32,7'
          Dst:             unlink
        - Src:             'mail-index-write.c:32,38'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:33,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-write.c:37,9'
          Dst:             link
        - Src:             'mail-index-write.c:40,7'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:44,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-write.c:49,6'
          Dst:             rename
        - Src:             'mail-index-write.c:50,3'
          Dst:             mail_index_set_error
    - functionName:    mail_index_recreate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          331
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - close
        - fdatasync
        - i_panic
        - i_unlink
        - mail_index_create_backup
        - mail_index_create_tmp_file
        - mail_index_file_set_syscall_error
        - mail_index_set_error
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_finish
        - o_stream_nsend
        - rename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-write.c:65,2'
          Dst:             i_panic
        - Src:             'mail-index-write.c:66,2'
          Dst:             i_panic
        - Src:             'mail-index-write.c:67,2'
          Dst:             i_panic
        - Src:             'mail-index-write.c:68,2'
          Dst:             i_panic
        - Src:             'mail-index-write.c:70,7'
          Dst:             mail_index_create_tmp_file
        - Src:             'mail-index-write.c:74,11'
          Dst:             o_stream_create_fd_file
        - Src:             'mail-index-write.c:75,2'
          Dst:             o_stream_cork
        - Src:             'mail-index-write.c:84,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-write.c:85,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-write.c:87,2'
          Dst:             o_stream_nsend
        - Src:             'mail-index-write.c:89,6'
          Dst:             o_stream_finish
        - Src:             'mail-index-write.c:90,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-index-write.c:93,2'
          Dst:             o_stream_destroy
        - Src:             'mail-index-write.c:96,7'
          Dst:             fdatasync
        - Src:             'mail-index-write.c:97,4'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-index-write.c:103,6'
          Dst:             close
        - Src:             'mail-index-write.c:104,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-index-write.c:109,9'
          Dst:             mail_index_create_backup
        - Src:             'mail-index-write.c:111,18'
          Dst:             rename
        - Src:             'mail-index-write.c:112,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-write.c:118,3'
          Dst:             i_unlink
    - functionName:    mail_index_should_recreate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          140
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - mail_index_set_syscall_error
        - nfs_safe_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-write.c:126,6'
          Dst:             nfs_safe_stat
        - Src:             'mail-index-write.c:127,7'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:128,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-write.c:142,6'
          Dst:             fstat
        - Src:             'mail-index-write.c:143,8'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:143,8'
          Dst:             __errno_location
        - Src:             'mail-index-write.c:144,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-write.c:148,7'
          Dst:             gnu_dev_major
        - Src:             'mail-index-write.c:148,7'
          Dst:             gnu_dev_major
        - Src:             'mail-index-write.c:148,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-index-write.c:148,7'
          Dst:             gnu_dev_minor
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mail_index_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-write.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          257
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_set_name
        - event_want_level
        - i_panic
        - mail_index_move_to_memory
        - mail_index_recreate
        - mail_index_should_recreate
        - mail_transaction_log_rotate
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-write.c:162,2'
          Dst:             i_panic
        - Src:             'mail-index-write.c:172,7'
          Dst:             mail_transaction_log_rotate
        - Src:             'mail-index-write.c:181,4'
          Dst:             i_panic
        - Src:             'mail-index-write.c:182,4'
          Dst:             i_panic
        - Src:             'mail-index-write.c:189,28'
          Dst:             time_to_uint32
        - Src:             'mail-index-write.c:196,24'
          Dst:             mail_index_should_recreate
        - Src:             'mail-index-write.c:200,7'
          Dst:             mail_index_recreate
        - Src:             'mail-index-write.c:201,10'
          Dst:             mail_index_move_to_memory
        - Src:             'mail-index-write.c:204,3'
          Dst:             event_set_name
        - Src:             'mail-index-write.c:205,3'
          Dst:             event_want_level
        - Src:             'mail-index-write.c:205,3'
          Dst:             e_debug
        - Src:             'mail-index-write.c:205,3'
          Dst:             event_send_abort
    - functionName:    mail_index_get_cache_path
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:580,9'
          Dst:             t_strconcat
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mail_index_try_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - i_panic
        - mail_index_map
        - mail_index_set_syscall_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:521,2'
          Dst:             i_panic
        - Src:             'mail-index.c:526,8'
          Dst:             mail_index_map
        - Src:             'mail-index.c:530,8'
          Dst:             close
        - Src:             'mail-index.c:531,5'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1074
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_file_set_syscall_error
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1073,2'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    mail_index_file_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1079
      functionLinenumberEnd: 1121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          259
      EdgeCount:       63
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - eacces_error_get
        - eacces_error_get_creating
        - i_panic
        - mail_index_set_error
        - mail_index_set_error_code
        - nfs_safe_stat
        - str_begins_with
        - strcmp
        - strncmp
        - t_strcut
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1082,2'
          Dst:             i_panic
        - Src:             'mail-index.c:1083,2'
          Dst:             i_panic
        - Src:             'mail-index.c:1085,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1087,19'
          Dst:             __errno_location
        - Src:             'mail-index.c:1088,3'
          Dst:             i_panic
        - Src:             'mail-index.c:1089,7'
          Dst:             nfs_safe_stat
        - Src:             'mail-index.c:1090,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:1093,4'
          Dst:             __errno_location
        - Src:             'mail-index.c:1096,3'
          Dst:             __errno_location
        - Src:             'mail-index.c:1099,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1099,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1105,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1105,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1105,6'
          Dst:             __errno_location
        - Src:             'mail-index.c:1106,14'
          Dst:             t_strcut
        - Src:             'mail-index.c:1107,7'
          Dst:             strcmp
        - Src:             'mail-index.c:1108,7'
          Dst:             strncmp
        - Src:             'mail-index.c:1108,7'
          Dst:             str_begins_with
        - Src:             'mail-index.c:1109,13'
          Dst:             eacces_error_get_creating
        - Src:             'mail-index.c:1111,13'
          Dst:             eacces_error_get
        - Src:             'mail-index.c:1113,3'
          Dst:             mail_index_set_error_code
        - Src:             'mail-index.c:1116,24'
          Dst:             __errno_location
        - Src:             'mail-index.c:1118,3'
          Dst:             mail_index_set_error
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mail_index_set_error_code
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_set_verror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:907,2'
          Dst:             mail_index_set_verror
    - functionName:    mail_index_set_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_set_verror
      functionUses:    73
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:897,2'
          Dst:             mail_index_set_verror
    - functionName:    mail_index_set_verror
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - i_strdup_vprintf
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:883,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:888,28'
          Dst:             i_strdup_vprintf
        - Src:             'mail-index.c:889,3'
          Dst:             e_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_is_locked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_transaction_log_sync_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1062,2'
          Dst:             mail_transaction_log_sync_unlock
    - functionName:    mail_index_lock_sync
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_transaction_log_sync_lock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1056,9'
          Dst:             mail_transaction_log_sync_lock
    - functionName:    mail_index_get_modification_time
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mail_index_file_set_syscall_error
        - stat
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1004,9'
          Dst:             t_strconcat
        - Src:             'mail-index.c:1006,6'
          Dst:             stat
        - Src:             'mail-index.c:1007,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:1012,3'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    mail_index_is_deleted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_mark_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mail_index_set_syscall_error
        - mail_transaction_log_unlink
        - unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:980,7'
          Dst:             unlink
        - Src:             'mail-index.c:981,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:981,26'
          Dst:             __errno_location
        - Src:             'mail-index.c:982,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index.c:983,9'
          Dst:             mail_transaction_log_unlink
    - functionName:    mail_index_set_as_in_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:928,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:930,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:931,20'
          Dst:             i_strdup
    - functionName:    mail_index_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          164
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - close
        - i_panic
        - mail_index_map_clone
        - mail_index_set_as_in_memory
        - mail_index_set_syscall_error
        - mail_index_unmap
        - mail_transaction_log_move_to_memory
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:947,3'
          Dst:             i_panic
        - Src:             'mail-index.c:948,3'
          Dst:             mail_index_set_as_in_memory
        - Src:             'mail-index.c:954,9'
          Dst:             mail_index_map_clone
        - Src:             'mail-index.c:955,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index.c:961,7'
          Dst:             mail_transaction_log_move_to_memory
        - Src:             'mail-index.c:966,7'
          Dst:             close
        - Src:             'mail-index.c:967,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index.c:970,2'
          Dst:             mail_index_set_as_in_memory
    - functionName:    mail_index_is_in_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_set_error_nolog
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:914,2'
          Dst:             i_panic
        - Src:             'mail-index.c:917,27'
          Dst:             i_strdup
        - Src:             'mail-index.c:918,2'
          Dst:             p_free_internal
    - functionName:    mail_index_get_cache
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 877
      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:    mail_index_refresh
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_map
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:871,8'
          Dst:             mail_index_map
    - functionName:    mail_index_reopen_if_changed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          212
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - mail_index_close_file
        - mail_index_set_syscall_error
        - mail_index_try_open_only
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:827,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'mail-index.c:828,6'
          Dst:             nfs_safe_stat
        - Src:             'mail-index.c:829,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:833,3'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index.c:837,6'
          Dst:             fstat
        - Src:             'mail-index.c:838,8'
          Dst:             __errno_location
        - Src:             'mail-index.c:838,8'
          Dst:             __errno_location
        - Src:             'mail-index.c:839,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index.c:845,6'
          Dst:             gnu_dev_major
        - Src:             'mail-index.c:845,6'
          Dst:             gnu_dev_major
        - Src:             'mail-index.c:845,6'
          Dst:             gnu_dev_minor
        - Src:             'mail-index.c:845,6'
          Dst:             gnu_dev_minor
        - Src:             'mail-index.c:855,2'
          Dst:             mail_index_close_file
        - Src:             'mail-index.c:858,13'
          Dst:             mail_index_try_open_only
    - functionName:    mail_index_close_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - mail_index_set_syscall_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:736,7'
          Dst:             close
        - Src:             'mail-index.c:737,4'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_try_open_only
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          166
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - mail_index_set_syscall_error
        - nfs_safe_open
        - open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:488,2'
          Dst:             i_panic
        - Src:             'mail-index.c:489,2'
          Dst:             i_panic
        - Src:             'mail-index.c:493,3'
          Dst:             __errno_location
        - Src:             'mail-index.c:495,15'
          Dst:             nfs_safe_open
        - Src:             'mail-index.c:499,25'
          Dst:             __errno_location
        - Src:             'mail-index.c:499,25'
          Dst:             __errno_location
        - Src:             'mail-index.c:499,25'
          Dst:             __errno_location
        - Src:             'mail-index.c:500,15'
          Dst:             open
        - Src:             'mail-index.c:505,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:506,4'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_unlink
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          174
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - t_strconcat
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:784,6'
          Dst:             unlink
        - Src:             'mail-index.c:784,37'
          Dst:             __errno_location
        - Src:             'mail-index.c:785,16'
          Dst:             __errno_location
        - Src:             'mail-index.c:788,9'
          Dst:             t_strconcat
        - Src:             'mail-index.c:789,6'
          Dst:             unlink
        - Src:             'mail-index.c:789,26'
          Dst:             __errno_location
        - Src:             'mail-index.c:790,16'
          Dst:             __errno_location
        - Src:             'mail-index.c:792,9'
          Dst:             t_strconcat
        - Src:             'mail-index.c:794,6'
          Dst:             unlink
        - Src:             'mail-index.c:794,26'
          Dst:             __errno_location
        - Src:             'mail-index.c:795,16'
          Dst:             __errno_location
        - Src:             'mail-index.c:798,9'
          Dst:             t_strconcat
        - Src:             'mail-index.c:799,6'
          Dst:             unlink
        - Src:             'mail-index.c:799,26'
          Dst:             __errno_location
        - Src:             'mail-index.c:800,16'
          Dst:             __errno_location
        - Src:             'mail-index.c:805,3'
          Dst:             __errno_location
    - functionName:    mail_index_open_or_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_open
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:728,8'
          Dst:             mail_index_open
        - Src:             'mail-index.c:729,2'
          Dst:             i_panic
    - functionName:    mail_index_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          229
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - event_set_forced_debug
        - event_unset_forced_debug
        - i_fatal
        - i_panic
        - i_strconcat
        - i_strdup
        - mail_index_alloc_cache_index_opened
        - mail_index_close
        - mail_index_close_nonopened
        - mail_index_open_files
        - mail_index_open_opened
        - mail_index_reset_error
        - mail_index_set_error
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:672,14'
          Dst:             mail_index_open_opened
        - Src:             'mail-index.c:679,3'
          Dst:             i_strdup
        - Src:             'mail-index.c:680,3'
          Dst:             i_strconcat
        - Src:             'mail-index.c:682,2'
          Dst:             mail_index_reset_error
        - Src:             'mail-index.c:688,3'
          Dst:             event_set_forced_debug
        - Src:             'mail-index.c:690,3'
          Dst:             event_unset_forced_debug
        - Src:             'mail-index.c:694,3'
          Dst:             i_fatal
        - Src:             'mail-index.c:697,3'
          Dst:             i_fatal
        - Src:             'mail-index.c:702,13'
          Dst:             mail_index_open_files
        - Src:             'mail-index.c:704,3'
          Dst:             mail_index_close_nonopened
        - Src:             'mail-index.c:711,3'
          Dst:             mail_index_close
        - Src:             'mail-index.c:712,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index.c:717,2'
          Dst:             i_panic
        - Src:             'mail-index.c:718,2'
          Dst:             mail_index_alloc_cache_index_opened
    - functionName:    mail_index_open_opened
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_close_file
        - mail_index_open_files
        - mail_index_unmap
        - mail_transaction_log_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:651,2'
          Dst:             i_panic
        - Src:             'mail-index.c:656,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index.c:657,3'
          Dst:             mail_index_close_file
        - Src:             'mail-index.c:658,3'
          Dst:             mail_transaction_log_close
        - Src:             'mail-index.c:659,14'
          Dst:             mail_index_open_files
    - functionName:    mail_index_reset_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1133,2'
          Dst:             p_free_internal
    - functionName:    mail_index_open_files
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          269
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - mail_cache_open_or_create_path
        - mail_index_get_cache_path
        - mail_index_map_alloc
        - mail_index_move_to_memory
        - mail_index_try_open
        - mail_index_unmap
        - mail_transaction_log_close
        - mail_transaction_log_create
        - mail_transaction_log_open
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:589,8'
          Dst:             mail_transaction_log_open
        - Src:             'mail-index.c:596,9'
          Dst:             mail_index_try_open
        - Src:             'mail-index.c:601,21'
          Dst:             time_to_uint32
        - Src:             'mail-index.c:607,9'
          Dst:             mail_transaction_log_create
        - Src:             'mail-index.c:617,34'
          Dst:             mail_index_try_open
        - Src:             'mail-index.c:620,4'
          Dst:             mail_transaction_log_close
        - Src:             'mail-index.c:621,10'
          Dst:             mail_transaction_log_create
        - Src:             'mail-index.c:624,6'
          Dst:             mail_index_unmap
        - Src:             'mail-index.c:625,18'
          Dst:             mail_index_map_alloc
        - Src:             'mail-index.c:634,7'
          Dst:             mail_index_move_to_memory
        - Src:             'mail-index.c:639,22'
          Dst:             mail_index_get_cache_path
        - Src:             'mail-index.c:640,18'
          Dst:             mail_cache_open_or_create_path
    - functionName:    mail_index_close_nonopened
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_cache_free
        - mail_index_close_file
        - mail_index_unmap
        - mail_transaction_log_close
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:744,2'
          Dst:             i_panic
        - Src:             'mail-index.c:747,3'
          Dst:             i_panic
        - Src:             'mail-index.c:751,2'
          Dst:             i_panic
        - Src:             'mail-index.c:754,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index.c:756,2'
          Dst:             mail_index_close_file
        - Src:             'mail-index.c:757,2'
          Dst:             mail_transaction_log_close
        - Src:             'mail-index.c:759,3'
          Dst:             mail_cache_free
        - Src:             'mail-index.c:761,2'
          Dst:             p_free_internal
    - functionName:    mail_index_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_alloc_cache_index_closing
        - mail_index_close_nonopened
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:768,2'
          Dst:             i_panic
        - Src:             'mail-index.c:770,2'
          Dst:             mail_index_alloc_cache_index_closing
        - Src:             'mail-index.c:772,3'
          Dst:             mail_index_close_nonopened
    - functionName:    mail_index_fchown
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchmod
        - fchown
        - mail_index_file_set_syscall_error
        - mail_index_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:1026,13'
          Dst:             fchown
        - Src:             'mail-index.c:1034,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:1034,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:1034,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:1035,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-index.c:1038,4'
          Dst:             eperm_error_get_chgrp
        - Src:             'mail-index.c:1037,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index.c:1047,6'
          Dst:             fchmod
        - Src:             'mail-index.c:1048,3'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    fchown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fchmod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_create_tmp_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          121
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_panic
        - i_unlink
        - mail_index_fchown
        - mail_index_file_set_syscall_error
        - open
        - t_strconcat
        - umask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:545,2'
          Dst:             i_panic
        - Src:             'mail-index.c:547,19'
          Dst:             t_strconcat
        - Src:             'mail-index.c:548,13'
          Dst:             umask
        - Src:             'mail-index.c:549,7'
          Dst:             open
        - Src:             'mail-index.c:550,2'
          Dst:             umask
        - Src:             'mail-index.c:551,18'
          Dst:             __errno_location
        - Src:             'mail-index.c:554,7'
          Dst:             i_unlink
        - Src:             'mail-index.c:556,14'
          Dst:             umask
        - Src:             'mail-index.c:557,8'
          Dst:             open
        - Src:             'mail-index.c:559,3'
          Dst:             umask
        - Src:             'mail-index.c:562,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-index.c:566,2'
          Dst:             mail_index_fchown
    - functionName:    mail_index_keywords_unref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:479,2'
          Dst:             i_panic
        - Src:             'mail-index.c:483,3'
          Dst:             p_free_internal
    - functionName:    mail_index_keywords_ref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_keywords_create_from_indexes
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          150
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - i_malloc
        - malloc_add_check
        - malloc_multiply_check
        - p_malloc
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:443,12'
          Dst:             array_get_i
        - Src:             'mail-index.c:445,7'
          Dst:             malloc_multiply_check
        - Src:             'mail-index.c:445,7'
          Dst:             p_malloc
        - Src:             'mail-index.c:452,15'
          Dst:             malloc_multiply_check
        - Src:             'mail-index.c:452,15'
          Dst:             malloc_add_check
        - Src:             'mail-index.c:452,6'
          Dst:             i_malloc
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_keywords_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          152
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_malloc
        - mail_index_keyword_lookup_or_create
        - malloc_add_check
        - malloc_multiply_check
        - p_malloc
        - str_array_length
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:403,10'
          Dst:             str_array_length
        - Src:             'mail-index.c:405,7'
          Dst:             malloc_multiply_check
        - Src:             'mail-index.c:405,7'
          Dst:             p_malloc
        - Src:             'mail-index.c:412,15'
          Dst:             malloc_multiply_check
        - Src:             'mail-index.c:412,15'
          Dst:             malloc_add_check
        - Src:             'mail-index.c:412,6'
          Dst:             i_malloc
        - Src:             'mail-index.c:420,3'
          Dst:             mail_index_keyword_lookup_or_create
    - functionName:    mail_index_keyword_lookup_or_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_delete_i
        - hash_table_insert
        - i_panic
        - mail_index_keyword_lookup
        - p_strdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:374,2'
          Dst:             i_panic
        - Src:             'mail-index.c:376,6'
          Dst:             mail_index_keyword_lookup
        - Src:             'mail-index.c:379,26'
          Dst:             p_strdup
        - Src:             'mail-index.c:380,11'
          Dst:             array_count_i
        - Src:             'mail-index.c:382,2'
          Dst:             hash_table_insert
        - Src:             'mail-index.c:384,2'
          Dst:             array_append_i
        - Src:             'mail-index.c:387,2'
          Dst:             array_append_space_i
        - Src:             'mail-index.c:388,2'
          Dst:             array_count_i
        - Src:             'mail-index.c:388,2'
          Dst:             array_delete_i
    - functionName:    mail_index_keyword_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_lookup_full
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:358,6'
          Dst:             hash_table_lookup_full
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_get_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_unregister_expunge_handler
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:343,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index.c:344,2'
          Dst:             i_panic
    - functionName:    mail_index_register_expunge_handler
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:332,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index.c:333,2'
          Dst:             i_panic
    - functionName:    mail_index_ext_register_resize_defaults
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_modifiable_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:302,9'
          Dst:             array_idx_modifiable_i
    - functionName:    mail_index_ext_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:314,15'
          Dst:             array_get_i
        - Src:             'mail-index.c:316,7'
          Dst:             strcmp
    - functionName:    mail_index_ext_name_is_valid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:256,8'
          Dst:             __ctype_b_loc
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_set_ext_init_data
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - i_malloc
        - i_memcpy
        - i_panic
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:238,2'
          Dst:             i_panic
        - Src:             'mail-index.c:240,2'
          Dst:             i_panic
        - Src:             'mail-index.c:242,9'
          Dst:             array_idx_i
        - Src:             'mail-index.c:243,2'
          Dst:             i_panic
        - Src:             'mail-index.c:246,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:247,33'
          Dst:             i_malloc
        - Src:             'mail-index.c:248,2'
          Dst:             i_memcpy
    - functionName:    mail_index_set_optimization_settings
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          327
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_set_lock_method
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_set_permissions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:175,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:176,26'
          Dst:             i_strdup
    - functionName:    mail_index_use_existing_permissions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          168
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - e_error
        - getegid
        - i_strdup
        - p_free_internal
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:142,6'
          Dst:             stat
        - Src:             'mail-index.c:143,7'
          Dst:             __errno_location
        - Src:             'mail-index.c:144,4'
          Dst:             e_error
        - Src:             'mail-index.c:156,13'
          Dst:             getegid
        - Src:             'mail-index.c:163,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:165,27'
          Dst:             i_strdup
    - functionName:    mail_index_set_fsync_mode
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_set_cache_dir
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:123,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:124,25'
          Dst:             i_strdup
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - event_unref
        - hash_table_destroy
        - i_panic
        - mail_transaction_log_free
        - p_free_internal
        - pool_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:100,2'
          Dst:             i_panic
        - Src:             'mail-index.c:102,2'
          Dst:             mail_transaction_log_free
        - Src:             'mail-index.c:103,2'
          Dst:             hash_table_destroy
        - Src:             'mail-index.c:104,2'
          Dst:             pool_unref
        - Src:             'mail-index.c:105,2'
          Dst:             pool_unref
        - Src:             'mail-index.c:107,2'
          Dst:             array_free_i
        - Src:             'mail-index.c:108,2'
          Dst:             array_free_i
        - Src:             'mail-index.c:110,2'
          Dst:             event_unref
        - Src:             'mail-index.c:111,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:112,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:113,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:114,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:115,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:116,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:117,2'
          Dst:             p_free_internal
        - Src:             'mail-index.c:118,2'
          Dst:             p_free_internal
    - functionName:    mail_index_ext_register
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_count_i
        - i_panic
        - mail_index_ext_lookup
        - mail_index_ext_name_is_valid
        - p_strdup
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:272,7'
          Dst:             mail_index_ext_name_is_valid
        - Src:             'mail-index.c:273,3'
          Dst:             i_panic
        - Src:             'mail-index.c:276,3'
          Dst:             i_panic
        - Src:             'mail-index.c:280,6'
          Dst:             mail_index_ext_lookup
        - Src:             'mail-index.c:284,14'
          Dst:             p_strdup
        - Src:             'mail-index.c:285,19'
          Dst:             array_count_i
        - Src:             'mail-index.c:290,2'
          Dst:             array_append_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    3
      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:    mail_index_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          119
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - event_add_category
        - event_create
        - hash_table_create
        - i_strdup
        - mail_index_ext_register
        - mail_index_modseq_init
        - mail_transaction_log_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcase_hash
        - strcasecmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index.c:63,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-index.c:63,10'
          Dst:             p_malloc
        - Src:             'mail-index.c:64,15'
          Dst:             i_strdup
        - Src:             'mail-index.c:65,18'
          Dst:             i_strdup
        - Src:             'mail-index.c:67,17'
          Dst:             event_create
        - Src:             'mail-index.c:68,2'
          Dst:             event_add_category
        - Src:             'mail-index.c:71,3'
          Dst:             pool_alloconly_create
        - Src:             'mail-index.c:72,2'
          Dst:             array_create_i
        - Src:             'mail-index.c:73,2'
          Dst:             array_create_i
        - Src:             'mail-index.c:83,3'
          Dst:             mail_index_ext_register
        - Src:             'mail-index.c:85,25'
          Dst:             pool_alloconly_create
        - Src:             'mail-index.c:86,2'
          Dst:             array_create_i
        - Src:             'mail-index.c:87,2'
          Dst:             hash_table_create
        - Src:             'mail-index.c:87,2'
          Dst:             strcase_hash
        - Src:             'mail-index.c:87,2'
          Dst:             strcasecmp
        - Src:             'mail-index.c:89,15'
          Dst:             mail_transaction_log_alloc
        - Src:             'mail-index.c:90,2'
          Dst:             mail_index_modseq_init
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mail_namespace_is_usable_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          153
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - mail_namespace_get_sep
        - str_begins_with
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:721,6'
          Dst:             strncmp
        - Src:             'mail-namespace.c:726,15'
          Dst:             strncmp
        - Src:             'mail-namespace.c:726,15'
          Dst:             str_begins_with
        - Src:             'mail-namespace.c:727,6'
          Dst:             strncmp
        - Src:             'mail-namespace.c:734,6'
          Dst:             strncmp
        - Src:             'mail-namespace.c:736,38'
          Dst:             mail_namespace_get_sep
    - functionName:    mail_namespace_get_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_hierarchy_sep
      functionUses:    52
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:708,3'
          Dst:             mailbox_list_get_hierarchy_sep
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    get_listindex_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_get_root_path
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:241,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mail-namespace.c:246,12'
          Dst:             t_strconcat
    - functionName:    namespace_is_valid_alias_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:182,6'
          Dst:             strcmp
        - Src:             'mail-namespace.c:183,14'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:193,14'
          Dst:             t_strdup_printf
    - functionName:    namespace_has_duplicate_listindex
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          131
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - get_listindex_path
        - mailbox_list_get_root_path
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:264,7'
          Dst:             get_listindex_path
        - Src:             'mail-namespace.c:265,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mail-namespace.c:270,8'
          Dst:             get_listindex_path
        - Src:             'mail-namespace.c:271,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'mail-namespace.c:275,7'
          Dst:             strcmp
        - Src:             'mail-namespace.c:276,7'
          Dst:             strcmp
        - Src:             'mail-namespace.c:277,15'
          Dst:             t_strdup_printf
    - functionName:    namespace_set_alias_for
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          143
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mail_namespace_find_name
        - namespace_is_valid_alias_storage
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:208,19'
          Dst:             mail_namespace_find_name
        - Src:             'mail-namespace.c:211,15'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:216,15'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:222,8'
          Dst:             namespace_is_valid_alias_storage
    - functionName:    mail_namespace_find_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:916,7'
          Dst:             strcmp
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_namespace_find_prefix_nosep
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_namespace_get_sep
        - strlen
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:898,15'
          Dst:             strlen
        - Src:             'mail-namespace.c:902,7'
          Dst:             strncmp
        - Src:             'mail-namespace.c:903,26'
          Dst:             mail_namespace_get_sep
    - functionName:    mail_namespace_find_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:883,15'
          Dst:             strlen
        - Src:             'mail-namespace.c:887,7'
          Dst:             strcmp
    - functionName:    mail_namespace_find_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:868,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:873,3'
          Dst:             i_panic
    - functionName:    mail_namespace_find_unsubscribable
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_namespace_find_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:861,9'
          Dst:             mail_namespace_find_mask
    - functionName:    mail_namespace_find_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          246
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - mail_namespace_is_usable_prefix
        - str_begins_builtin_success
        - strlen
        - strncasecmp
        - uni_utf8_to_nfc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:759,30'
          Dst:             strlen
        - Src:             'mail-namespace.c:759,9'
          Dst:             uni_utf8_to_nfc
        - Src:             'mail-namespace.c:760,3'
          Dst:             i_panic
        - Src:             'mail-namespace.c:763,10'
          Dst:             strncasecmp
        - Src:             'mail-namespace.c:763,10'
          Dst:             str_begins_builtin_success
        - Src:             'mail-namespace.c:779,7'
          Dst:             mail_namespace_is_usable_prefix
    - functionName:    mail_namespace_find_subscribable
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 852
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_namespace_find_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:852,9'
          Dst:             mail_namespace_find_mask
    - functionName:    mail_namespace_find_visible
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_namespace_find_mask
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:844,9'
          Dst:             mail_namespace_find_mask
    - functionName:    mail_namespace_find_unalias
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_find
        - mailbox_list_get_storage_name
        - mailbox_list_get_vname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:830,7'
          Dst:             mail_namespace_find
        - Src:             'mail-namespace.c:833,4'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mail-namespace.c:835,14'
          Dst:             mailbox_list_get_vname
    - functionName:    mail_namespace_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_namespace_find_mask
        - mail_namespace_find_shared
        - mail_namespace_get_sep
        - mail_namespace_is_shared_user_root
        - strchr
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:812,7'
          Dst:             mail_namespace_find_mask
        - Src:             'mail-namespace.c:813,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:815,6'
          Dst:             mail_namespace_is_shared_user_root
        - Src:             'mail-namespace.c:817,23'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-namespace.c:817,7'
          Dst:             strchr
        - Src:             'mail-namespace.c:818,11'
          Dst:             mail_namespace_find_shared
    - functionName:    mail_namespace_is_shared_user_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 938
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:933,2'
          Dst:             i_memcpy
        - Src:             'mail-namespace.c:934,7'
          Dst:             strcmp
    - functionName:    mail_namespace_find_shared
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_list_get_namespace
        - mailbox_list_get_storage
        - strlen
        - uni_utf8_to_nfc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:797,34'
          Dst:             strlen
        - Src:             'mail-namespace.c:797,9'
          Dst:             uni_utf8_to_nfc
        - Src:             'mail-namespace.c:798,3'
          Dst:             i_panic
        - Src:             'mail-namespace.c:801,6'
          Dst:             mailbox_list_get_storage
        - Src:             'mail-namespace.c:804,9'
          Dst:             mailbox_list_get_namespace
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_namespaces_get_root_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_get_sep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:715,9'
          Dst:             mail_namespace_get_sep
    - functionName:    mail_namespace_get_default_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_namespace_get_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_namespace_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_namespace_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:680,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:691,2'
          Dst:             mail_namespace_unref
    - functionName:    mail_namespace_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_namespace_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:665,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:672,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:673,2'
          Dst:             mail_namespace_free
    - functionName:    mail_namespace_free
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          189
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_memcpy
        - mail_storage_unref
        - mail_user_unref
        - mailbox_list_destroy
        - p_free_internal
        - pool_unref
        - settings_instance_free
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:58,6'
          Dst:             array_is_created_i
        - Src:             'mail-namespace.c:59,3'
          Dst:             i_memcpy
        - Src:             'mail-namespace.c:60,4'
          Dst:             mail_storage_unref
        - Src:             'mail-namespace.c:61,3'
          Dst:             array_free_i
        - Src:             'mail-namespace.c:64,3'
          Dst:             mailbox_list_destroy
        - Src:             'mail-namespace.c:66,2'
          Dst:             settings_instance_free
        - Src:             'mail-namespace.c:68,3'
          Dst:             mail_user_unref
        - Src:             'mail-namespace.c:70,3'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:71,2'
          Dst:             p_free_internal
        - Src:             'mail-namespace.c:72,2'
          Dst:             p_free_internal
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_namespace_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:656,2'
          Dst:             i_panic
    - functionName:    mail_namespaces_set_storage_callbacks
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - mail_storage_set_callbacks
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:649,3'
          Dst:             i_memcpy
        - Src:             'mail-namespace.c:650,4'
          Dst:             mail_storage_set_callbacks
    - functionName:    mail_namespaces_init_empty
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:614,7'
          Dst:             malloc_multiply_check
        - Src:             'mail-namespace.c:614,7'
          Dst:             p_malloc
        - Src:             'mail-namespace.c:618,15'
          Dst:             i_strdup
        - Src:             'mail-namespace.c:621,2'
          Dst:             array_create_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_namespaces_init_location_full
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          206
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mail_namespace_alloc
        - mail_namespace_free
        - mail_namespaces_init_finish
        - mail_storage_create
        - mail_storage_service_user_get_settings_instance
        - p_memdup
        - pool_unref
        - settings_get
        - settings_instance_dup
        - settings_override
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:517,6'
          Dst:             settings_get
        - Src:             'mail-namespace.c:520,19'
          Dst:             p_memdup
        - Src:             'mail-namespace.c:524,8'
          Dst:             mail_namespace_alloc
        - Src:             'mail-namespace.c:525,2'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:531,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'mail-namespace.c:533,3'
          Dst:             i_panic
        - Src:             'mail-namespace.c:534,23'
          Dst:             settings_instance_dup
        - Src:             'mail-namespace.c:538,3'
          Dst:             settings_override
        - Src:             'mail-namespace.c:543,3'
          Dst:             settings_override
        - Src:             'mail-namespace.c:548,6'
          Dst:             mail_storage_create
        - Src:             'mail-namespace.c:549,3'
          Dst:             mail_namespace_free
        - Src:             'mail-namespace.c:552,9'
          Dst:             mail_namespaces_init_finish
    - functionName:    mail_namespace_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          243
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - array_create_i
        - i_strdup
        - mail_namespace_free
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - strcmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:82,7'
          Dst:             malloc_multiply_check
        - Src:             'mail-namespace.c:82,7'
          Dst:             p_malloc
        - Src:             'mail-namespace.c:85,15'
          Dst:             i_strdup
        - Src:             'mail-namespace.c:88,3'
          Dst:             pool_ref
        - Src:             'mail-namespace.c:89,2'
          Dst:             array_create_i
        - Src:             'mail-namespace.c:91,6'
          Dst:             strcmp
        - Src:             'mail-namespace.c:94,13'
          Dst:             strcmp
        - Src:             'mail-namespace.c:96,11'
          Dst:             strcmp
        - Src:             'mail-namespace.c:99,14'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:101,3'
          Dst:             mail_namespace_free
        - Src:             'mail-namespace.c:105,6'
          Dst:             strcmp
        - Src:             'mail-namespace.c:107,11'
          Dst:             strcmp
        - Src:             'mail-namespace.c:109,11'
          Dst:             strcmp
        - Src:             'mail-namespace.c:110,14'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:112,3'
          Dst:             mail_namespace_free
    - functionName:    mail_namespaces_init_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          258
      EdgeCount:       52
      CyclomaticComplexity: 10
      functionsReached:
        - event_create
        - event_set_ptr
        - event_unref
        - hook_mail_namespaces_created
        - i_panic
        - i_unreached
        - mail_namespace_free
        - mail_namespaces_init_add
        - mail_storage_service_user_get_settings_instance
        - mail_user_add_namespace
        - namespaces_check
        - settings_instance_dup
        - settings_override
        - t_pop
        - t_push
        - t_strconcat
        - t_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:382,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:390,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'mail-namespace.c:392,18'
          Dst:             settings_instance_dup
        - Src:             'mail-namespace.c:393,3'
          Dst:             settings_override
        - Src:             'mail-namespace.c:395,3'
          Dst:             settings_override
        - Src:             'mail-namespace.c:398,29'
          Dst:             event_create
        - Src:             'mail-namespace.c:399,3'
          Dst:             event_set_ptr
        - Src:             'mail-namespace.c:401,7'
          Dst:             mail_namespaces_init_add
        - Src:             'mail-namespace.c:404,4'
          Dst:             i_unreached
        - Src:             'mail-namespace.c:406,3'
          Dst:             i_panic
        - Src:             'mail-namespace.c:409,3'
          Dst:             event_unref
        - Src:             'mail-namespace.c:415,14'
          Dst:             namespaces_check
        - Src:             'mail-namespace.c:416,17'
          Dst:             t_strconcat
        - Src:             'mail-namespace.c:421,3'
          Dst:             mail_user_add_namespace
        - Src:             'mail-namespace.c:422,3'
          Dst:             t_push
        - Src:             'mail-namespace.c:423,4'
          Dst:             hook_mail_namespaces_created
        - Src:             'mail-namespace.c:424,5'
          Dst:             t_pop
        - Src:             'mail-namespace.c:424,5'
          Dst:             i_panic
        - Src:             'mail-namespace.c:430,14'
          Dst:             t_strdup
        - Src:             'mail-namespace.c:434,4'
          Dst:             mail_namespace_free
    - functionName:    mail_namespaces_init_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          188
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_namespace_alloc
        - mail_namespace_free
        - mail_storage_create
        - strchr
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:140,2'
          Dst:             event_want_level
        - Src:             'mail-namespace.c:140,2'
          Dst:             e_debug
        - Src:             'mail-namespace.c:140,2'
          Dst:             event_send_abort
        - Src:             'mail-namespace.c:149,13'
          Dst:             mail_namespace_alloc
        - Src:             'mail-namespace.c:159,6'
          Dst:             strchr
        - Src:             'mail-namespace.c:168,6'
          Dst:             mail_storage_create
        - Src:             'mail-namespace.c:169,14'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:171,3'
          Dst:             mail_namespace_free
    - functionName:    namespaces_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          357
      EdgeCount:       80
      CyclomaticComplexity: 24
      functionsReached:
        - mail_namespace_find_prefix
        - mail_namespace_get_sep
        - namespace_has_duplicate_listindex
        - namespace_set_alias_for
        - strlen
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:299,12'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-namespace.c:300,7'
          Dst:             mail_namespace_find_prefix
        - Src:             'mail-namespace.c:301,15'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:317,7'
          Dst:             namespace_set_alias_for
        - Src:             'mail-namespace.c:319,7'
          Dst:             namespace_has_duplicate_listindex
        - Src:             'mail-namespace.c:325,18'
          Dst:             strlen
        - Src:             'mail-namespace.c:326,15'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:335,15'
          Dst:             t_strdup_printf
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_namespaces_init_location
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_namespaces_init_location_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:606,9'
          Dst:             mail_namespaces_init_location_full
    - functionName:    mail_namespaces_init_default_location
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - event_create
        - event_unref
        - getenv
        - mail_namespaces_init_location_full
        - pool_unref
        - settings_get
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:563,6'
          Dst:             settings_get
        - Src:             'mail-namespace.c:567,28'
          Dst:             event_create
        - Src:             'mail-namespace.c:569,21'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:571,26'
          Dst:             getenv
        - Src:             'mail-namespace.c:572,21'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:574,26'
          Dst:             getenv
        - Src:             'mail-namespace.c:576,21'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:583,12'
          Dst:             mail_namespaces_init_location_full
        - Src:             'mail-namespace.c:585,2'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:586,2'
          Dst:             event_unref
        - Src:             'mail-namespace.c:591,14'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:596,14'
          Dst:             t_strdup_printf
    - functionName:    mail_namespaces_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:636,3'
          Dst:             mail_namespace_free
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_namespaces_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          278
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_i
        - array_is_created_i
        - e_debug
        - event_add_str
        - event_create
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - mail_namespaces_deinit
        - mail_namespaces_init_add
        - mail_namespaces_init_default_location
        - mail_namespaces_init_finish
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get_filter
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:450,2'
          Dst:             i_panic
        - Src:             'mail-namespace.c:454,6'
          Dst:             array_is_created_i
        - Src:             'mail-namespace.c:455,14'
          Dst:             array_get_i
        - Src:             'mail-namespace.c:461,7'
          Dst:             settings_get_filter
        - Src:             'mail-namespace.c:464,15'
          Dst:             t_strdup_printf
        - Src:             'mail-namespace.c:470,4'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:474,29'
          Dst:             event_create
        - Src:             'mail-namespace.c:475,3'
          Dst:             event_add_str
        - Src:             'mail-namespace.c:476,3'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-namespace.c:479,7'
          Dst:             mail_namespaces_init_add
        - Src:             'mail-namespace.c:482,5'
          Dst:             mail_namespaces_deinit
        - Src:             'mail-namespace.c:483,5'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:484,5'
          Dst:             event_unref
        - Src:             'mail-namespace.c:487,4'
          Dst:             event_want_level
        - Src:             'mail-namespace.c:487,4'
          Dst:             e_debug
        - Src:             'mail-namespace.c:487,4'
          Dst:             event_send_abort
        - Src:             'mail-namespace.c:492,3'
          Dst:             pool_unref
        - Src:             'mail-namespace.c:493,3'
          Dst:             event_unref
        - Src:             'mail-namespace.c:498,10'
          Dst:             mail_namespaces_init_default_location
        - Src:             'mail-namespace.c:500,9'
          Dst:             mail_namespaces_init_finish
    - functionName:    mail_namespace_finish_list_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:51,19'
          Dst:             strlen
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_namespace_add_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-namespace.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - hook_mail_namespace_storage_added
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-namespace.c:40,2'
          Dst:             array_append_i
        - Src:             'mail-namespace.c:44,2'
          Dst:             hook_mail_namespace_storage_added
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mail_search_build_add_seqset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - mail_search_build_add
        - seq_range_array_add_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:217,8'
          Dst:             mail_search_build_add
        - Src:             'mail-search-build.c:219,2'
          Dst:             array_create_i
        - Src:             'mail-search-build.c:220,2'
          Dst:             seq_range_array_add_range
    - functionName:    mail_search_build_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:199,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-build.c:199,8'
          Dst:             p_malloc
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_build_add_all
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:209,8'
          Dst:             mail_search_build_add
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_build_get_utf8
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - charset_to_utf8_str
        - i_panic
        - p_strdup
        - str_c
        - t_pop
        - t_push
        - t_str_new
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:228,2'
          Dst:             t_push
        - Src:             'mail-search-build.c:229,20'
          Dst:             t_str_new
        - Src:             'mail-search-build.c:232,7'
          Dst:             charset_to_utf8_str
        - Src:             'mail-search-build.c:243,36'
          Dst:             str_c
        - Src:             'mail-search-build.c:243,16'
          Dst:             p_strdup
        - Src:             'mail-search-build.c:246,4'
          Dst:             t_pop
        - Src:             'mail-search-build.c:246,4'
          Dst:             i_panic
    - functionName:    mail_search_build_list
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_build_key_int
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:109,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-build.c:109,9'
          Dst:             p_malloc
        - Src:             'mail-search-build.c:113,16'
          Dst:             mail_search_build_key_int
    - functionName:    mail_search_build_key_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          155
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_build_list
        - mail_search_parse_key
        - mail_search_register_find
        - mail_search_register_get_fallback
        - p_strconcat
        - strcmp
        - t_str_ucase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:54,13'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-build.c:57,6'
          Dst:             strcmp
        - Src:             'mail-search-build.c:58,7'
          Dst:             mail_search_build_list
        - Src:             'mail-search-build.c:69,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-build.c:71,12'
          Dst:             mail_search_register_find
        - Src:             'mail-search-build.c:74,11'
          Dst:             mail_search_register_get_fallback
        - Src:             'mail-search-build.c:78,17'
          Dst:             p_strconcat
    - functionName:    mail_search_build_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:186,9'
          Dst:             pool_alloconly_create
        - Src:             'mail-search-build.c:187,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-build.c:187,9'
          Dst:             p_malloc
    - functionName:    mail_search_build
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          164
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_build_init
        - mail_search_build_list
        - mail_search_parser_get_error
        - p_strdup
        - pool_unref
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:150,20'
          Dst:             mail_search_build_init
        - Src:             'mail-search-build.c:154,16'
          Dst:             p_strdup
        - Src:             'mail-search-build.c:156,8'
          Dst:             mail_search_build_list
        - Src:             'mail-search-build.c:159,9'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-build.c:162,42'
          Dst:             t_strdup
        - Src:             'mail-search-build.c:163,13'
          Dst:             mail_search_parser_get_error
        - Src:             'mail-search-build.c:163,4'
          Dst:             t_strdup
        - Src:             'mail-search-build.c:166,3'
          Dst:             pool_unref
    - functionName:    mail_search_build_key
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_key_int
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:93,8'
          Dst:             mail_search_build_key_int
    - functionName:    mail_search_build_str
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_build_new
        - mail_search_parse_string
        - p_strdup
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:33,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-build.c:34,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-build.c:36,20'
          Dst:             p_strdup
    - functionName:    mail_search_build_new
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-build.c:21,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-build.c:21,8'
          Dst:             p_malloc
    - functionName:    mail_search_parser_get_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      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:    mail_search_parse_skip_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_search_parse_string
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - p_strdup_printf
        - t_str_ucase
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-parser.c:35,19'
          Dst:             t_str_ucase
        - Src:             'mail-search-parser.c:33,19'
          Dst:             p_strdup_printf
    - functionName:    mail_search_parse_key
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 12
      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:             'mail-search-parser.c:11,2'
          Dst:             pool_unref
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_search_register_get_fallback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_search_register_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_i
        - array_sort_i
        - mail_search_register_arg_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:73,3'
          Dst:             array_sort_i
        - Src:             'mail-search-register.c:73,3'
          Dst:             mail_search_register_arg_cmp
        - Src:             'mail-search-register.c:78,9'
          Dst:             array_bsearch_i
        - Src:             'mail-search-register.c:78,9'
          Dst:             mail_search_register_arg_cmp
    - functionName:    mail_search_register_arg_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:52,9'
          Dst:             strcmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_search_register_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - array_sort_i
        - mail_search_register_arg_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:60,3'
          Dst:             array_sort_i
        - Src:             'mail-search-register.c:60,3'
          Dst:             mail_search_register_arg_cmp
        - Src:             'mail-search-register.c:64,9'
          Dst:             array_get_i
    - functionName:    mail_search_register_fallback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_register_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:38,2'
          Dst:             array_append_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_search_register_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 32
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:30,2'
          Dst:             array_free_i
        - Src:             'mail-search-register.c:31,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_register_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register.c:19,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-register.c:19,8'
          Dst:             p_malloc
        - Src:             'mail-search-register.c:20,2'
          Dst:             array_create_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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-storage/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_uidset_change
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          191
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - i_memcpy
        - mailbox_get_seq_range
        - malloc_multiply_check
        - seq_range_array_add
        - seq_range_array_add_range
        - strcmp
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:21,32'
          Dst:             strcmp
        - Src:             'mail-search.c:23,3'
          Dst:             array_clear_i
        - Src:             'mail-search.c:25,8'
          Dst:             array_is_created_i
        - Src:             'mail-search.c:28,3'
          Dst:             array_append_array_i
        - Src:             'mail-search.c:35,10'
          Dst:             array_count_i
        - Src:             'mail-search.c:40,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search.c:40,9'
          Dst:             t_malloc0
        - Src:             'mail-search.c:41,2'
          Dst:             array_idx_i
        - Src:             'mail-search.c:41,2'
          Dst:             i_memcpy
        - Src:             'mail-search.c:44,2'
          Dst:             array_clear_i
        - Src:             'mail-search.c:46,3'
          Dst:             mailbox_get_seq_range
        - Src:             'mail-search.c:49,4'
          Dst:             seq_range_array_add_range
        - Src:             'mail-search.c:54,4'
          Dst:             mailbox_get_seq_range
        - Src:             'mail-search.c:57,5'
          Dst:             seq_range_array_add
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    mailbox_seqset_change
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_get_i
        - mailbox_get_seq_range
        - seq_range_array_add
        - seq_range_array_remove
        - seq_range_array_remove_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:69,11'
          Dst:             array_get_i
        - Src:             'mail-search.c:72,3'
          Dst:             mailbox_get_seq_range
        - Src:             'mail-search.c:76,4'
          Dst:             array_clear_i
        - Src:             'mail-search.c:81,4'
          Dst:             seq_range_array_remove
        - Src:             'mail-search.c:82,4'
          Dst:             seq_range_array_add
        - Src:             'mail-search.c:84,4'
          Dst:             seq_range_array_remove_range
    - functionName:    mail_search_seqset_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_unreached
        - mail_search_seqset_next_batch
        - seq_range_array_remove_seq_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:888,7'
          Dst:             array_is_created_i
        - Src:             'mail-search.c:889,6'
          Dst:             array_count_i
        - Src:             'mail-search.c:893,6'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'mail-search.c:895,3'
          Dst:             i_unreached
        - Src:             'mail-search.c:896,2'
          Dst:             mail_search_seqset_next_batch
        - Src:             'mail-search.c:897,9'
          Dst:             array_count_i
    - functionName:    mail_search_seqset_next_batch
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - seq_range_array_merge_n
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:823,2'
          Dst:             array_clear_i
        - Src:             'mail-search.c:824,2'
          Dst:             seq_range_array_merge_n
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_search_seqset_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - mail_search_args_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:881,2'
          Dst:             mail_search_args_unref
        - Src:             'mail-search.c:882,2'
          Dst:             array_free_i
        - Src:             'mail-search.c:883,2'
          Dst:             p_free_internal
    - functionName:    mail_search_args_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_search_args_deinit
        - pool_unref
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:296,2'
          Dst:             i_panic
        - Src:             'mail-search.c:300,3'
          Dst:             i_panic
        - Src:             'mail-search.c:303,2'
          Dst:             i_panic
        - Src:             'mail-search.c:305,3'
          Dst:             mail_search_args_deinit
        - Src:             'mail-search.c:306,2'
          Dst:             pool_unref
    - functionName:    mail_search_args_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_arg_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:241,2'
          Dst:             mail_search_arg_deinit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_arg_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          31
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_arg_one_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:202,3'
          Dst:             mail_search_arg_one_deinit
    - functionName:    mail_search_arg_one_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imap_match_deinit
        - mail_search_arg_deinit
        - mailbox_keywords_unref
        - mailbox_search_result_free
      functionUses:    5
      BranchProfiles:
        - Branch String:   'mail-search.c:207,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:212,3'
          Dst:             mailbox_keywords_unref
        - Src:             'mail-search.c:218,3'
          Dst:             imap_match_deinit
        - Src:             'mail-search.c:221,3'
          Dst:             i_panic
        - Src:             'mail-search.c:223,4'
          Dst:             mailbox_search_result_free
        - Src:             'mail-search.c:229,3'
          Dst:             mail_search_arg_deinit
    - functionName:    mail_search_seqset_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          197
      EdgeCount:       26
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_array_i
        - array_count_i
        - array_create_i
        - i_panic
        - mail_search_args_ref
        - mail_search_seqset_next_batch
        - malloc_multiply_check
        - p_malloc
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search.c:841,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:834,2'
          Dst:             i_panic
        - Src:             'mail-search.c:836,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search.c:836,9'
          Dst:             p_malloc
        - Src:             'mail-search.c:839,2'
          Dst:             mail_search_args_ref
        - Src:             'mail-search.c:854,3'
          Dst:             array_create_i
        - Src:             'mail-search.c:856,3'
          Dst:             seq_range_array_add_range
        - Src:             'mail-search.c:860,3'
          Dst:             i_panic
        - Src:             'mail-search.c:864,2'
          Dst:             i_panic
        - Src:             'mail-search.c:867,2'
          Dst:             array_count_i
        - Src:             'mail-search.c:867,2'
          Dst:             array_create_i
        - Src:             'mail-search.c:869,2'
          Dst:             array_append_array_i
        - Src:             'mail-search.c:870,2'
          Dst:             mail_search_seqset_next_batch
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_args_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:287,2'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      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:    mail_search_args_result_deserialize_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_search_args_result_deserialize_arg
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:792,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:788,2'
          Dst:             i_panic
        - Src:             'mail-search.c:798,4'
          Dst:             mail_search_args_result_deserialize_arg
    - functionName:    mail_search_args_result_deserialize
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_args_result_deserialize_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:812,3'
          Dst:             mail_search_args_result_deserialize_arg
    - functionName:    mail_search_args_result_serialize_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append_c
        - mail_search_args_result_serialize_arg
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:760,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:758,2'
          Dst:             buffer_append_c
        - Src:             'mail-search.c:766,4'
          Dst:             mail_search_args_result_serialize_arg
    - functionName:    mail_search_args_result_serialize
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_args_result_serialize_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:778,3'
          Dst:             mail_search_args_result_serialize_arg
    - functionName:    mail_search_args_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_arg_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:746,2'
          Dst:             i_panic
        - Src:             'mail-search.c:747,2'
          Dst:             i_panic
        - Src:             'mail-search.c:749,9'
          Dst:             mail_search_arg_equals
    - functionName:    mail_search_arg_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_arg_one_equals
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:727,8'
          Dst:             mail_search_arg_one_equals
    - functionName:    mail_search_arg_one_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          403
      EdgeCount:       62
      CyclomaticComplexity: 8
      functionsReached:
        - array_cmp_i
        - i_unreached
        - mail_search_arg_equals
        - mail_search_mime_parts_equal
        - strcasecmp
        - strcmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mail-search.c:652,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:655,10'
          Dst:             mail_search_arg_equals
        - Src:             'mail-search.c:666,10'
          Dst:             array_cmp_i
        - Src:             'mail-search.c:668,10'
          Dst:             array_cmp_i
        - Src:             'mail-search.c:673,10'
          Dst:             strcasecmp
        - Src:             'mail-search.c:688,7'
          Dst:             strcasecmp
        - Src:             'mail-search.c:701,10'
          Dst:             strcmp
        - Src:             'mail-search.c:713,10'
          Dst:             mail_search_arg_equals
        - Src:             'mail-search.c:716,10'
          Dst:             mail_search_mime_parts_equal
        - Src:             'mail-search.c:720,2'
          Dst:             i_unreached
    - functionName:    mail_search_arg_equals_p
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_arg_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:740,9'
          Dst:             mail_search_arg_equals
    - functionName:    mail_search_args_match_mailbox_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          185
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imap_match
        - imap_match_init
        - mail_search_args_match_mailbox_arg
        - pool_datastack_create
        - strcmp
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mail-search.c:591,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:595,8'
          Dst:             mail_search_args_match_mailbox_arg
        - Src:             'mail-search.c:604,9'
          Dst:             mail_search_args_match_mailbox_arg
        - Src:             'mail-search.c:610,9'
          Dst:             strcmp
        - Src:             'mail-search.c:613,3'
          Dst:             t_push
        - Src:             'mail-search.c:616,27'
          Dst:             pool_datastack_create
        - Src:             'mail-search.c:616,11'
          Dst:             imap_match_init
        - Src:             'mail-search.c:618,10'
          Dst:             imap_match
        - Src:             'mail-search.c:619,5'
          Dst:             t_pop
        - Src:             'mail-search.c:619,5'
          Dst:             i_panic
    - functionName:    mail_search_args_match_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_args_match_mailbox_arg
        - mail_search_args_simplify
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:634,3'
          Dst:             mail_search_args_simplify
        - Src:             'mail-search.c:637,8'
          Dst:             mail_search_args_match_mailbox_arg
    - functionName:    search_arg_analyze
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          146
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - search_arg_analyze
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:525,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:531,5'
          Dst:             search_arg_analyze
        - Src:             'mail-search.c:542,4'
          Dst:             buffer_append
        - Src:             'mail-search.c:547,3'
          Dst:             buffer_append
    - functionName:    mail_search_args_analyze
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - pool_datastack_create
        - search_arg_analyze
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:571,12'
          Dst:             pool_datastack_create
        - Src:             'mail-search.c:571,12'
          Dst:             buffer_create_dynamic
        - Src:             'mail-search.c:573,3'
          Dst:             search_arg_analyze
        - Src:             'mail-search.c:580,2'
          Dst:             buffer_append
    - functionName:    search_arg_foreach
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          297
      EdgeCount:       68
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - search_arg_foreach
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:444,3'
          Dst:             i_panic
        - Src:             'mail-search.c:450,5'
          Dst:             search_arg_foreach
        - Src:             'mail-search.c:466,3'
          Dst:             i_panic
        - Src:             'mail-search.c:472,5'
          Dst:             search_arg_foreach
    - functionName:    mail_search_args_foreach
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - search_arg_foreach
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:501,3'
          Dst:             search_arg_foreach
    - functionName:    mail_search_args_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          130
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_args_reset
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:409,4'
          Dst:             mail_search_args_reset
    - functionName:    mail_search_args_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          61
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_arg_dup
        - mail_search_build_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:398,13'
          Dst:             mail_search_build_init
        - Src:             'mail-search.c:401,19'
          Dst:             mail_search_arg_dup
    - functionName:    mail_search_arg_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_arg_dup_one
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:387,11'
          Dst:             mail_search_arg_dup_one
    - functionName:    mail_search_arg_dup_one
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          338
      EdgeCount:       75
      CyclomaticComplexity: 39
      functionsReached:
        - array_append_array_i
        - array_count_i
        - array_create_i
        - mail_search_arg_dup
        - mail_search_mime_part_dup
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search.c:322,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:314,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-search.c:314,12'
          Dst:             p_malloc
        - Src:             'mail-search.c:329,4'
          Dst:             mail_search_arg_dup
        - Src:             'mail-search.c:337,3'
          Dst:             array_count_i
        - Src:             'mail-search.c:337,3'
          Dst:             array_create_i
        - Src:             'mail-search.c:339,3'
          Dst:             array_append_array_i
        - Src:             'mail-search.c:357,29'
          Dst:             p_strdup
        - Src:             'mail-search.c:366,24'
          Dst:             p_strdup
        - Src:             'mail-search.c:370,4'
          Dst:             malloc_multiply_check
        - Src:             'mail-search.c:370,4'
          Dst:             p_malloc
        - Src:             'mail-search.c:375,4'
          Dst:             mail_search_mime_part_dup
    - functionName:    mail_search_args_seq2uid_sub
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - mail_search_args_seq2uid_sub
        - mailbox_get_uid_range
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:250,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:252,4'
          Dst:             array_clear_i
        - Src:             'mail-search.c:253,4'
          Dst:             mailbox_get_uid_range
        - Src:             'mail-search.c:260,4'
          Dst:             array_clear_i
        - Src:             'mail-search.c:261,4'
          Dst:             array_append_array_i
        - Src:             'mail-search.c:266,4'
          Dst:             mail_search_args_seq2uid_sub
    - functionName:    mail_search_args_seq2uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - i_panic
        - mail_search_args_seq2uid_sub
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:277,2'
          Dst:             t_push
        - Src:             'mail-search.c:280,3'
          Dst:             pool_datastack_create
        - Src:             'mail-search.c:280,3'
          Dst:             array_create_i
        - Src:             'mail-search.c:281,3'
          Dst:             mail_search_args_seq2uid_sub
        - Src:             'mail-search.c:282,4'
          Dst:             t_pop
        - Src:             'mail-search.c:282,4'
          Dst:             i_panic
    - functionName:    mail_search_arg_change_sets
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_arg_change_sets
        - mailbox_seqset_change
        - mailbox_uidset_change
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:96,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:98,4'
          Dst:             mailbox_seqset_change
        - Src:             'mail-search.c:101,4'
          Dst:             t_push
        - Src:             'mail-search.c:102,5'
          Dst:             mailbox_uidset_change
        - Src:             'mail-search.c:104,6'
          Dst:             t_pop
        - Src:             'mail-search.c:104,6'
          Dst:             i_panic
        - Src:             'mail-search.c:109,4'
          Dst:             mail_search_arg_change_sets
    - functionName:    mail_search_args_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_search_arg_change_sets
        - mail_search_arg_init
        - mail_search_args_simplify
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search.c:180,2'
          Dst:             i_panic
        - Src:             'mail-search.c:183,3'
          Dst:             i_panic
        - Src:             'mail-search.c:191,3'
          Dst:             mail_search_arg_change_sets
        - Src:             'mail-search.c:195,3'
          Dst:             mail_search_args_simplify
        - Src:             'mail-search.c:196,2'
          Dst:             mail_search_arg_init
    - functionName:    mail_search_arg_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          199
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imap_match_init
        - mail_namespace_get_sep
        - mail_search_arg_init
        - mailbox_get_namespace
        - mailbox_keywords_create_valid
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search.c:125,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search.c:134,4'
          Dst:             i_panic
        - Src:             'mail-search.c:136,5'
          Dst:             mailbox_keywords_create_valid
        - Src:             'mail-search.c:142,5'
          Dst:             mailbox_get_namespace
        - Src:             'mail-search.c:146,13'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-search.c:145,5'
          Dst:             imap_match_init
        - Src:             'mail-search.c:153,6'
          Dst:             malloc_multiply_check
        - Src:             'mail-search.c:153,6'
          Dst:             p_malloc
        - Src:             'mail-search.c:168,4'
          Dst:             mail_search_arg_init
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    mail_storage_module_hooks_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - str_begins_builtin_success
        - strcmp
        - strncmp
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:108,6'
          Dst:             strrchr
        - Src:             'mail-storage-hooks.c:110,6'
          Dst:             strrchr
        - Src:             'mail-storage-hooks.c:113,8'
          Dst:             strncmp
        - Src:             'mail-storage-hooks.c:113,8'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage-hooks.c:114,8'
          Dst:             strncmp
        - Src:             'mail-storage-hooks.c:114,8'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage-hooks.c:116,9'
          Dst:             strcmp
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    hook_mail_allocated
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          149
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:275,8'
          Dst:             hook_build_init
        - Src:             'mail-storage-hooks.c:277,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:278,38'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:280,4'
          Dst:             hook_build_update
        - Src:             'mail-storage-hooks.c:281,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:281,5'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:284,2'
          Dst:             hook_build_deinit
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    hook_mailbox_opened
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:262,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:263,38'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:265,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:265,5'
          Dst:             i_panic
    - functionName:    hook_mailbox_allocated
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          140
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:246,8'
          Dst:             hook_build_init
        - Src:             'mail-storage-hooks.c:248,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:249,41'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:251,4'
          Dst:             hook_build_update
        - Src:             'mail-storage-hooks.c:252,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:252,5'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:255,2'
          Dst:             hook_build_deinit
    - functionName:    hook_mailbox_list_created
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          140
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:229,8'
          Dst:             hook_build_init
        - Src:             'mail-storage-hooks.c:231,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:232,44'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:234,4'
          Dst:             hook_build_update
        - Src:             'mail-storage-hooks.c:235,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:235,5'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:238,2'
          Dst:             hook_build_deinit
    - functionName:    hook_mail_storage_created
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          134
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:212,8'
          Dst:             hook_build_init
        - Src:             'mail-storage-hooks.c:214,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:215,44'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:217,4'
          Dst:             hook_build_update
        - Src:             'mail-storage-hooks.c:218,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:218,5'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:221,2'
          Dst:             hook_build_deinit
    - functionName:    hook_mail_namespaces_added
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:198,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:201,45'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:203,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:203,5'
          Dst:             i_panic
    - functionName:    hook_mail_namespaces_created
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:185,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:188,47'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:190,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:190,5'
          Dst:             i_panic
    - functionName:    hook_mail_namespace_storage_added
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:174,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:175,52'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:177,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:177,5'
          Dst:             i_panic
    - functionName:    mail_user_add_plugin_hooks
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          126
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_array_i
        - array_append_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - array_lsearch_i
        - array_sort_i
        - i_strcmp_p
        - mail_storage_module_hooks_cmp
        - module_get_plugin_name
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:126,2'
          Dst:             pool_datastack_create
        - Src:             'mail-storage-hooks.c:126,2'
          Dst:             array_count_i
        - Src:             'mail-storage-hooks.c:126,2'
          Dst:             array_create_i
        - Src:             'mail-storage-hooks.c:129,11'
          Dst:             module_get_plugin_name
        - Src:             'mail-storage-hooks.c:130,9'
          Dst:             array_is_created_i
        - Src:             'mail-storage-hooks.c:131,8'
          Dst:             array_lsearch_i
        - Src:             'mail-storage-hooks.c:131,8'
          Dst:             i_strcmp_p
        - Src:             'mail-storage-hooks.c:135,3'
          Dst:             array_append_i
        - Src:             'mail-storage-hooks.c:139,2'
          Dst:             array_sort_i
        - Src:             'mail-storage-hooks.c:139,2'
          Dst:             mail_storage_module_hooks_cmp
        - Src:             'mail-storage-hooks.c:142,2'
          Dst:             array_count_i
        - Src:             'mail-storage-hooks.c:142,2'
          Dst:             array_count_i
        - Src:             'mail-storage-hooks.c:142,2'
          Dst:             array_create_i
        - Src:             'mail-storage-hooks.c:145,3'
          Dst:             array_append_i
        - Src:             'mail-storage-hooks.c:146,2'
          Dst:             array_append_array_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    hook_mail_user_created
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          140
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - hook_build_deinit
        - hook_build_init
        - hook_build_update
        - i_memcpy
        - i_panic
        - mail_user_add_plugin_hooks
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:154,2'
          Dst:             mail_user_add_plugin_hooks
        - Src:             'mail-storage-hooks.c:156,8'
          Dst:             hook_build_init
        - Src:             'mail-storage-hooks.c:158,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:159,41'
          Dst:             t_push
        - Src:             'mail-storage-hooks.c:161,4'
          Dst:             hook_build_update
        - Src:             'mail-storage-hooks.c:162,5'
          Dst:             t_pop
        - Src:             'mail-storage-hooks.c:162,5'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:167,2'
          Dst:             hook_build_deinit
    - functionName:    mail_storage_hooks_remove_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 99
      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:             'mail-storage-hooks.c:96,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'mail-storage-hooks.c:97,3'
          Dst:             i_unreached
        - Src:             'mail-storage-hooks.c:98,2'
          Dst:             array_delete_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      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:    mail_storage_hooks_add_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - i_memcpy
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:87,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-hooks.c:88,3'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:89,2'
          Dst:             array_append_i
    - functionName:    mail_storage_hooks_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:77,2'
          Dst:             i_panic
        - Src:             'mail-storage-hooks.c:79,2'
          Dst:             array_delete_i
    - functionName:    mail_storage_hooks_add_forced
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - mail_storage_hooks_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:61,2'
          Dst:             mail_storage_hooks_add
        - Src:             'mail-storage-hooks.c:62,9'
          Dst:             array_count_i
        - Src:             'mail-storage-hooks.c:62,9'
          Dst:             array_idx_modifiable_i
    - functionName:    mail_storage_hooks_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:51,7'
          Dst:             array_is_created_i
        - Src:             'mail-storage-hooks.c:52,3'
          Dst:             array_create_i
        - Src:             'mail-storage-hooks.c:53,2'
          Dst:             array_append_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_storage_hooks_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          33
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:35,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-hooks.c:36,3'
          Dst:             array_free_i
        - Src:             'mail-storage-hooks.c:37,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-hooks.c:38,3'
          Dst:             array_free_i
    - functionName:    mail_storage_hooks_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-hooks.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-hooks.c:24,7'
          Dst:             array_is_created_i
        - Src:             'mail-storage-hooks.c:25,3'
          Dst:             array_create_i
        - Src:             'mail-storage-hooks.c:26,2'
          Dst:             array_create_i
    - functionName:    parse_gid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_getgrnam
        - str_to_gid
        - t_strconcat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-storage-service.c:317,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage-service.c:314,6'
          Dst:             str_to_gid
        - Src:             'mail-storage-service.c:317,10'
          Dst:             i_getgrnam
        - Src:             'mail-storage-service.c:319,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:322,14'
          Dst:             t_strconcat
    - functionName:    parse_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_getpwnam
        - str_to_uid
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-storage-service.c:297,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage-service.c:294,6'
          Dst:             str_to_uid
        - Src:             'mail-storage-service.c:297,10'
          Dst:             i_getpwnam
        - Src:             'mail-storage-service.c:299,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:302,14'
          Dst:             t_strconcat
    - functionName:    mail_storage_service_init_post
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         107
      ICount:          800
      EdgeCount:       139
      CyclomaticComplexity: 34
      functionsReached:
        - __errno_location
        - chdir
        - dec2str
        - e_debug
        - e_error
        - eacces_error_get
        - event_add_str
        - event_send_abort
        - event_want_level
        - get_master_user
        - getegid
        - geteuid
        - i_panic
        - mail_namespaces_init
        - mail_user_add_event_fields
        - mail_user_alloc
        - mail_user_init
        - mail_user_set_home
        - mail_user_set_vars
        - p_strarray_dup
        - p_strdup
        - p_strdup_printf
        - settings_event_add_list_filter_name
        - str_c
        - str_printfa
        - t_pop_pass_str
        - t_push
        - t_str_new
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:628,14'
          Dst:             mail_user_alloc
        - Src:             'mail-storage-service.c:635,3'
          Dst:             mail_user_set_home
        - Src:             'mail-storage-service.c:637,25'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:638,2'
          Dst:             mail_user_set_vars
        - Src:             'mail-storage-service.c:639,44'
          Dst:             geteuid
        - Src:             'mail-storage-service.c:640,44'
          Dst:             getegid
        - Src:             'mail-storage-service.c:644,3'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:646,25'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:647,26'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:649,25'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:659,5'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:662,5'
          Dst:             p_strdup_printf
        - Src:             'mail-storage-service.c:668,4'
          Dst:             p_strdup_printf
        - Src:             'mail-storage-service.c:671,2'
          Dst:             event_add_str
        - Src:             'mail-storage-service.c:672,2'
          Dst:             event_add_str
        - Src:             'mail-storage-service.c:673,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-storage-service.c:677,3'
          Dst:             p_strarray_dup
        - Src:             'mail-storage-service.c:679,28'
          Dst:             get_master_user
        - Src:             'mail-storage-service.c:680,2'
          Dst:             mail_user_add_event_fields
        - Src:             'mail-storage-service.c:682,18'
          Dst:             t_str_new
        - Src:             'mail-storage-service.c:685,15'
          Dst:             geteuid
        - Src:             'mail-storage-service.c:685,7'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:685,35'
          Dst:             getegid
        - Src:             'mail-storage-service.c:685,27'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:684,2'
          Dst:             str_printfa
        - Src:             'mail-storage-service.c:687,3'
          Dst:             str_printfa
        - Src:             'mail-storage-service.c:688,2'
          Dst:             event_want_level
        - Src:             'mail-storage-service.c:688,2'
          Dst:             str_c
        - Src:             'mail-storage-service.c:688,2'
          Dst:             e_debug
        - Src:             'mail-storage-service.c:688,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-service.c:707,8'
          Dst:             chdir
        - Src:             'mail-storage-service.c:708,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:709,14'
          Dst:             chdir
        - Src:             'mail-storage-service.c:710,8'
          Dst:             __errno_location
        - Src:             'mail-storage-service.c:710,8'
          Dst:             __errno_location
        - Src:             'mail-storage-service.c:710,8'
          Dst:             __errno_location
        - Src:             'mail-storage-service.c:711,5'
          Dst:             t_strconcat
        - Src:             'mail-storage-service.c:711,5'
          Dst:             eacces_error_get
        - Src:             'mail-storage-service.c:711,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:714,15'
          Dst:             __errno_location
        - Src:             'mail-storage-service.c:715,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:718,5'
          Dst:             event_want_level
        - Src:             'mail-storage-service.c:718,5'
          Dst:             e_debug
        - Src:             'mail-storage-service.c:718,5'
          Dst:             event_send_abort
        - Src:             'mail-storage-service.c:720,8'
          Dst:             chdir
        - Src:             'mail-storage-service.c:721,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:725,2'
          Dst:             t_push
        - Src:             'mail-storage-service.c:726,9'
          Dst:             mail_user_init
        - Src:             'mail-storage-service.c:727,4'
          Dst:             t_pop_pass_str
        - Src:             'mail-storage-service.c:727,4'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:732,7'
          Dst:             mail_namespaces_init
    - functionName:    get_master_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          77
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - str_begins
        - str_begins_builtin_success
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:334,7'
          Dst:             str_begins
        - Src:             'mail-storage-service.c:334,7'
          Dst:             strncmp
        - Src:             'mail-storage-service.c:334,7'
          Dst:             str_begins_builtin_success
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_init_log
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - event_replace_log_prefix
        - i_set_failure_send_prefix
        - master_service_get_client_limit
        - master_service_init_log_with_prefix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:823,2'
          Dst:             master_service_init_log_with_prefix
        - Src:             'mail-storage-service.c:825,2'
          Dst:             event_replace_log_prefix
        - Src:             'mail-storage-service.c:827,6'
          Dst:             master_service_get_client_limit
        - Src:             'mail-storage-service.c:828,3'
          Dst:             i_set_failure_send_prefix
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    set_keyvalue
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          177
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - settings_key_exists
        - settings_override
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strncmp
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:79,6'
          Dst:             str_begins
        - Src:             'mail-storage-service.c:79,6'
          Dst:             strncmp
        - Src:             'mail-storage-service.c:79,6'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage-service.c:83,13'
          Dst:             strchr
        - Src:             'mail-storage-service.c:87,16'
          Dst:             settings_key_exists
        - Src:             'mail-storage-service.c:90,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:93,6'
          Dst:             strstr
        - Src:             'mail-storage-service.c:99,3'
          Dst:             event_want_level
        - Src:             'mail-storage-service.c:99,3'
          Dst:             e_debug
        - Src:             'mail-storage-service.c:99,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-service.c:101,3'
          Dst:             event_want_level
        - Src:             'mail-storage-service.c:101,3'
          Dst:             e_debug
        - Src:             'mail-storage-service.c:101,3'
          Dst:             event_send_abort
    - functionName:    t_split_key_value_eq
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_split_key_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:190,9'
          Dst:             t_split_key_value
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    validate_chroot
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          116
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - array_is_created_i
        - settings_boollist_get
        - str_begins_with
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:112,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:115,16'
          Dst:             settings_boollist_get
        - Src:             'mail-storage-service.c:118,7'
          Dst:             strlen
        - Src:             'mail-storage-service.c:118,7'
          Dst:             strncmp
        - Src:             'mail-storage-service.c:118,7'
          Dst:             str_begins_with
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    mail_storage_service_update_chroot
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          189
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - restrict_access_get_current_chroot
        - settings_override
        - strcmp
        - strlen
        - strncmp
        - t_strconcat
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1028,3'
          Dst:             restrict_access_get_current_chroot
        - Src:             'mail-storage-service.c:1032,15'
          Dst:             strlen
        - Src:             'mail-storage-service.c:1033,17'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:1034,6'
          Dst:             strncmp
        - Src:             'mail-storage-service.c:1041,13'
          Dst:             t_strndup
        - Src:             'mail-storage-service.c:1043,4'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:1046,4'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:1053,24'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:1056,11'
          Dst:             t_strconcat
        - Src:             'mail-storage-service.c:1057,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:1059,3'
          Dst:             settings_override
    - functionName:    mail_storage_service_add_code_overrides
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - settings_override
        - strcmp
        - t_split_key_value_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:234,3'
          Dst:             t_split_key_value_eq
        - Src:             'mail-storage-service.c:236,7'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:238,3'
          Dst:             settings_override
    - functionName:    user_reply_handle
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          514
      EdgeCount:       110
      CyclomaticComplexity: 30
      functionsReached:
        - array_get_i
        - array_is_created_i
        - dec2str
        - e_error
        - getpid
        - p_strdup
        - set_keyvalue
        - setpriority
        - settings_override
        - str_to_int
        - str_to_pid
        - strchr
        - strcmp
        - strstr
        - t_split_key_value_eq
        - t_strdup_printf
        - t_strdup_until
        - validate_chroot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:142,19'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:141,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:148,19'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:147,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:153,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:154,11'
          Dst:             strstr
        - Src:             'mail-storage-service.c:157,12'
          Dst:             t_strdup_until
        - Src:             'mail-storage-service.c:162,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:168,8'
          Dst:             validate_chroot
        - Src:             'mail-storage-service.c:169,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:174,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:180,8'
          Dst:             array_get_i
        - Src:             'mail-storage-service.c:183,3'
          Dst:             t_split_key_value_eq
        - Src:             'mail-storage-service.c:185,7'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:186,31'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:187,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:188,23'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:189,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:192,8'
          Dst:             str_to_int
        - Src:             'mail-storage-service.c:193,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:197,9'
          Dst:             setpriority
        - Src:             'mail-storage-service.c:198,6'
          Dst:             e_error
        - Src:             'mail-storage-service.c:202,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:203,22'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:204,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:205,8'
          Dst:             str_to_pid
        - Src:             'mail-storage-service.c:207,5'
          Dst:             e_error
        - Src:             'mail-storage-service.c:211,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:212,23'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:213,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:214,22'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:215,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:216,18'
          Dst:             strchr
        - Src:             'mail-storage-service.c:217,14'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:218,23'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:220,4'
          Dst:             set_keyvalue
        - Src:             'mail-storage-service.c:224,34'
          Dst:             getpid
    - functionName:    setpriority
      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:    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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extra_field_key_cmp_p
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    service_auth_userdb_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          198
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - auth_master_user_lookup
        - e_debug
        - event_send_abort
        - event_want_level
        - strcmp
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:271,8'
          Dst:             auth_master_user_lookup
        - Src:             'mail-storage-service.c:274,7'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:275,4'
          Dst:             event_want_level
        - Src:             'mail-storage-service.c:275,4'
          Dst:             e_debug
        - Src:             'mail-storage-service.c:275,4'
          Dst:             event_send_abort
        - Src:             'mail-storage-service.c:276,12'
          Dst:             t_strdup
        - Src:             'mail-storage-service.c:282,14'
          Dst:             t_strdup
    - functionName:    mail_storage_service_generate_session_id
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - base64_encode
        - guid_128_generate
        - i_panic
        - str_c
        - str_data
        - str_len
        - str_new
        - str_printfa
        - str_truncate
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1003,43'
          Dst:             strlen
        - Src:             'mail-storage-service.c:1004,18'
          Dst:             str_new
        - Src:             'mail-storage-service.c:1007,3'
          Dst:             str_printfa
        - Src:             'mail-storage-service.c:1009,2'
          Dst:             guid_128_generate
        - Src:             'mail-storage-service.c:1010,2'
          Dst:             base64_encode
        - Src:             'mail-storage-service.c:1012,2'
          Dst:             str_data
        - Src:             'mail-storage-service.c:1012,2'
          Dst:             str_len
        - Src:             'mail-storage-service.c:1012,2'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:1013,20'
          Dst:             str_len
        - Src:             'mail-storage-service.c:1013,2'
          Dst:             str_truncate
        - Src:             'mail-storage-service.c:1014,9'
          Dst:             str_c
    - functionName:    mail_storage_service_load_modules
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          108
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - master_service_get_name
        - module_dir_try_load_missing
        - settings_boollist_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:965,7'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:966,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:973,24'
          Dst:             master_service_get_name
        - Src:             'mail-storage-service.c:980,9'
          Dst:             settings_boollist_get
        - Src:             'mail-storage-service.c:978,9'
          Dst:             module_dir_try_load_missing
    - functionName:    mail_storage_service_var_expand_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_var_expand_table
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:788,20'
          Dst:             get_var_expand_table
    - functionName:    get_var_expand_table
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          301
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - dec2str
        - get_master_user
        - i_memcpy
        - net_ip2addr
        - t_malloc_no0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:351,18'
          Dst:             get_master_user
        - Src:             'mail-storage-service.c:370,16'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:372,17'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:377,33'
          Dst:             net_ip2addr
        - Src:             'mail-storage-service.c:378,34'
          Dst:             net_ip2addr
        - Src:             'mail-storage-service.c:391,8'
          Dst:             t_malloc_no0
        - Src:             'mail-storage-service.c:392,2'
          Dst:             i_memcpy
    - functionName:    mail_storage_service_var_userdb
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_service_fields_var_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:403,13'
          Dst:             mail_storage_service_fields_var_expand
    - functionName:    mail_storage_service_fields_var_expand
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
        - strncmp
        - t_strcut
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:765,27'
          Dst:             t_strcut
        - Src:             'mail-storage-service.c:772,19'
          Dst:             strlen
        - Src:             'mail-storage-service.c:774,7'
          Dst:             strncmp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_storage_service_input_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          70
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1650
      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:    mail_storage_service_get_log_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1643
      functionLinenumberEnd: 1644
      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:    mail_storage_service_user_get_pool
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1637
      functionLinenumberEnd: 1638
      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:    mail_storage_service_user_get_service_ctx
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_user_get_settings_instance
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1626
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_user_get_input
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1620
      functionLinenumberEnd: 1621
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_user_get_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1615
      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:    mail_storage_service_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1594
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_deinit
        - dict_drivers_unregister_builtin
        - mail_storage_deinit
        - mail_storage_service_all_iter_deinit
        - module_dir_unload
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1598,8'
          Dst:             mail_storage_service_all_iter_deinit
        - Src:             'mail-storage-service.c:1602,3'
          Dst:             auth_master_deinit
        - Src:             'mail-storage-service.c:1605,2'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1607,2'
          Dst:             module_dir_unload
        - Src:             'mail-storage-service.c:1608,2'
          Dst:             mail_storage_deinit
        - Src:             'mail-storage-service.c:1609,2'
          Dst:             dict_drivers_unregister_builtin
    - functionName:    mail_storage_service_all_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1560
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_deinit
        - auth_master_user_list_deinit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1557,9'
          Dst:             auth_master_user_list_deinit
        - Src:             'mail-storage-service.c:1558,3'
          Dst:             auth_master_deinit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_all_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1584
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_user_list_next
        - i_panic
        - mail_storage_service_all_iter_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1585,2'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:1587,16'
          Dst:             auth_master_user_list_next
        - Src:             'mail-storage-service.c:1590,9'
          Dst:             mail_storage_service_all_iter_deinit
    - functionName:    mail_storage_service_all_init_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1565
      functionLinenumberEnd: 1580
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_get_socket_path
        - auth_master_init
        - auth_master_user_list_init
        - mail_storage_service_all_iter_deinit
        - mail_storage_service_init_settings
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1568,8'
          Dst:             mail_storage_service_all_iter_deinit
        - Src:             'mail-storage-service.c:1569,2'
          Dst:             mail_storage_service_init_settings
        - Src:             'mail-storage-service.c:1576,36'
          Dst:             auth_master_get_socket_path
        - Src:             'mail-storage-service.c:1576,19'
          Dst:             auth_master_init
        - Src:             'mail-storage-service.c:1578,19'
          Dst:             auth_master_user_list_init
    - functionName:    mail_storage_service_init_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1549
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_fatal
        - mail_storage_service_first_init
        - master_service_get_event
        - pool_unref
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1542,25'
          Dst:             master_service_get_event
        - Src:             'mail-storage-service.c:1543,6'
          Dst:             settings_get
        - Src:             'mail-storage-service.c:1545,3'
          Dst:             i_fatal
        - Src:             'mail-storage-service.c:1547,2'
          Dst:             mail_storage_service_first_init
        - Src:             'mail-storage-service.c:1548,2'
          Dst:             pool_unref
    - functionName:    mail_storage_service_first_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 945
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_init
        - mail_storage_service_set_auth_conn
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:955,3'
          Dst:             auth_master_init
        - Src:             'mail-storage-service.c:954,2'
          Dst:             mail_storage_service_set_auth_conn
    - functionName:    mail_storage_service_set_auth_conn
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:934,2'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:935,2'
          Dst:             i_panic
    - functionName:    mail_storage_service_user_get_userdb_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1529
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_user_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          70
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - event_get_parent
        - event_set_ptr
        - io_loop_context_add_callbacks
        - io_loop_context_new
        - io_loop_context_switch
        - mail_storage_service_io_activate_user_cb
        - mail_storage_service_io_deactivate_user_cb
        - p_memdup
        - pool_ref
        - settings_instance_dup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1508,3'
          Dst:             p_memdup
        - Src:             'mail-storage-service.c:1509,2'
          Dst:             pool_ref
        - Src:             'mail-storage-service.c:1512,23'
          Dst:             settings_instance_dup
        - Src:             'mail-storage-service.c:1513,16'
          Dst:             event_get_parent
        - Src:             'mail-storage-service.c:1513,16'
          Dst:             event_create
        - Src:             'mail-storage-service.c:1514,2'
          Dst:             event_set_ptr
        - Src:             'mail-storage-service.c:1516,21'
          Dst:             io_loop_context_new
        - Src:             'mail-storage-service.c:1517,2'
          Dst:             io_loop_context_add_callbacks
        - Src:             'mail-storage-service.c:1517,2'
          Dst:             mail_storage_service_io_activate_user_cb
        - Src:             'mail-storage-service.c:1517,2'
          Dst:             mail_storage_service_io_deactivate_user_cb
        - Src:             'mail-storage-service.c:1521,2'
          Dst:             io_loop_context_switch
        - Src:             'mail-storage-service.c:1522,2'
          Dst:             pool_ref
    - functionName:    mail_storage_service_io_activate_user_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_set_failure_prefix
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:752,3'
          Dst:             i_set_failure_prefix
    - functionName:    mail_storage_service_io_deactivate_user_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_set_failure_prefix
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:759,3'
          Dst:             i_set_failure_prefix
    - functionName:    mail_storage_service_user_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1474
      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:             'mail-storage-service.c:1472,2'
          Dst:             i_panic
    - functionName:    mail_storage_service_user_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1477
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - event_unref
        - i_panic
        - io_loop_context_remove_callbacks
        - io_loop_context_unref
        - io_loop_get_current_context
        - mail_storage_service_io_activate_user_cb
        - mail_storage_service_io_deactivate_user
        - mail_storage_service_io_deactivate_user_cb
        - master_service_set_current_user
        - pool_unref
        - settings_instance_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1482,2'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:1487,7'
          Dst:             io_loop_get_current_context
        - Src:             'mail-storage-service.c:1488,4'
          Dst:             mail_storage_service_io_deactivate_user
        - Src:             'mail-storage-service.c:1489,3'
          Dst:             io_loop_context_remove_callbacks
        - Src:             'mail-storage-service.c:1489,3'
          Dst:             mail_storage_service_io_activate_user_cb
        - Src:             'mail-storage-service.c:1489,3'
          Dst:             mail_storage_service_io_deactivate_user_cb
        - Src:             'mail-storage-service.c:1492,3'
          Dst:             io_loop_context_unref
        - Src:             'mail-storage-service.c:1496,3'
          Dst:             master_service_set_current_user
        - Src:             'mail-storage-service.c:1498,2'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1499,2'
          Dst:             settings_instance_free
        - Src:             'mail-storage-service.c:1500,2'
          Dst:             event_unref
        - Src:             'mail-storage-service.c:1501,2'
          Dst:             pool_unref
    - functionName:    mail_storage_service_io_deactivate_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_context_deactivate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:745,2'
          Dst:             io_loop_context_deactivate
    - functionName:    mail_storage_service_lookup_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_service_lookup
        - mail_storage_service_next
        - mail_storage_service_user_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1459,8'
          Dst:             mail_storage_service_lookup
        - Src:             'mail-storage-service.c:1465,8'
          Dst:             mail_storage_service_next
        - Src:             'mail-storage-service.c:1466,2'
          Dst:             mail_storage_service_user_unref
    - functionName:    mail_storage_service_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          171
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_get_failure_prefix
        - i_panic
        - i_set_failure_prefix
        - i_strdup
        - io_loop_get_current_context
        - mail_storage_service_lookup_real
        - master_service_get_name
        - net_ip2addr
        - p_free_internal
        - t_pop_pass_str
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1298,34'
          Dst:             i_get_failure_prefix
        - Src:             'mail-storage-service.c:1298,25'
          Dst:             i_strdup
        - Src:             'mail-storage-service.c:1302,6'
          Dst:             io_loop_get_current_context
        - Src:             'mail-storage-service.c:1311,4'
          Dst:             master_service_get_name
        - Src:             'mail-storage-service.c:1312,30'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1314,28'
          Dst:             net_ip2addr
        - Src:             'mail-storage-service.c:1314,5'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1310,3'
          Dst:             i_set_failure_prefix
        - Src:             'mail-storage-service.c:1320,3'
          Dst:             i_set_failure_prefix
        - Src:             'mail-storage-service.c:1325,2'
          Dst:             t_push
        - Src:             'mail-storage-service.c:1326,9'
          Dst:             mail_storage_service_lookup_real
        - Src:             'mail-storage-service.c:1328,4'
          Dst:             t_pop_pass_str
        - Src:             'mail-storage-service.c:1328,4'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:1329,2'
          Dst:             i_set_failure_prefix
        - Src:             'mail-storage-service.c:1330,2'
          Dst:             p_free_internal
    - functionName:    mail_storage_service_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1416
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_service_next_with_session_suffix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1412,9'
          Dst:             mail_storage_service_next_with_session_suffix
    - functionName:    mail_storage_service_next_with_session_suffix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1424
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_get_failure_prefix
        - i_panic
        - i_set_failure_prefix
        - i_strdup
        - mail_storage_service_next_real
        - p_free_internal
        - t_pop_pass_str
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1425,34'
          Dst:             i_get_failure_prefix
        - Src:             'mail-storage-service.c:1425,25'
          Dst:             i_strdup
        - Src:             'mail-storage-service.c:1428,2'
          Dst:             t_push
        - Src:             'mail-storage-service.c:1429,9'
          Dst:             mail_storage_service_next_real
        - Src:             'mail-storage-service.c:1432,4'
          Dst:             t_pop_pass_str
        - Src:             'mail-storage-service.c:1432,4'
          Dst:             i_panic
        - Src:             'mail-storage-service.c:1434,3'
          Dst:             i_set_failure_prefix
        - Src:             'mail-storage-service.c:1435,2'
          Dst:             p_free_internal
    - functionName:    mail_storage_service_next_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1340
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          251
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - io_loop_context_add_callbacks
        - io_loop_context_new
        - io_loop_context_switch
        - mail_storage_service_init_log
        - mail_storage_service_init_post
        - mail_storage_service_io_activate_user_cb
        - mail_storage_service_io_deactivate_user
        - mail_storage_service_io_deactivate_user_cb
        - mail_user_unref
        - master_service_get_client_limit
        - master_service_set_current_user
        - module_dir_init
        - restrict_access_allow_coredumps
        - service_drop_privileges
        - service_parse_privileges
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1350,6'
          Dst:             service_parse_privileges
        - Src:             'mail-storage-service.c:1355,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1361,2'
          Dst:             mail_storage_service_init_log
        - Src:             'mail-storage-service.c:1366,22'
          Dst:             io_loop_context_new
        - Src:             'mail-storage-service.c:1367,3'
          Dst:             io_loop_context_add_callbacks
        - Src:             'mail-storage-service.c:1367,3'
          Dst:             mail_storage_service_io_activate_user_cb
        - Src:             'mail-storage-service.c:1367,3'
          Dst:             mail_storage_service_io_deactivate_user_cb
        - Src:             'mail-storage-service.c:1372,2'
          Dst:             io_loop_context_switch
        - Src:             'mail-storage-service.c:1375,7'
          Dst:             service_drop_privileges
        - Src:             'mail-storage-service.c:1378,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1380,4'
          Dst:             mail_storage_service_io_deactivate_user
        - Src:             'mail-storage-service.c:1385,4'
          Dst:             restrict_access_allow_coredumps
        - Src:             'mail-storage-service.c:1390,2'
          Dst:             module_dir_init
        - Src:             'mail-storage-service.c:1392,6'
          Dst:             mail_storage_service_init_post
        - Src:             'mail-storage-service.c:1395,3'
          Dst:             mail_storage_service_io_deactivate_user
        - Src:             'mail-storage-service.c:1397,4'
          Dst:             mail_user_unref
        - Src:             'mail-storage-service.c:1400,6'
          Dst:             master_service_get_client_limit
        - Src:             'mail-storage-service.c:1401,3'
          Dst:             master_service_set_current_user
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    service_parse_privileges
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          210
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - dec2str
        - parse_gid
        - parse_uid
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:435,8'
          Dst:             parse_uid
        - Src:             'mail-storage-service.c:436,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:446,5'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:443,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:454,8'
          Dst:             parse_gid
        - Src:             'mail-storage-service.c:455,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:465,5'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:462,15'
          Dst:             t_strdup_printf
    - functionName:    service_drop_privileges
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          466
      EdgeCount:       109
      CyclomaticComplexity: 31
      functionsReached:
        - array_is_created_i
        - dec2str
        - getegid
        - geteuid
        - i_fatal
        - mail_storage_service_seteuid_root
        - p_array_const_string_join
        - parse_gid
        - restrict_access
        - restrict_access_get_current_chroot
        - restrict_access_get_env
        - restrict_access_init
        - restrict_access_set_env
        - seteuid
        - strcmp
        - t_strconcat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:514,17'
          Dst:             geteuid
        - Src:             'mail-storage-service.c:515,2'
          Dst:             restrict_access_init
        - Src:             'mail-storage-service.c:516,2'
          Dst:             restrict_access_get_env
        - Src:             'mail-storage-service.c:530,34'
          Dst:             getegid
        - Src:             'mail-storage-service.c:535,8'
          Dst:             parse_gid
        - Src:             'mail-storage-service.c:537,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:542,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:543,35'
          Dst:             p_array_const_string_join
        - Src:             'mail-storage-service.c:543,23'
          Dst:             t_strconcat
        - Src:             'mail-storage-service.c:552,15'
          Dst:             restrict_access_get_current_chroot
        - Src:             'mail-storage-service.c:560,7'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:561,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:581,5'
          Dst:             mail_storage_service_seteuid_root
        - Src:             'mail-storage-service.c:589,3'
          Dst:             restrict_access
        - Src:             'mail-storage-service.c:592,3'
          Dst:             restrict_access_set_env
        - Src:             'mail-storage-service.c:595,7'
          Dst:             seteuid
        - Src:             'mail-storage-service.c:597,5'
          Dst:             dec2str
        - Src:             'mail-storage-service.c:596,4'
          Dst:             i_fatal
    - functionName:    mail_storage_service_seteuid_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_service_seteuid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:485,2'
          Dst:             mail_storage_service_seteuid
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_seteuid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - seteuid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:476,6'
          Dst:             seteuid
        - Src:             'mail-storage-service.c:477,3'
          Dst:             i_fatal
    - functionName:    mail_storage_service_lookup_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1070
      functionLinenumberEnd: 1291
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          789
      EdgeCount:       141
      CyclomaticComplexity: 37
      functionsReached:
        - array_create_i
        - array_is_created_i
        - array_sort_i
        - auth_user_fields_parse
        - event_add_fields
        - event_add_str
        - event_create
        - event_set_forced_debug
        - event_set_ptr
        - event_unref
        - extra_field_key_cmp_p
        - geteuid
        - i_set_failure_prefix
        - mail_storage_service_add_code_overrides
        - mail_storage_service_first_init
        - mail_storage_service_generate_session_id
        - mail_storage_service_input_get_flags
        - mail_storage_service_load_modules
        - mail_storage_service_seteuid_root
        - mail_storage_service_update_chroot
        - mail_storage_service_user_unref
        - mail_storage_service_var_expand_callback
        - malloc_multiply_check
        - master_service_get_settings_root
        - master_service_init_log_with_prefix
        - p_malloc
        - p_strarray_dup
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - service_auth_userdb_lookup
        - settings_get
        - settings_instance_dup
        - settings_instance_free
        - settings_instance_new
        - settings_override
        - t_strdup_printf
        - user_reply_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1080,10'
          Dst:             mail_storage_service_input_get_flags
        - Src:             'mail-storage-service.c:1083,6'
          Dst:             geteuid
        - Src:             'mail-storage-service.c:1088,3'
          Dst:             mail_storage_service_seteuid_root
        - Src:             'mail-storage-service.c:1095,18'
          Dst:             settings_instance_dup
        - Src:             'mail-storage-service.c:1098,4'
          Dst:             master_service_get_settings_root
        - Src:             'mail-storage-service.c:1097,18'
          Dst:             settings_instance_new
        - Src:             'mail-storage-service.c:1106,3'
          Dst:             master_service_init_log_with_prefix
        - Src:             'mail-storage-service.c:1114,24'
          Dst:             event_create
        - Src:             'mail-storage-service.c:1115,2'
          Dst:             event_set_ptr
        - Src:             'mail-storage-service.c:1125,2'
          Dst:             event_set_ptr
        - Src:             'mail-storage-service.c:1125,2'
          Dst:             mail_storage_service_var_expand_callback
        - Src:             'mail-storage-service.c:1127,2'
          Dst:             event_set_ptr
        - Src:             'mail-storage-service.c:1129,6'
          Dst:             settings_get
        - Src:             'mail-storage-service.c:1131,3'
          Dst:             event_unref
        - Src:             'mail-storage-service.c:1132,3'
          Dst:             settings_instance_free
        - Src:             'mail-storage-service.c:1137,3'
          Dst:             i_set_failure_prefix
        - Src:             'mail-storage-service.c:1140,3'
          Dst:             mail_storage_service_first_init
        - Src:             'mail-storage-service.c:1142,6'
          Dst:             mail_storage_service_load_modules
        - Src:             'mail-storage-service.c:1143,3'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1144,3'
          Dst:             event_unref
        - Src:             'mail-storage-service.c:1145,3'
          Dst:             settings_instance_free
        - Src:             'mail-storage-service.c:1149,14'
          Dst:             pool_alloconly_create
        - Src:             'mail-storage-service.c:1152,2'
          Dst:             event_set_forced_debug
        - Src:             'mail-storage-service.c:1155,21'
          Dst:             pool_alloconly_create
        - Src:             'mail-storage-service.c:1157,3'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:1158,3'
          Dst:             mail_storage_service_generate_session_id
        - Src:             'mail-storage-service.c:1164,2'
          Dst:             event_add_fields
        - Src:             'mail-storage-service.c:1172,3'
          Dst:             event_add_str
        - Src:             'mail-storage-service.c:1175,9'
          Dst:             service_auth_userdb_lookup
        - Src:             'mail-storage-service.c:1179,4'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1180,4'
          Dst:             event_unref
        - Src:             'mail-storage-service.c:1181,4'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1182,4'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1183,4'
          Dst:             settings_instance_free
        - Src:             'mail-storage-service.c:1186,3'
          Dst:             event_add_str
        - Src:             'mail-storage-service.c:1192,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage-service.c:1192,3'
          Dst:             p_malloc
        - Src:             'mail-storage-service.c:1199,3'
          Dst:             p_strarray_dup
        - Src:             'mail-storage-service.c:1200,25'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:1202,27'
          Dst:             p_strdup
        - Src:             'mail-storage-service.c:1206,2'
          Dst:             array_create_i
        - Src:             'mail-storage-service.c:1217,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:1222,14'
          Dst:             auth_user_fields_parse
        - Src:             'mail-storage-service.c:1225,4'
          Dst:             array_sort_i
        - Src:             'mail-storage-service.c:1225,4'
          Dst:             extra_field_key_cmp_p
        - Src:             'mail-storage-service.c:1226,11'
          Dst:             user_reply_handle
        - Src:             'mail-storage-service.c:1228,5'
          Dst:             event_add_str
        - Src:             'mail-storage-service.c:1234,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1240,3'
          Dst:             mail_storage_service_add_code_overrides
        - Src:             'mail-storage-service.c:1244,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:1245,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-service.c:1255,3'
          Dst:             settings_override
        - Src:             'mail-storage-service.c:1259,3'
          Dst:             mail_storage_service_update_chroot
        - Src:             'mail-storage-service.c:1261,7'
          Dst:             settings_get
        - Src:             'mail-storage-service.c:1263,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-service.c:1267,4'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1271,2'
          Dst:             pool_unref
        - Src:             'mail-storage-service.c:1275,7'
          Dst:             mail_storage_service_load_modules
        - Src:             'mail-storage-service.c:1282,3'
          Dst:             mail_storage_service_user_unref
        - Src:             'mail-storage-service.c:1286,3'
          Dst:             event_set_ptr
        - Src:             'mail-storage-service.c:1287,3'
          Dst:             event_set_ptr
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_storage_service_restrict_setenv
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - service_drop_privileges
        - service_parse_privileges
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:1444,6'
          Dst:             service_parse_privileges
        - Src:             'mail-storage-service.c:1445,3'
          Dst:             i_fatal
        - Src:             'mail-storage-service.c:1446,6'
          Dst:             service_drop_privileges
        - Src:             'mail-storage-service.c:1448,3'
          Dst:             i_fatal
    - functionName:    mail_storage_service_get_auth_conn
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:912,2'
          Dst:             i_panic
    - functionName:    mail_storage_service_time_moved
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_error
        - i_fatal
        - i_sleep_usecs
        - i_warning
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:835,19'
          Dst:             timeval_diff_usecs
        - Src:             'mail-storage-service.c:839,4'
          Dst:             i_warning
        - Src:             'mail-storage-service.c:847,3'
          Dst:             i_fatal
        - Src:             'mail-storage-service.c:852,3'
          Dst:             i_error
        - Src:             'mail-storage-service.c:856,3'
          Dst:             i_sleep_usecs
    - functionName:    mail_storage_service_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          121
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dict_drivers_register_builtin
        - getuid
        - i_fatal
        - io_loop_set_time_moved_callback
        - mail_storage_init
        - mail_storage_service_time_moved
        - malloc_multiply_check
        - master_service_get_configured_name
        - master_service_get_version_string
        - master_service_init_log_with_prefix
        - p_malloc
        - p_strdup_printf
        - pool_alloconly_create
        - strcmp
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:868,12'
          Dst:             master_service_get_version_string
        - Src:             'mail-storage-service.c:869,25'
          Dst:             strcmp
        - Src:             'mail-storage-service.c:870,3'
          Dst:             i_fatal
        - Src:             'mail-storage-service.c:876,6'
          Dst:             getuid
        - Src:             'mail-storage-service.c:882,8'
          Dst:             umask
        - Src:             'mail-storage-service.c:883,2'
          Dst:             io_loop_set_time_moved_callback
        - Src:             'mail-storage-service.c:883,2'
          Dst:             mail_storage_service_time_moved
        - Src:             'mail-storage-service.c:886,9'
          Dst:             mail_storage_init
        - Src:             'mail-storage-service.c:888,9'
          Dst:             pool_alloconly_create
        - Src:             'mail-storage-service.c:889,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage-service.c:889,8'
          Dst:             p_malloc
        - Src:             'mail-storage-service.c:897,3'
          Dst:             master_service_get_configured_name
        - Src:             'mail-storage-service.c:899,3'
          Dst:             p_strdup_printf
        - Src:             'mail-storage-service.c:904,3'
          Dst:             master_service_init_log_with_prefix
        - Src:             'mail-storage-service.c:905,2'
          Dst:             dict_drivers_register_builtin
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_service_user_get_username
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 811
      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:    mail_storage_service_user_get_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 805
      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:    mail_storage_service_user_get_log_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:798,2'
          Dst:             i_panic
    - functionName:    mail_storage_service_io_activate_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_context_activate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:740,2'
          Dst:             io_loop_context_activate
    - functionName:    mail_storage_service_restore_privileges
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          66
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - chdir
        - e_error
        - geteuid
        - mail_storage_service_seteuid
        - mail_storage_service_seteuid_root
        - restrict_access_allow_coredumps
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:491,17'
          Dst:             geteuid
        - Src:             'mail-storage-service.c:492,3'
          Dst:             mail_storage_service_seteuid_root
        - Src:             'mail-storage-service.c:493,3'
          Dst:             restrict_access_allow_coredumps
        - Src:             'mail-storage-service.c:495,4'
          Dst:             mail_storage_service_seteuid
        - Src:             'mail-storage-service.c:499,25'
          Dst:             chdir
        - Src:             'mail-storage-service.c:500,3'
          Dst:             e_error
    - functionName:    mail_storage_service_get_var_expand_params
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_var_expand_table
        - malloc_multiply_check
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-service.c:416,37'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage-service.c:416,37'
          Dst:             t_malloc0
        - Src:             'mail-storage-service.c:418,18'
          Dst:             get_var_expand_table
    - functionName:    mail_storage_2nd_setting_reset_def
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - settings_override
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-storage-settings.c:1099,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage-settings.c:1114,3'
          Dst:             i_panic
        - Src:             'mail-storage-settings.c:1117,6'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:1116,2'
          Dst:             settings_override
    - functionName:    parse_postmaster_address
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          132
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - message_address_parse
        - smtp_address_create_from_msg
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:960,3'
          Dst:             strlen
        - Src:             'mail-storage-settings.c:958,9'
          Dst:             message_address_parse
        - Src:             'mail-storage-settings.c:962,6'
          Dst:             smtp_address_create_from_msg
        - Src:             'mail-storage-settings.c:963,14'
          Dst:             t_strdup_printf
    - functionName:    fix_base_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - p_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:484,10'
          Dst:             p_strconcat
    - functionName:    mailbox_special_use_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          115
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:906,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:908,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:910,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:912,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:914,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:916,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:918,6'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:920,6'
          Dst:             strcasecmp
    - functionName:    mailbox_special_use_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_warning
        - mailbox_special_use_exists
        - settings_boollist_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:931,9'
          Dst:             settings_boollist_get
        - Src:             'mail-storage-settings.c:933,8'
          Dst:             mailbox_special_use_exists
        - Src:             'mail-storage-settings.c:934,4'
          Dst:             i_warning
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    namespace_parse_mailboxes
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          213
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - event_add_str
        - event_create
        - event_unref
        - i_memcpy
        - pool_add_external_ref
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get_filter
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:853,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-settings.c:856,2'
          Dst:             array_count_i
        - Src:             'mail-storage-settings.c:856,2'
          Dst:             array_create_i
        - Src:             'mail-storage-settings.c:858,10'
          Dst:             event_create
        - Src:             'mail-storage-settings.c:859,2'
          Dst:             event_add_str
        - Src:             'mail-storage-settings.c:860,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-storage-settings.c:862,2'
          Dst:             i_memcpy
        - Src:             'mail-storage-settings.c:863,7'
          Dst:             settings_get_filter
        - Src:             'mail-storage-settings.c:867,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:873,3'
          Dst:             array_append_i
        - Src:             'mail-storage-settings.c:874,3'
          Dst:             pool_add_external_ref
        - Src:             'mail-storage-settings.c:875,27'
          Dst:             array_is_created_i
        - Src:             'mail-storage-settings.c:876,3'
          Dst:             pool_unref
        - Src:             'mail-storage-settings.c:880,2'
          Dst:             event_unref
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mailbox_settings_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_special_use_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:946,2'
          Dst:             mailbox_special_use_check
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_cache_fields_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          142
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - message_header_name_is_valid
        - settings_boollist_get
        - str_begins_builtin_success
        - str_begins_icase
        - strcmp
        - strncasecmp
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:496,13'
          Dst:             settings_boollist_get
        - Src:             'mail-storage-settings.c:499,7'
          Dst:             str_begins_icase
        - Src:             'mail-storage-settings.c:499,7'
          Dst:             strncasecmp
        - Src:             'mail-storage-settings.c:499,7'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage-settings.c:500,8'
          Dst:             message_header_name_is_valid
        - Src:             'mail-storage-settings.c:501,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:505,14'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:511,14'
          Dst:             t_strdup_printf
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mailbox_list_get_path_setting
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - p_strdup_until
        - strcmp
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:524,6'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:525,16'
          Dst:             strrchr
        - Src:             'mail-storage-settings.c:528,13'
          Dst:             p_strdup_until
        - Src:             'mail-storage-settings.c:544,7'
          Dst:             strcmp
    - functionName:    mail_storage_event_get_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - event_get_parent
        - event_get_ptr
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:473,10'
          Dst:             event_get_ptr
        - Src:             'mail-storage-settings.c:472,32'
          Dst:             event_get_parent
        - Src:             'mail-storage-settings.c:477,2'
          Dst:             i_panic
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mailbox_settings_get_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - p_strconcat
        - p_strndup
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1152,29'
          Dst:             strcasecmp
        - Src:             'mail-storage-settings.c:1157,10'
          Dst:             p_strndup
        - Src:             'mail-storage-settings.c:1159,10'
          Dst:             p_strconcat
    - functionName:    mail_storage_2nd_setting_reset_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1132
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_storage_2nd_setting_reset_def
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1127,4'
          Dst:             mail_storage_2nd_setting_reset_def
        - Src:             'mail-storage-settings.c:1132,2'
          Dst:             i_panic
    - functionName:    mail_storage_2nd_settings_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_storage_2nd_setting_reset_offset
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1140,2'
          Dst:             t_push
        - Src:             'mail-storage-settings.c:1142,4'
          Dst:             mail_storage_2nd_setting_reset_offset
        - Src:             'mail-storage-settings.c:1145,4'
          Dst:             t_pop
        - Src:             'mail-storage-settings.c:1145,4'
          Dst:             i_panic
    - functionName:    mail_user_set_get_postmaster_smtp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1066
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_postmaster_address_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1064,2'
          Dst:             get_postmaster_address_error
    - functionName:    get_postmaster_address_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1042
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - parse_postmaster_address
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1039,10'
          Dst:             pool_datastack_create
        - Src:             'mail-storage-settings.c:1038,6'
          Dst:             parse_postmaster_address
        - Src:             'mail-storage-settings.c:1040,3'
          Dst:             i_panic
    - functionName:    mail_user_set_get_postmaster_address
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_postmaster_address_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1052,2'
          Dst:             get_postmaster_address_error
    - functionName:    mail_user_settings_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fix_base_path
        - i_panic
        - my_hostdomain
        - p_strdup
        - parse_postmaster_address
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:1002,2'
          Dst:             i_panic
        - Src:             'mail-storage-settings.c:1003,2'
          Dst:             fix_base_path
        - Src:             'mail-storage-settings.c:1006,34'
          Dst:             my_hostdomain
        - Src:             'mail-storage-settings.c:1006,19'
          Dst:             p_strdup
        - Src:             'mail-storage-settings.c:1009,8'
          Dst:             parse_postmaster_address
    - functionName:    mail_user_settings_apply
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:991,6'
          Dst:             strcmp
    - functionName:    namespace_settings_ext_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - namespace_parse_mailboxes
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:891,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:897,9'
          Dst:             namespace_parse_mailboxes
    - functionName:    mail_storage_settings_ext_check
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         140
      ICount:          835
      EdgeCount:       194
      CyclomaticComplexity: 56
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - array_is_created_i
        - e_warning
        - file_lock_method_parse
        - getenv
        - hash_format_deinit_free
        - hash_format_init
        - mail_cache_fields_parse
        - p_strconcat
        - p_strdup
        - p_strdup_printf
        - p_strdup_until
        - settings_boollist_get
        - str_array_find
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strcmp
        - strlen
        - strncmp
        - strrchr
        - t_strconcat
        - t_strdup_printf
        - uri_check
        - var_expand_program_create
        - var_expand_program_free
        - var_expand_program_variables
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:649,6'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:651,11'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:653,11'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:656,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:671,7'
          Dst:             file_lock_method_parse
        - Src:             'mail-storage-settings.c:673,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:689,6'
          Dst:             var_expand_program_create
        - Src:             'mail-storage-settings.c:690,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:694,38'
          Dst:             var_expand_program_variables
        - Src:             'mail-storage-settings.c:705,8'
          Dst:             str_array_find
        - Src:             'mail-storage-settings.c:706,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:713,2'
          Dst:             var_expand_program_free
        - Src:             'mail-storage-settings.c:722,6'
          Dst:             strchr
        - Src:             'mail-storage-settings.c:727,6'
          Dst:             hash_format_init
        - Src:             'mail-storage-settings.c:729,14'
          Dst:             t_strconcat
        - Src:             'mail-storage-settings.c:733,6'
          Dst:             strchr
        - Src:             'mail-storage-settings.c:738,2'
          Dst:             hash_format_deinit_free
        - Src:             'mail-storage-settings.c:742,6'
          Dst:             uri_check
        - Src:             'mail-storage-settings.c:743,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:750,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage-settings.c:752,3'
          Dst:             array_create_i
        - Src:             'mail-storage-settings.c:755,4'
          Dst:             settings_boollist_get
        - Src:             'mail-storage-settings.c:760,8'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:761,8'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:763,15'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:765,15'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:767,15'
          Dst:             str_begins
        - Src:             'mail-storage-settings.c:767,15'
          Dst:             strncmp
        - Src:             'mail-storage-settings.c:767,15'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage-settings.c:768,13'
          Dst:             p_strdup
        - Src:             'mail-storage-settings.c:769,5'
          Dst:             array_append_i
        - Src:             'mail-storage-settings.c:771,16'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:778,3'
          Dst:             array_append_space_i
        - Src:             'mail-storage-settings.c:779,53'
          Dst:             array_idx_i
        - Src:             'mail-storage-settings.c:782,7'
          Dst:             mail_cache_fields_parse
        - Src:             'mail-storage-settings.c:785,7'
          Dst:             mail_cache_fields_parse
        - Src:             'mail-storage-settings.c:788,7'
          Dst:             mail_cache_fields_parse
        - Src:             'mail-storage-settings.c:792,15'
          Dst:             strrchr
        - Src:             'mail-storage-settings.c:797,4'
          Dst:             p_strdup_until
        - Src:             'mail-storage-settings.c:807,11'
          Dst:             strchr
        - Src:             'mail-storage-settings.c:811,47'
          Dst:             p_strconcat
        - Src:             'mail-storage-settings.c:815,6'
          Dst:             strlen
        - Src:             'mail-storage-settings.c:819,6'
          Dst:             strlen
        - Src:             'mail-storage-settings.c:826,7'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:829,27'
          Dst:             p_strdup_printf
        - Src:             'mail-storage-settings.c:834,6'
          Dst:             getenv
        - Src:             'mail-storage-settings.c:836,3'
          Dst:             e_warning
    - functionName:    mail_storage_settings_apply
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          294
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - mail_storage_event_get_user
        - mail_user_get_home
        - mailbox_list_get_path_setting
        - p_strconcat
        - p_strndup
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - t_pop
        - t_push
        - t_strdup_printf
        - t_strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-settings.c:562,25'
          Dst:             strlen
        - Src:             'mail-storage-settings.c:563,21'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:564,28'
          Dst:             strlen
        - Src:             'mail-storage-settings.c:570,8'
          Dst:             strncmp
        - Src:             'mail-storage-settings.c:570,8'
          Dst:             str_begins_with
        - Src:             'mail-storage-settings.c:571,8'
          Dst:             strcmp
        - Src:             'mail-storage-settings.c:575,5'
          Dst:             mail_storage_event_get_user
        - Src:             'mail-storage-settings.c:577,8'
          Dst:             mail_user_get_home
        - Src:             'mail-storage-settings.c:584,16'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-settings.c:590,14'
          Dst:             p_strconcat
        - Src:             'mail-storage-settings.c:591,9'
          Dst:             t_push
        - Src:             'mail-storage-settings.c:593,6'
          Dst:             t_strndup
        - Src:             'mail-storage-settings.c:592,14'
          Dst:             p_strconcat
        - Src:             'mail-storage-settings.c:594,6'
          Dst:             t_pop
        - Src:             'mail-storage-settings.c:594,6'
          Dst:             i_panic
        - Src:             'mail-storage-settings.c:600,13'
          Dst:             p_strndup
        - Src:             'mail-storage-settings.c:604,6'
          Dst:             mailbox_list_get_path_setting
    - functionName:    nullequals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2528
      functionLinenumberEnd: 2529
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          42
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_lists_rename_compatible
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2536
      functionLinenumberEnd: 2566
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          160
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - nullequals
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2537,7'
          Dst:             nullequals
        - Src:             'mail-storage.c:2539,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:2544,7'
          Dst:             nullequals
        - Src:             'mail-storage.c:2546,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:2551,7'
          Dst:             nullequals
        - Src:             'mail-storage.c:2553,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:2558,7'
          Dst:             nullequals
        - Src:             'mail-storage.c:2560,14'
          Dst:             t_strdup_printf
    - functionName:    mail_storages_rename_compatible
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2508
      functionLinenumberEnd: 2525
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2512,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:2513,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:2520,14'
          Dst:             t_strdup_printf
    - functionName:    mailbox_rename_check_children
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2570
      functionLinenumberEnd: 2601
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          143
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_namespace_get_sep
        - mail_storage_copy_list_error
        - mail_storage_set_error
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - strlen
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2572,26'
          Dst:             strlen
        - Src:             'mail-storage.c:2573,27'
          Dst:             strlen
        - Src:             'mail-storage.c:2576,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-storage.c:2577,24'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:2579,46'
          Dst:             mailbox_list_iter_init
        - Src:             'mail-storage.c:2583,17'
          Dst:             mailbox_list_iter_next
        - Src:             'mail-storage.c:2584,7'
          Dst:             strncmp
        - Src:             'mail-storage.c:2588,7'
          Dst:             strlen
        - Src:             'mail-storage.c:2589,4'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2597,6'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mail-storage.c:2598,3'
          Dst:             mail_storage_copy_list_error
    - functionName:    mail_storage_set_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    108
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:687,3'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:688,27'
          Dst:             i_strdup
    - functionName:    mail_storage_copy_list_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
        - mailbox_list_get_last_error
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:887,8'
          Dst:             mailbox_list_get_last_error
        - Src:             'mail-storage.c:888,2'
          Dst:             mail_storage_set_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_close_reset_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2431
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_verify_existing_name_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1747
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          170
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mailbox_autocreate
        - mailbox_close
        - mailbox_get_path_to
        - mailbox_is_autocreated
        - mailbox_nfc_normalize
        - mailbox_verify_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1753,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:1759,12'
          Dst:             mailbox_get_path_to
        - Src:             'mail-storage.c:1762,9'
          Dst:             mailbox_nfc_normalize
        - Src:             'mail-storage.c:1764,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1767,10'
          Dst:             mailbox_get_path_to
        - Src:             'mail-storage.c:1774,8'
          Dst:             mailbox_is_autocreated
        - Src:             'mail-storage.c:1777,7'
          Dst:             mailbox_autocreate
        - Src:             'mail-storage.c:1779,3'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:1780,7'
          Dst:             mailbox_get_path_to
    - functionName:    mailbox_verify_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1738
      functionLinenumberEnd: 1743
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_verify_name_int
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1740,2'
          Dst:             t_push
        - Src:             'mail-storage.c:1741,9'
          Dst:             mailbox_verify_name_int
        - Src:             'mail-storage.c:1742,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:1742,4'
          Dst:             i_panic
    - functionName:    mailbox_get_path_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3647
      functionLinenumberEnd: 3653
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - get_path_to
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3649,10'
          Dst:             get_path_to
        - Src:             'mail-storage.c:3651,10'
          Dst:             get_path_to
        - Src:             'mail-storage.c:3652,9'
          Dst:             get_path_to
    - functionName:    mailbox_nfc_normalize
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1584
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mailbox_rename_nfc_forced
        - mailbox_set_critical
        - p_strdup
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1588,8'
          Dst:             mailbox_rename_nfc_forced
        - Src:             'mail-storage.c:1591,3'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:1598,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:1599,3'
          Dst:             event_want_level
        - Src:             'mail-storage.c:1599,3'
          Dst:             e_debug
        - Src:             'mail-storage.c:1599,3'
          Dst:             event_send_abort
        - Src:             'mail-storage.c:1601,16'
          Dst:             p_strdup
        - Src:             'mail-storage.c:1602,3'
          Dst:             event_want_level
        - Src:             'mail-storage.c:1602,3'
          Dst:             e_debug
        - Src:             'mail-storage.c:1602,3'
          Dst:             event_send_abort
    - functionName:    mailbox_is_autocreated
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1426
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1425,3'
          Dst:             strcmp
    - functionName:    mailbox_autocreate
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1462
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          93
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_create
        - mailbox_get_last_internal_error
        - mailbox_is_autosubscribed
        - mailbox_set_critical
        - mailbox_set_subscribed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1441,6'
          Dst:             mailbox_create
        - Src:             'mail-storage.c:1442,12'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:1448,4'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:1453,13'
          Dst:             mailbox_is_autosubscribed
        - Src:             'mail-storage.c:1454,7'
          Dst:             mailbox_set_subscribed
        - Src:             'mail-storage.c:1457,5'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:1455,4'
          Dst:             mailbox_set_critical
    - functionName:    mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2201
      functionLinenumberEnd: 2223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - array_free_i
        - array_is_created_i
        - i_panic
        - mail_storage_free_binary_cache
        - t_pop
        - t_push
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2206,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:2209,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2211,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2211,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2214,3'
          Dst:             mail_storage_free_binary_cache
        - Src:             'mail-storage.c:2217,2'
          Dst:             array_clear_i
        - Src:             'mail-storage.c:2219,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:2220,3'
          Dst:             array_free_i
    - functionName:    mail_storage_free_binary_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2191
      functionLinenumberEnd: 2198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_destroy
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2195,2'
          Dst:             timeout_remove
        - Src:             'mail-storage.c:2196,2'
          Dst:             i_stream_destroy
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2353
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          277
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - i_panic
        - mail_storage_copy_list_error
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
        - mailbox_close
        - mailbox_copy_cache_decisions_from_inbox
        - mailbox_list_lock
        - mailbox_list_unlock
        - mailbox_verify_create_name
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2303,6'
          Dst:             mailbox_verify_create_name
        - Src:             'mail-storage.c:2306,32'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:2314,6'
          Dst:             mailbox_list_lock
        - Src:             'mail-storage.c:2315,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:2316,3'
          Dst:             event_reason_end
        - Src:             'mail-storage.c:2326,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2328,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2328,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2330,2'
          Dst:             mailbox_list_unlock
        - Src:             'mail-storage.c:2334,24'
          Dst:             t_push
        - Src:             'mail-storage.c:2335,4'
          Dst:             mailbox_copy_cache_decisions_from_inbox
        - Src:             'mail-storage.c:2336,5'
          Dst:             t_pop
        - Src:             'mail-storage.c:2336,5'
          Dst:             i_panic
        - Src:             'mail-storage.c:2346,3'
          Dst:             mail_storage_last_error_push
        - Src:             'mail-storage.c:2347,3'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:2348,3'
          Dst:             mail_storage_last_error_pop
        - Src:             'mail-storage.c:2351,2'
          Dst:             event_reason_end
    - functionName:    mailbox_get_last_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_storage_get_last_error
        - mail_storage_get_last_internal_error
        - mailbox_get_storage
        - strcmp
        - t_strdup_printf
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:824,33'
          Dst:             mailbox_get_storage
        - Src:             'mail-storage.c:827,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:828,10'
          Dst:             mail_storage_get_last_internal_error
        - Src:             'mail-storage.c:833,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:835,11'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:840,9'
          Dst:             mail_storage_get_last_error
    - functionName:    mailbox_set_critical
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - i_panic
        - mail_storage_set_critical_error
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    186
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:760,2'
          Dst:             t_push
        - Src:             'mail-storage.c:761,21'
          Dst:             t_strdup_vprintf
        - Src:             'mail-storage.c:762,3'
          Dst:             mail_storage_set_critical_error
        - Src:             'mail-storage.c:764,3'
          Dst:             e_error
        - Src:             'mail-storage.c:765,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:765,4'
          Dst:             i_panic
    - functionName:    mailbox_is_autosubscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1429
      functionLinenumberEnd: 1434
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1433,3'
          Dst:             strcmp
    - functionName:    mailbox_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2714
      functionLinenumberEnd: 2733
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - i_panic
        - mail_storage_copy_list_error
        - mailbox_is_subscribed
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_verify_name
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2717,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:2721,3'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:2723,6'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mail-storage.c:2724,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:2726,13'
          Dst:             mailbox_is_subscribed
        - Src:             'mail-storage.c:2728,7'
          Dst:             t_push
        - Src:             'mail-storage.c:2730,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2730,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2731,2'
          Dst:             event_reason_end
    - functionName:    mailbox_is_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2736
      functionLinenumberEnd: 2742
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mailbox_tree_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2739,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2741,9'
          Dst:             mailbox_tree_lookup
    - functionName:    mail_storage_set_critical_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - mail_storage_set_internal_error
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:727,2'
          Dst:             mail_storage_set_internal_error
        - Src:             'mail-storage.c:729,33'
          Dst:             i_strdup
        - Src:             'mail-storage.c:730,41'
          Dst:             i_strdup
        - Src:             'mail-storage.c:736,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:737,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:738,2'
          Dst:             p_free_internal
    - functionName:    mail_storage_set_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
        - t_strflocaltime
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:699,8'
          Dst:             t_strflocaltime
        - Src:             'mail-storage.c:701,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:702,26'
          Dst:             i_strdup
        - Src:             'mail-storage.c:708,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:709,2'
          Dst:             p_free_internal
    - functionName:    mailbox_get_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2746
      functionLinenumberEnd: 2747
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_get_last_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          140
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_storage_get_last_error
        - mailbox_name_sanitize
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:792,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:799,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:802,5'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage.c:800,11'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:809,5'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage.c:807,11'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:814,9'
          Dst:             mail_storage_get_last_error
    - functionName:    mail_storage_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_strdup_printf
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:965,4'
          Dst:             i_strdup_printf
    - functionName:    mailbox_name_sanitize
      functionSourceFile: '/src/dovecot/src/lib-storage/./mail-storage-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 956
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_sanitize
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './mail-storage-private.h:957,9'
          Dst:             str_sanitize
    - functionName:    mailbox_verify_create_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1851
      functionLinenumberEnd: 1891
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - mail_storage_set_error
        - mailbox_list_get_hierarchy_sep
        - mailbox_name_check_forbidden_chars
        - mailbox_verify_name
        - strchr
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1859,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:1863,6'
          Dst:             mailbox_name_check_forbidden_chars
        - Src:             'mail-storage.c:1864,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1867,6'
          Dst:             strlen
        - Src:             'mail-storage.c:1868,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1875,19'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mail-storage.c:1876,16'
          Dst:             strchr
        - Src:             'mail-storage.c:1878,4'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1885,6'
          Dst:             strlen
        - Src:             'mail-storage.c:1886,3'
          Dst:             mail_storage_set_error
    - functionName:    mailbox_copy_cache_decisions_from_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2276
      functionLinenumberEnd: 2294
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - mail_cache_decisions_copy
        - mail_namespace_find_inbox
        - mailbox_alloc
        - mailbox_exists
        - mailbox_free
        - mailbox_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2278,3'
          Dst:             mail_namespace_find_inbox
        - Src:             'mail-storage.c:2280,3'
          Dst:             mailbox_alloc
        - Src:             'mail-storage.c:2285,6'
          Dst:             mailbox_exists
        - Src:             'mail-storage.c:2287,6'
          Dst:             mailbox_open
        - Src:             'mail-storage.c:2288,6'
          Dst:             mailbox_open
        - Src:             'mail-storage.c:2290,9'
          Dst:             mail_cache_decisions_copy
        - Src:             'mail-storage.c:2293,2'
          Dst:             mailbox_free
    - functionName:    mail_storage_last_error_push
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          93
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - i_strdup
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:992,7'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:993,3'
          Dst:             array_create_i
        - Src:             'mail-storage.c:994,8'
          Dst:             array_append_space_i
        - Src:             'mail-storage.c:995,22'
          Dst:             i_strdup
        - Src:             'mail-storage.c:1003,30'
          Dst:             i_strdup
        - Src:             'mail-storage.c:1005,4'
          Dst:             i_strdup
    - functionName:    mail_storage_last_error_pop
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          109
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_i
        - p_free_internal
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1013,23'
          Dst:             array_count_i
        - Src:             'mail-storage.c:1015,3'
          Dst:             array_idx_i
        - Src:             'mail-storage.c:1017,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:1018,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:1019,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:1026,2'
          Dst:             array_delete_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1104
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         115
      ICount:          702
      EdgeCount:       152
      CyclomaticComplexity: 39
      functionsReached:
        - hook_mailbox_allocated
        - i_panic
        - mail_namespace_get_default_storage
        - mail_namespace_get_sep
        - mail_storage_obj_ref
        - mail_storage_set_error
        - mailbox_list_get_last_error
        - mailbox_list_get_storage
        - mailbox_list_set_critical
        - mailbox_name_try_get_settings
        - mailbox_set_critical
        - p_strdup
        - settings_get
        - str_begins
        - str_begins_builtin_success
        - str_begins_icase
        - str_begins_with
        - strcasecmp
        - strcmp
        - strlen
        - strncasecmp
        - strncmp
        - t_pop
        - t_push
        - t_strconcat
        - t_strdup
        - uni_utf8_to_nfc
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1114,6'
          Dst:             str_begins_icase
        - Src:             'mail-storage.c:1114,6'
          Dst:             strncasecmp
        - Src:             'mail-storage.c:1114,6'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage.c:1115,7'
          Dst:             strncmp
        - Src:             'mail-storage.c:1115,7'
          Dst:             str_begins_with
        - Src:             'mail-storage.c:1122,25'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-storage.c:1124,12'
          Dst:             strncasecmp
        - Src:             'mail-storage.c:1125,6'
          Dst:             strncmp
        - Src:             'mail-storage.c:1125,6'
          Dst:             str_begins_with
        - Src:             'mail-storage.c:1126,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mail-storage.c:1132,12'
          Dst:             t_strconcat
        - Src:             'mail-storage.c:1136,2'
          Dst:             t_push
        - Src:             'mail-storage.c:1141,33'
          Dst:             strlen
        - Src:             'mail-storage.c:1141,10'
          Dst:             uni_utf8_to_nfc
        - Src:             'mail-storage.c:1142,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1144,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:1154,7'
          Dst:             mailbox_list_get_storage
        - Src:             'mail-storage.c:1157,14'
          Dst:             mail_namespace_get_default_storage
        - Src:             'mail-storage.c:1158,13'
          Dst:             mailbox_list_get_last_error
        - Src:             'mail-storage.c:1159,13'
          Dst:             t_strdup
        - Src:             'mail-storage.c:1160,14'
          Dst:             strcmp
        - Src:             'mail-storage.c:1165,34'
          Dst:             strlen
        - Src:             'mail-storage.c:1165,11'
          Dst:             uni_utf8_to_nfc
        - Src:             'mail-storage.c:1166,5'
          Dst:             i_panic
        - Src:             'mail-storage.c:1168,7'
          Dst:             strcmp
        - Src:             'mail-storage.c:1174,7'
          Dst:             str_begins
        - Src:             'mail-storage.c:1174,7'
          Dst:             strlen
        - Src:             'mail-storage.c:1174,7'
          Dst:             strncmp
        - Src:             'mail-storage.c:1174,7'
          Dst:             strlen
        - Src:             'mail-storage.c:1174,7'
          Dst:             str_begins_builtin_success
        - Src:             'mail-storage.c:1175,7'
          Dst:             strcasecmp
        - Src:             'mail-storage.c:1176,7'
          Dst:             strcmp
        - Src:             'mail-storage.c:1185,12'
          Dst:             t_strconcat
        - Src:             'mail-storage.c:1191,4'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1192,21'
          Dst:             mailbox_name_try_get_settings
        - Src:             'mail-storage.c:1194,4'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:1197,8'
          Dst:             settings_get
        - Src:             'mail-storage.c:1200,5'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:1204,29'
          Dst:             strcmp
        - Src:             'mail-storage.c:1207,21'
          Dst:             p_strdup
        - Src:             'mail-storage.c:1210,3'
          Dst:             hook_mailbox_allocated
        - Src:             'mail-storage.c:1211,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:1211,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1214,2'
          Dst:             mail_storage_obj_ref
    - functionName:    mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1917
      functionLinenumberEnd: 1965
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          226
      EdgeCount:       45
      CyclomaticComplexity: 9
      functionsReached:
        - have_listable_namespace_prefix
        - i_panic
        - mailbox_verify_name
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:
        - Branch String:   'mail-storage.c:1918,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage.c:1928,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:1937,2'
          Dst:             t_push
        - Src:             'mail-storage.c:1939,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:1939,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1944,3'
          Dst:             t_push
        - Src:             'mail-storage.c:1946,5'
          Dst:             t_pop
        - Src:             'mail-storage.c:1946,5'
          Dst:             i_panic
        - Src:             'mail-storage.c:1953,6'
          Dst:             have_listable_namespace_prefix
    - functionName:    mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          119
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mailbox_close
        - mailbox_open_full
        - mailbox_try_undelete
        - t_pop
        - t_push
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2092,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2093,9'
          Dst:             mailbox_open_full
        - Src:             'mail-storage.c:2094,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2094,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2103,7'
          Dst:             mailbox_try_undelete
        - Src:             'mail-storage.c:2109,3'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:2110,3'
          Dst:             t_push
        - Src:             'mail-storage.c:2111,10'
          Dst:             mailbox_open_full
        - Src:             'mail-storage.c:2112,5'
          Dst:             t_pop
        - Src:             'mail-storage.c:2112,5'
          Dst:             i_panic
    - functionName:    mailbox_free
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2226
      functionLinenumberEnd: 2243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_storage_obj_unref
        - mailbox_close
        - pool_unref
      functionUses:    57
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2231,2'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:2235,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:2240,2'
          Dst:             mail_storage_obj_unref
        - Src:             'mail-storage.c:2241,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:2242,2'
          Dst:             pool_unref
    - functionName:    mail_storage_obj_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_user_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:663,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:664,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:668,3'
          Dst:             mail_user_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_open_full
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1969
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          500
      EdgeCount:       108
      CyclomaticComplexity: 26
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_ref
        - i_stream_unref
        - mail_storage_set_error
        - mail_storage_set_internal_error
        - mailbox_autocreate_and_reopen
        - mailbox_close
        - mailbox_is_autocreated
        - mailbox_nfc_normalize
        - mailbox_set_critical
        - mailbox_verify_existing_name
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mail-storage.c:1977,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage.c:1979,3'
          Dst:             event_want_level
        - Src:             'mail-storage.c:1979,3'
          Dst:             e_debug
        - Src:             'mail-storage.c:1979,3'
          Dst:             event_send_abort
        - Src:             'mail-storage.c:1983,4'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1982,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1986,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'mail-storage.c:1991,8'
          Dst:             mailbox_verify_existing_name
        - Src:             'mail-storage.c:1994,9'
          Dst:             mailbox_nfc_normalize
        - Src:             'mail-storage.c:1996,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2006,4'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:2012,3'
          Dst:             i_stream_ref
        - Src:             'mail-storage.c:2019,9'
          Dst:             mailbox_nfc_normalize
        - Src:             'mail-storage.c:2021,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2025,4'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:2031,28'
          Dst:             mailbox_is_autocreated
        - Src:             'mail-storage.c:2031,57'
          Dst:             t_push
        - Src:             'mail-storage.c:2032,9'
          Dst:             mailbox_autocreate_and_reopen
        - Src:             'mail-storage.c:2033,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2033,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2037,4'
          Dst:             i_stream_unref
    - functionName:    mailbox_try_undelete
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2056
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_index_get_modification_time
        - mailbox_mark_index_deleted
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2059,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2074,6'
          Dst:             mail_index_get_modification_time
        - Src:             'mail-storage.c:2076,42'
          Dst:             time
        - Src:             'mail-storage.c:2080,12'
          Dst:             mailbox_mark_index_deleted
    - functionName:    mailbox_mark_index_deleted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2377
      functionLinenumberEnd: 2424
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          189
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_index_set_deleted
        - mail_index_set_undeleted
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mailbox_open
        - mailbox_set_index_error
        - mailbox_sync
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2383,2'
          Dst:             event_want_level
        - Src:             'mail-storage.c:2383,2'
          Dst:             e_debug
        - Src:             'mail-storage.c:2383,2'
          Dst:             event_send_abort
        - Src:             'mail-storage.c:2394,8'
          Dst:             mailbox_open
        - Src:             'mail-storage.c:2400,10'
          Dst:             mail_index_transaction_begin
        - Src:             'mail-storage.c:2402,3'
          Dst:             mail_index_set_deleted
        - Src:             'mail-storage.c:2404,3'
          Dst:             mail_index_set_undeleted
        - Src:             'mail-storage.c:2405,6'
          Dst:             mail_index_transaction_commit
        - Src:             'mail-storage.c:2406,3'
          Dst:             mailbox_set_index_error
        - Src:             'mail-storage.c:2416,9'
          Dst:             mailbox_sync
    - functionName:    mailbox_set_index_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - mail_index_is_deleted
        - mail_index_reset_error
        - mail_storage_set_index_error
        - mailbox_set_deleted
        - p_free_internal
      functionUses:    44
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:893,6'
          Dst:             mail_index_is_deleted
        - Src:             'mail-storage.c:894,3'
          Dst:             mailbox_set_deleted
        - Src:             'mail-storage.c:895,3'
          Dst:             mail_index_reset_error
        - Src:             'mail-storage.c:897,3'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:898,47'
          Dst:             i_strdup
        - Src:             'mail-storage.c:899,3'
          Dst:             mail_storage_set_index_error
    - functionName:    mailbox_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2937
      functionLinenumberEnd: 2948
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - mailbox_sync_deinit
        - mailbox_sync_init
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2941,6'
          Dst:             array_count_i
        - Src:             'mail-storage.c:2947,8'
          Dst:             mailbox_sync_init
        - Src:             'mail-storage.c:2948,9'
          Dst:             mailbox_sync_deinit
    - functionName:    mailbox_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2867
      functionLinenumberEnd: 2887
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_open
        - malloc_multiply_check
        - p_malloc
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2871,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:2875,7'
          Dst:             mailbox_open
        - Src:             'mail-storage.c:2876,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage.c:2876,10'
          Dst:             p_malloc
        - Src:             'mail-storage.c:2883,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2885,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2885,4'
          Dst:             i_panic
    - functionName:    mailbox_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2904
      functionLinenumberEnd: 2933
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          165
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - i_panic
        - mailbox_get_last_internal_error
        - p_free_internal
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2916,3'
          Dst:             t_push
        - Src:             'mail-storage.c:2918,5'
          Dst:             t_pop
        - Src:             'mail-storage.c:2918,5'
          Dst:             i_panic
        - Src:             'mail-storage.c:2920,3'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:2925,14'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:2928,4'
          Dst:             e_error
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_set_deleted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3616
      functionLinenumberEnd: 3620
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3617,2'
          Dst:             mail_storage_set_error
    - functionName:    mail_storage_set_index_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - mail_index_get_last_error
        - mail_index_reset_error
        - mail_storage_set_internal_error
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:908,2'
          Dst:             mail_storage_set_internal_error
        - Src:             'mail-storage.c:910,16'
          Dst:             mail_index_get_last_error
        - Src:             'mail-storage.c:913,33'
          Dst:             i_strdup
        - Src:             'mail-storage.c:915,2'
          Dst:             mail_index_reset_error
    - functionName:    mailbox_verify_existing_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1788
      functionLinenumberEnd: 1793
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_verify_existing_name_int
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1790,2'
          Dst:             t_push
        - Src:             'mail-storage.c:1791,9'
          Dst:             mailbox_verify_existing_name_int
        - Src:             'mail-storage.c:1792,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:1792,4'
          Dst:             i_panic
    - functionName:    mailbox_autocreate_and_reopen
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1465
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_autocreate
        - mailbox_close
        - mailbox_get_last_internal_error
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1468,6'
          Dst:             mailbox_autocreate
        - Src:             'mail-storage.c:1470,2'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:1478,4'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:1476,3'
          Dst:             mailbox_set_critical
    - functionName:    have_listable_namespace_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1913
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_namespace_get_sep
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1896,20'
          Dst:             strlen
        - Src:             'mail-storage.c:1908,7'
          Dst:             strncmp
        - Src:             'mail-storage.c:1909,31'
          Dst:             mail_namespace_get_sep
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mailbox_name_try_get_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          145
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - array_is_created_i
        - mailbox_get_name_without_prefix
        - mailbox_list_get_default_box_settings
        - pool_ref
        - wildcard_match
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1073,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:1074,10'
          Dst:             mailbox_list_get_default_box_settings
        - Src:             'mail-storage.c:1077,3'
          Dst:             mailbox_get_name_without_prefix
        - Src:             'mail-storage.c:1080,3'
          Dst:             array_get_i
        - Src:             'mail-storage.c:1083,8'
          Dst:             wildcard_match
        - Src:             'mail-storage.c:1095,10'
          Dst:             mailbox_list_get_default_box_settings
        - Src:             'mail-storage.c:1097,2'
          Dst:             pool_ref
    - functionName:    mail_storage_obj_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_user_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:655,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:658,3'
          Dst:             mail_user_ref
    - functionName:    mailbox_list_get_default_box_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pool_ref
        - settings_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1059,7'
          Dst:             settings_get
        - Src:             'mail-storage.c:1064,2'
          Dst:             pool_ref
    - functionName:    mailbox_get_name_without_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_namespace_get_sep
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:76,6'
          Dst:             strncmp
        - Src:             'mail-storage.c:77,34'
          Dst:             mail_namespace_get_sep
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_name_check_forbidden_chars
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1798
      functionLinenumberEnd: 1843
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          144
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - strlen
        - t_strdup_printf
        - uni_utf8_get_char_n
        - unicode_code_point_is_assigned
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1800,16'
          Dst:             strlen
        - Src:             'mail-storage.c:1827,11'
          Dst:             uni_utf8_get_char_n
        - Src:             'mail-storage.c:1828,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:1835,8'
          Dst:             unicode_code_point_is_assigned
        - Src:             'mail-storage.c:1836,15'
          Dst:             t_strdup_printf
    - functionName:    unicode_code_point_is_assigned
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_code_point_data_is_assigned
        - unicode_code_point_get_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/unicode-data.h:100,3'
          Dst:             unicode_code_point_get_data
        - Src:             '../../src/lib/unicode-data.h:102,9'
          Dst:             unicode_code_point_data_is_assigned
    - functionName:    unicode_code_point_get_data
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_code_point_data_is_assigned
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          31
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   '../../src/lib/unicode-data.h:31,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    mailbox_rename_nfc_forced
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1541
      functionLinenumberEnd: 1581
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          169
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_error
        - mailbox_get_last_mail_error
        - mailbox_rename
        - mailbox_vname_normalize_ns_prefix_nfc
        - strcmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1545,2'
          Dst:             mailbox_vname_normalize_ns_prefix_nfc
        - Src:             'mail-storage.c:1547,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:1551,12'
          Dst:             mailbox_alloc
        - Src:             'mail-storage.c:1554,12'
          Dst:             mailbox_alloc
        - Src:             'mail-storage.c:1558,8'
          Dst:             mailbox_rename
        - Src:             'mail-storage.c:1560,6'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage.c:1564,6'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage.c:1567,3'
          Dst:             guid_128_generate
        - Src:             'mail-storage.c:1570,13'
          Dst:             guid_128_to_string
        - Src:             'mail-storage.c:1569,18'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1571,3'
          Dst:             mailbox_free
        - Src:             'mail-storage.c:1572,13'
          Dst:             mailbox_alloc
        - Src:             'mail-storage.c:1573,9'
          Dst:             mailbox_rename
        - Src:             'mail-storage.c:1576,14'
          Dst:             mailbox_get_last_error
        - Src:             'mail-storage.c:1577,2'
          Dst:             mailbox_free
        - Src:             'mail-storage.c:1578,2'
          Dst:             mailbox_free
    - functionName:    mailbox_vname_normalize_ns_prefix_nfc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          156
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_namespace_get_sep
        - str_append
        - str_c
        - strchr
        - t_str_new
        - uni_utf8_write_nfc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1495,13'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-storage.c:1499,14'
          Dst:             strchr
        - Src:             'mail-storage.c:1505,18'
          Dst:             strchr
        - Src:             'mail-storage.c:1509,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:1513,18'
          Dst:             t_str_new
        - Src:             'mail-storage.c:1516,8'
          Dst:             uni_utf8_write_nfc
        - Src:             'mail-storage.c:1517,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:1518,2'
          Dst:             str_append
        - Src:             'mail-storage.c:1520,11'
          Dst:             str_c
    - functionName:    mailbox_rename
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2702
      functionLinenumberEnd: 2710
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - i_panic
        - mailbox_rename_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2704,3'
          Dst:             t_push
        - Src:             'mail-storage.c:2706,5'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:2707,10'
          Dst:             mailbox_rename_real
        - Src:             'mail-storage.c:2708,4'
          Dst:             event_reason_end
        - Src:             'mail-storage.c:2709,5'
          Dst:             t_pop
        - Src:             'mail-storage.c:2709,5'
          Dst:             i_panic
    - functionName:    mailbox_get_last_mail_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_get_last_error
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:984,2'
          Dst:             mail_storage_get_last_error
    - functionName:    mailbox_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_get_last_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:977,9'
          Dst:             mail_storage_get_last_error
    - functionName:    mailbox_rename_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2605
      functionLinenumberEnd: 2699
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          521
      EdgeCount:       87
      CyclomaticComplexity: 26
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_storage_copy_error
        - mail_storage_copy_list_error
        - mail_storage_set_error
        - mail_storages_rename_compatible
        - mailbox_list_lock
        - mailbox_list_unlock
        - mailbox_lists_rename_compatible
        - mailbox_nfc_normalize
        - mailbox_rename_check_children
        - mailbox_verify_create_name
        - mailbox_verify_name
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2611,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:2614,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2618,6'
          Dst:             mailbox_verify_create_name
        - Src:             'mail-storage.c:2619,3'
          Dst:             mail_storage_copy_error
        - Src:             'mail-storage.c:2622,6'
          Dst:             mailbox_rename_check_children
        - Src:             'mail-storage.c:2626,7'
          Dst:             mail_storages_rename_compatible
        - Src:             'mail-storage.c:2628,7'
          Dst:             mailbox_lists_rename_compatible
        - Src:             'mail-storage.c:2630,3'
          Dst:             event_want_level
        - Src:             'mail-storage.c:2630,3'
          Dst:             e_debug
        - Src:             'mail-storage.c:2630,3'
          Dst:             event_send_abort
        - Src:             'mail-storage.c:2633,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2640,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2644,33'
          Dst:             strcmp
        - Src:             'mail-storage.c:2645,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2653,6'
          Dst:             mailbox_list_lock
        - Src:             'mail-storage.c:2654,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:2666,9'
          Dst:             mailbox_nfc_normalize
        - Src:             'mail-storage.c:2670,2'
          Dst:             mailbox_list_unlock
    - functionName:    mail_storage_copy_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_get_last_error
        - mail_storage_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:877,8'
          Dst:             mail_storage_get_last_error
        - Src:             'mail-storage.c:878,2'
          Dst:             mail_storage_set_error
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    get_path_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3624
      functionLinenumberEnd: 3643
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - mail_storage_copy_list_error
        - mailbox_list_get_path
        - p_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3635,8'
          Dst:             mailbox_list_get_path
        - Src:             'mail-storage.c:3637,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:3641,36'
          Dst:             p_strdup
    - functionName:    mailbox_verify_name_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1681
      functionLinenumberEnd: 1735
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          188
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - mail_namespace_get_sep
        - mail_storage_set_error
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_is_valid_name
        - mailbox_name_sanitize
        - mailbox_name_verify_extra_separators
        - mailbox_verify_name_prefix
        - strchr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1693,7'
          Dst:             mailbox_verify_name_prefix
        - Src:             'mail-storage.c:1696,6'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage.c:1695,4'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1694,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1700,13'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mail-storage.c:1701,11'
          Dst:             mail_namespace_get_sep
        - Src:             'mail-storage.c:1712,6'
          Dst:             strchr
        - Src:             'mail-storage.c:1713,59'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1713,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1723,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:1728,7'
          Dst:             mailbox_name_verify_extra_separators
        - Src:             'mail-storage.c:1729,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mail-storage.c:1731,4'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1730,3'
          Dst:             mail_storage_set_error
    - functionName:    mailbox_verify_name_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1647
      functionLinenumberEnd: 1678
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          176
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1654,6'
          Dst:             strncmp
        - Src:             'mail-storage.c:1661,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1667,3'
          Dst:             i_panic
    - functionName:    mailbox_name_verify_extra_separators
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1613
      functionLinenumberEnd: 1642
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    namespace_find_special_use
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1326
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          173
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - i_panic
        - mailbox_list_get_last_error
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - str_contains_special_use
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1298,8'
          Dst:             mailbox_list_iter_init
        - Src:             'mail-storage.c:1301,17'
          Dst:             mailbox_list_iter_next
        - Src:             'mail-storage.c:1307,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:1310,7'
          Dst:             str_contains_special_use
        - Src:             'mail-storage.c:1311,15'
          Dst:             t_strdup
        - Src:             'mail-storage.c:1316,6'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mail-storage.c:1319,11'
          Dst:             mailbox_list_get_last_error
        - Src:             'mail-storage.c:1320,3'
          Dst:             e_error
    - functionName:    str_contains_special_use
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1279
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - str_array_icase_find
        - t_pop
        - t_push
        - t_strsplit_spaces
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1269,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:1274,2'
          Dst:             t_push
        - Src:             'mail-storage.c:1275,10'
          Dst:             t_strsplit_spaces
        - Src:             'mail-storage.c:1276,9'
          Dst:             str_array_icase_find
        - Src:             'mail-storage.c:1277,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:1277,4'
          Dst:             i_panic
    - functionName:    mail_storage_match_class
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:300,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:304,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:307,6'
          Dst:             strcmp
    - functionName:    mail_storage_verify_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - mail_error_eacces_msg
        - stat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:234,6'
          Dst:             stat
        - Src:             'mail-storage.c:238,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:241,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:241,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:241,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:242,14'
          Dst:             mail_error_eacces_msg
        - Src:             'mail-storage.c:244,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:245,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:248,14'
          Dst:             t_strdup_printf
    - functionName:    mail_storage_create_ns_instance
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_set_ptr
        - mail_storage_service_user_get_settings_instance
        - settings_instance_dup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:336,3'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'mail-storage.c:338,22'
          Dst:             settings_instance_dup
        - Src:             'mail-storage.c:339,2'
          Dst:             event_set_ptr
    - functionName:    mail_storage_autodetect
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:166,12'
          Dst:             array_get_i
    - functionName:    pop3_uidl_format_has_md5
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          41
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - str_array_find
        - var_expand_program_create
        - var_expand_program_free
        - var_expand_program_variables
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:453,6'
          Dst:             var_expand_program_create
        - Src:             'mail-storage.c:454,3'
          Dst:             i_fatal
        - Src:             'mail-storage.c:455,28'
          Dst:             var_expand_program_variables
        - Src:             'mail-storage.c:456,17'
          Dst:             str_array_find
        - Src:             'mail-storage.c:457,2'
          Dst:             var_expand_program_free
    - functionName:    mail_storage_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_storage_match_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:322,7'
          Dst:             mail_storage_match_class
    - functionName:    mail_storage_create_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          131
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - event_want_log_level
        - mail_storage_verify_root
        - mailbox_list_get_root_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:268,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mail-storage.c:274,8'
          Dst:             event_want_log_level
        - Src:             'mail-storage.c:279,7'
          Dst:             mail_storage_verify_root
        - Src:             'mail-storage.c:280,4'
          Dst:             event_want_level
        - Src:             'mail-storage.c:280,4'
          Dst:             e_debug
        - Src:             'mail-storage.c:280,4'
          Dst:             event_send_abort
        - Src:             'mail-storage.c:292,9'
          Dst:             mail_storage_verify_root
    - functionName:    mail_storage_create_list
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          370
      EdgeCount:       72
      CyclomaticComplexity: 18
      functionsReached:
        - event_add_str
        - event_create
        - event_find_field_recursive
        - event_unref
        - mail_storage_create_ns_instance
        - mail_storage_is_mailbox_file
        - mailbox_list_create
        - pool_unref
        - settings_event_add_filter_name
        - settings_event_add_list_filter_name
        - settings_get
        - settings_override
        - t_str_lcase
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:352,6'
          Dst:             mail_storage_is_mailbox_file
        - Src:             'mail-storage.c:360,28'
          Dst:             event_create
        - Src:             'mail-storage.c:363,2'
          Dst:             settings_event_add_filter_name
        - Src:             'mail-storage.c:367,6'
          Dst:             event_find_field_recursive
        - Src:             'mail-storage.c:368,3'
          Dst:             event_add_str
        - Src:             'mail-storage.c:369,3'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-storage.c:374,3'
          Dst:             mail_storage_create_ns_instance
        - Src:             'mail-storage.c:375,3'
          Dst:             settings_override
        - Src:             'mail-storage.c:381,6'
          Dst:             settings_get
        - Src:             'mail-storage.c:383,3'
          Dst:             event_unref
        - Src:             'mail-storage.c:388,29'
          Dst:             event_create
        - Src:             'mail-storage.c:389,2'
          Dst:             event_unref
        - Src:             'mail-storage.c:392,3'
          Dst:             t_str_lcase
        - Src:             'mail-storage.c:391,44'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:391,2'
          Dst:             settings_event_add_filter_name
        - Src:             'mail-storage.c:393,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:396,3'
          Dst:             mail_storage_create_ns_instance
        - Src:             'mail-storage.c:397,3'
          Dst:             settings_override
        - Src:             'mail-storage.c:402,3'
          Dst:             mail_storage_create_ns_instance
        - Src:             'mail-storage.c:403,3'
          Dst:             settings_override
        - Src:             'mail-storage.c:409,6'
          Dst:             settings_get
        - Src:             'mail-storage.c:411,3'
          Dst:             event_unref
        - Src:             'mail-storage.c:423,4'
          Dst:             pool_unref
        - Src:             'mail-storage.c:424,4'
          Dst:             event_unref
        - Src:             'mail-storage.c:433,24'
          Dst:             event_create
        - Src:             'mail-storage.c:434,2'
          Dst:             event_add_str
        - Src:             'mail-storage.c:435,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-storage.c:437,12'
          Dst:             mailbox_list_create
        - Src:             'mail-storage.c:440,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:443,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:444,2'
          Dst:             event_unref
        - Src:             'mail-storage.c:445,2'
          Dst:             event_unref
    - functionName:    mail_storage_is_mailbox_file
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_get_class
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          186
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - mail_storage_autodetect
        - mail_user_get_home
        - mail_user_get_storage_class
        - pool_unref
        - settings_get
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:191,13'
          Dst:             strcmp
        - Src:             'mail-storage.c:194,19'
          Dst:             mail_user_get_storage_class
        - Src:             'mail-storage.c:196,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:206,6'
          Dst:             settings_get
        - Src:             'mail-storage.c:210,18'
          Dst:             mail_storage_autodetect
        - Src:             'mail-storage.c:213,3'
          Dst:             pool_unref
        - Src:             'mail-storage.c:217,8'
          Dst:             mail_user_get_home
        - Src:             'mail-storage.c:220,13'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:224,2'
          Dst:             pool_unref
    - functionName:    mailbox_sync_notify
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 4062
      functionLinenumberEnd: 4074
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:4063,34'
          Dst:             t_push
        - Src:             'mail-storage.c:4065,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:4065,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:4069,3'
          Dst:             event_create_passthrough
        - Src:             'mail-storage.c:4069,3'
          Dst:             event_want_level
        - Src:             'mail-storage.c:4069,3'
          Dst:             e_debug
        - Src:             'mail-storage.c:4069,3'
          Dst:             event_send_abort
    - functionName:    mailbox_lock_file_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 4014
      functionLinenumberEnd: 4057
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          147
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - binary_to_hex_append
        - mail_storage_get_lock_timeout
        - mail_storage_lock_create
        - mailbox_get_permissions
        - sha1_init
        - sha1_loop
        - sha1_result_libmysqlclient_craps_all_over
        - str_c
        - str_printfa
        - strlen
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:4019,9'
          Dst:             mailbox_get_permissions
        - Src:             'mail-storage.c:4022,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'mail-storage.c:4029,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:4032,19'
          Dst:             t_str_new
        - Src:             'mail-storage.c:4044,3'
          Dst:             str_printfa
        - Src:             'mail-storage.c:4047,3'
          Dst:             sha1_init
        - Src:             'mail-storage.c:4048,3'
          Dst:             sha1_loop
        - Src:             'mail-storage.c:4049,30'
          Dst:             strlen
        - Src:             'mail-storage.c:4049,3'
          Dst:             sha1_loop
        - Src:             'mail-storage.c:4050,3'
          Dst:             sha1_result_libmysqlclient_craps_all_over
        - Src:             'mail-storage.c:4051,3'
          Dst:             binary_to_hex_append
        - Src:             'mail-storage.c:4052,15'
          Dst:             str_c
        - Src:             'mail-storage.c:4056,9'
          Dst:             mail_storage_lock_create
    - functionName:    mailbox_get_permissions
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3689
      functionLinenumberEnd: 3699
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_set_permissions
        - mailbox_get_permissions_if_not_set
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3690,2'
          Dst:             mailbox_get_permissions_if_not_set
        - Src:             'mail-storage.c:3694,3'
          Dst:             mail_index_set_permissions
    - functionName:    mail_storage_get_lock_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3836
      functionLinenumberEnd: 3838
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_lock_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3993
      functionLinenumberEnd: 4009
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          86
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - file_create_locked
        - mail_storage_dotlock_create
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3998,10'
          Dst:             mail_storage_dotlock_create
        - Src:             'mail-storage.c:4002,6'
          Dst:             file_create_locked
        - Src:             'mail-storage.c:4004,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:4006,10'
          Dst:             __errno_location
    - functionName:    mail_storage_dotlock_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3968
      functionLinenumberEnd: 3987
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          114
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_create
        - file_lock_from_dotlock
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3979,12'
          Dst:             file_dotlock_create
        - Src:             'mail-storage.c:3981,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:3985,12'
          Dst:             file_lock_from_dotlock
    - functionName:    mailbox_get_permissions_if_not_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3670
      functionLinenumberEnd: 3686
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - geteuid
        - mailbox_list_get_permissions
        - mailbox_permissions_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3675,25'
          Dst:             geteuid
        - Src:             'mail-storage.c:3684,2'
          Dst:             mailbox_list_get_permissions
        - Src:             'mail-storage.c:3685,2'
          Dst:             mailbox_permissions_copy
    - functionName:    mail_set_mail_cache_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3943
      functionLinenumberEnd: 3961
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_cache_set_seq_corrupted_reason
        - mailbox_set_index_error
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3947,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3952,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3954,11'
          Dst:             t_strdup_vprintf
        - Src:             'mail-storage.c:3953,3'
          Dst:             mail_cache_set_seq_corrupted_reason
        - Src:             'mail-storage.c:3955,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3955,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3958,2'
          Dst:             mailbox_set_index_error
    - functionName:    mail_parse_human_timestamp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3902
      functionLinenumberEnd: 3940
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          327
      EdgeCount:       50
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - imap_parse_date
        - imap_parse_datetime
        - str_parse_get_interval
        - str_to_time
        - utc_mktime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3908,6'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3908,27'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3909,6'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3909,27'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3910,6'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3910,27'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3911,6'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3911,27'
          Dst:             __ctype_b_loc
        - Src:             'mail-storage.c:3918,18'
          Dst:             utc_mktime
        - Src:             'mail-storage.c:3921,13'
          Dst:             imap_parse_date
        - Src:             'mail-storage.c:3925,13'
          Dst:             imap_parse_datetime
        - Src:             'mail-storage.c:3929,13'
          Dst:             str_to_time
        - Src:             'mail-storage.c:3933,13'
          Dst:             str_parse_get_interval
    - functionName:    mailbox_settings_filters_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3860
      functionLinenumberEnd: 3879
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_idx_i
        - array_is_created_i
        - mailbox_get_name_without_prefix
        - settings_event_add_list_filter_name
        - wildcard_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3861,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:3865,3'
          Dst:             mailbox_get_name_without_prefix
        - Src:             'mail-storage.c:3868,3'
          Dst:             array_get_i
        - Src:             'mail-storage.c:3871,8'
          Dst:             wildcard_match
        - Src:             'mail-storage.c:3875,4'
          Dst:             array_idx_i
        - Src:             'mail-storage.c:3876,3'
          Dst:             settings_event_add_list_filter_name
    - functionName:    mail_storage_mailbox_create_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3884
      functionLinenumberEnd: 3897
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_category
        - event_add_str
        - event_create
        - event_drop_parent_log_prefixes
        - event_set_append_log_prefix
        - mailbox_name_sanitize
        - mailbox_settings_filters_add
        - settings_event_add_list_filter_name
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3885,24'
          Dst:             event_create
        - Src:             'mail-storage.c:3886,2'
          Dst:             event_add_category
        - Src:             'mail-storage.c:3888,2'
          Dst:             mailbox_settings_filters_add
        - Src:             'mail-storage.c:3889,2'
          Dst:             event_add_str
        - Src:             'mail-storage.c:3890,2'
          Dst:             event_add_str
        - Src:             'mail-storage.c:3891,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'mail-storage.c:3894,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'mail-storage.c:3896,19'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage.c:3895,37'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:3895,2'
          Dst:             event_set_append_log_prefix
    - functionName:    mailbox_create_missing_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3794
      functionLinenumberEnd: 3832
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          154
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - mailbox_get_path_to
        - mailbox_mkdir
        - mailbox_set_deleted
        - null_strcmp
        - stat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3799,13'
          Dst:             mailbox_get_path_to
        - Src:             'mail-storage.c:3801,6'
          Dst:             mailbox_get_path_to
        - Src:             'mail-storage.c:3804,6'
          Dst:             null_strcmp
        - Src:             'mail-storage.c:3818,6'
          Dst:             stat
        - Src:             'mail-storage.c:3822,6'
          Dst:             null_strcmp
        - Src:             'mail-storage.c:3823,6'
          Dst:             stat
        - Src:             'mail-storage.c:3823,34'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3823,53'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3827,3'
          Dst:             mailbox_set_deleted
        - Src:             'mail-storage.c:3831,9'
          Dst:             mailbox_mkdir
    - functionName:    mailbox_mkdir
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3761
      functionLinenumberEnd: 3790
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          125
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - mail_storage_copy_list_error
        - mail_storage_set_error
        - mail_storage_set_error_from_errno
        - mailbox_get_permissions
        - mailbox_list_get_root_forced
        - mailbox_list_mkdir_root
        - mailbox_set_critical
        - mkdir_parents_chgrp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3762,43'
          Dst:             mailbox_get_permissions
        - Src:             'mail-storage.c:3767,14'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mail-storage.c:3768,7'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mail-storage.c:3769,4'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:3774,6'
          Dst:             mkdir_parents_chgrp
        - Src:             'mail-storage.c:3778,11'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3780,11'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3781,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:3784,13'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'mail-storage.c:3787,3'
          Dst:             mailbox_set_critical
    - functionName:    mail_storage_set_error_from_errno
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          52
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_want_log_level
        - mail_error_from_errno
        - mail_storage_set_error
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1040,7'
          Dst:             mail_error_from_errno
        - Src:             'mail-storage.c:1042,6'
          Dst:             event_want_log_level
        - Src:             'mail-storage.c:1049,2'
          Dst:             mail_storage_set_error
    - functionName:    mailbox_create_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3710
      functionLinenumberEnd: 3757
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          172
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - i_panic
        - mail_storage_set_error
        - mail_storage_set_error_from_errno
        - mailbox_get_permissions
        - mailbox_set_critical
        - mailbox_set_deleted
        - open
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3711,43'
          Dst:             mailbox_get_permissions
        - Src:             'mail-storage.c:3715,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3719,13'
          Dst:             umask
        - Src:             'mail-storage.c:3720,7'
          Dst:             open
        - Src:             'mail-storage.c:3721,2'
          Dst:             umask
        - Src:             'mail-storage.c:3725,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3728,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3729,3'
          Dst:             mailbox_set_deleted
        - Src:             'mail-storage.c:3731,13'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3732,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:3735,13'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'mail-storage.c:3738,3'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:3743,7'
          Dst:             fchown
        - Src:             'mail-storage.c:3745,14'
          Dst:             __errno_location
        - Src:             'mail-storage.c:3747,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'mail-storage.c:3746,4'
          Dst:             mailbox_set_critical
        - Src:             'mail-storage.c:3751,4'
          Dst:             mailbox_set_critical
    - functionName:    mailbox_refresh_permissions
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3703
      functionLinenumberEnd: 3706
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_permissions
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3705,8'
          Dst:             mailbox_get_permissions
    - functionName:    mailbox_get_index_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3663
      functionLinenumberEnd: 3666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3664,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3665,2'
          Dst:             i_panic
    - functionName:    mailbox_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3656
      functionLinenumberEnd: 3659
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    45
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3657,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3658,2'
          Dst:             i_panic
    - functionName:    mailbox_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3611
      functionLinenumberEnd: 3612
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_using_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3600
      functionLinenumberEnd: 3607
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_copy_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3603,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3604,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3607,9'
          Dst:             mailbox_copy_int
    - functionName:    mailbox_copy_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3521
      functionLinenumberEnd: 3564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          233
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_get_backend_mail
        - mail_index_is_deleted
        - mailbox_save_add_pvt_flags
        - mailbox_save_cancel
        - mailbox_set_deleted
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3530,6'
          Dst:             mail_index_is_deleted
        - Src:             'mail-storage.c:3531,3'
          Dst:             mailbox_set_deleted
        - Src:             'mail-storage.c:3532,3'
          Dst:             mailbox_save_cancel
        - Src:             'mail-storage.c:3538,6'
          Dst:             mail_get_backend_mail
        - Src:             'mail-storage.c:3539,3'
          Dst:             mailbox_save_cancel
        - Src:             'mail-storage.c:3543,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3544,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3548,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3550,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3550,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3554,4'
          Dst:             mailbox_save_add_pvt_flags
        - Src:             'mail-storage.c:3557,2'
          Dst:             i_panic
    - functionName:    mailbox_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3498
      functionLinenumberEnd: 3512
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_save_context_reset
        - mailbox_save_dest_mail_close
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3502,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3504,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3504,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3509,2'
          Dst:             mailbox_save_dest_mail_close
        - Src:             'mail-storage.c:3511,2'
          Dst:             mailbox_save_context_reset
    - functionName:    mailbox_save_add_pvt_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3428
      functionLinenumberEnd: 3436
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      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:             'mail-storage.c:3431,7'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:3432,3'
          Dst:             array_create_i
        - Src:             'mail-storage.c:3433,9'
          Dst:             array_append_space_i
    - functionName:    mailbox_save_dest_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3237
      functionLinenumberEnd: 3243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3240,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3242,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3242,4'
          Dst:             i_panic
    - functionName:    mailbox_save_context_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3440
      functionLinenumberEnd: 3456
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          144
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3441,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3446,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:3447,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:3450,3'
          Dst:             i_panic
    - functionName:    mailbox_move
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3582
      functionLinenumberEnd: 3596
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_expunge
        - mailbox_copy_int
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3586,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3587,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3591,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3592,14'
          Dst:             mailbox_copy_int
        - Src:             'mail-storage.c:3593,4'
          Dst:             mail_expunge
        - Src:             'mail-storage.c:3594,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3594,4'
          Dst:             i_panic
    - functionName:    mailbox_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3567
      functionLinenumberEnd: 3578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_copy_int
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3570,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3571,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3574,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3575,9'
          Dst:             mailbox_copy_int
        - Src:             'mail-storage.c:3576,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3576,4'
          Dst:             i_panic
    - functionName:    mailbox_save_get_transaction
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3516
      functionLinenumberEnd: 3517
      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:    mailbox_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3459
      functionLinenumberEnd: 3495
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_expunge
        - mailbox_save_add_pvt_flags
        - mailbox_save_cancel
        - mailbox_save_context_reset
        - mailbox_save_continue
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3473,6'
          Dst:             mailbox_save_continue
        - Src:             'mail-storage.c:3474,3'
          Dst:             mailbox_save_cancel
        - Src:             'mail-storage.c:3480,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3482,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3482,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3487,4'
          Dst:             mailbox_save_add_pvt_flags
        - Src:             'mail-storage.c:3490,4'
          Dst:             mail_expunge
        - Src:             'mail-storage.c:3493,2'
          Dst:             mailbox_save_context_reset
    - functionName:    mailbox_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3416
      functionLinenumberEnd: 3422
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3419,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3421,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3421,4'
          Dst:             i_panic
    - functionName:    mailbox_save_begin_replace
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3410
      functionLinenumberEnd: 3412
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_save_begin
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3412,9'
          Dst:             mailbox_save_begin
    - functionName:    mailbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3368
      functionLinenumberEnd: 3405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          194
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_add_temp_wanted_fields
        - mail_index_is_deleted
        - mail_storage_set_error
        - mailbox_save_cancel
        - mailbox_set_deleted
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3372,6'
          Dst:             mail_index_is_deleted
        - Src:             'mail-storage.c:3373,3'
          Dst:             mailbox_set_deleted
        - Src:             'mail-storage.c:3374,3'
          Dst:             mailbox_save_cancel
        - Src:             'mail-storage.c:3380,3'
          Dst:             mail_add_temp_wanted_fields
        - Src:             'mail-storage.c:3387,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:3390,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:3393,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:3396,9'
          Dst:             t_push
        - Src:             'mail-storage.c:3398,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3398,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3401,3'
          Dst:             mailbox_save_cancel
    - functionName:    mailbox_save_get_dest_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3363
      functionLinenumberEnd: 3364
      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:    mailbox_save_set_pop3_order
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3356
      functionLinenumberEnd: 3360
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3357,2'
          Dst:             i_panic
    - functionName:    mailbox_save_set_pop3_uidl
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3346
      functionLinenumberEnd: 3352
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
        - p_free_internal
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3347,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3348,2'
          Dst:             strchr
        - Src:             'mail-storage.c:3348,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3350,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:3351,24'
          Dst:             i_strdup
    - functionName:    mailbox_save_set_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3338
      functionLinenumberEnd: 3343
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3339,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3341,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:3342,19'
          Dst:             i_strdup
    - functionName:    mailbox_save_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3333
      functionLinenumberEnd: 3335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_set_from_envelope
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3327
      functionLinenumberEnd: 3330
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3328,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:3329,28'
          Dst:             i_strdup
    - functionName:    mailbox_save_set_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3321
      functionLinenumberEnd: 3323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_set_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3314
      functionLinenumberEnd: 3317
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_set_min_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3308
      functionLinenumberEnd: 3310
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_copy_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3293
      functionLinenumberEnd: 3304
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_get_flags
        - mail_get_keywords
        - mailbox_keywords_create_valid
        - mailbox_keywords_unref
        - mailbox_save_set_flags
        - str_array_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3297,18'
          Dst:             mail_get_keywords
        - Src:             'mail-storage.c:3298,13'
          Dst:             str_array_length
        - Src:             'mail-storage.c:3299,3'
          Dst:             mailbox_keywords_create_valid
        - Src:             'mail-storage.c:3301,30'
          Dst:             mail_get_flags
        - Src:             'mail-storage.c:3301,2'
          Dst:             mailbox_save_set_flags
        - Src:             'mail-storage.c:3303,3'
          Dst:             mailbox_keywords_unref
    - functionName:    mailbox_save_set_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3279
      functionLinenumberEnd: 3290
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_get_private_flags_mask
        - mailbox_keywords_ref
        - mailbox_keywords_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3283,3'
          Dst:             mailbox_keywords_unref
        - Src:             'mail-storage.c:3285,28'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mail-storage.c:3285,28'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mail-storage.c:3285,28'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mail-storage.c:3286,32'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mail-storage.c:3289,3'
          Dst:             mailbox_keywords_ref
    - functionName:    mailbox_get_private_flags_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2856
      functionLinenumberEnd: 2863
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_save_context_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3270
      functionLinenumberEnd: 3274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3271,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3273,2'
          Dst:             mail_free
    - functionName:    mailbox_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3247
      functionLinenumberEnd: 3266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_alloc
        - mailbox_save_dest_mail_close
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3249,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3251,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3251,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3252,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3260,20'
          Dst:             mail_alloc
        - Src:             'mail-storage.c:3263,3'
          Dst:             mailbox_save_dest_mail_close
    - functionName:    mailbox_transaction_get_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3232
      functionLinenumberEnd: 3233
      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:    mailbox_transaction_set_max_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3226
      functionLinenumberEnd: 3228
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_transaction_set_max_modseq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3227,2'
          Dst:             mail_index_transaction_set_max_modseq
    - functionName:    mailbox_transaction_get_count
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3219
      functionLinenumberEnd: 3220
      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:    mailbox_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3207
      functionLinenumberEnd: 3216
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3212,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3214,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3214,4'
          Dst:             i_panic
    - functionName:    mailbox_transaction_commit_get_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3159
      functionLinenumberEnd: 3203
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          199
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - event_reason_begin
        - event_reason_end
        - i_panic
        - pool_unref
        - seq_range_count
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3174,12'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:3176,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3178,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3178,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3182,2'
          Dst:             seq_range_count
        - Src:             'mail-storage.c:3182,2'
          Dst:             array_count_i
        - Src:             'mail-storage.c:3182,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3190,2'
          Dst:             event_reason_end
        - Src:             'mail-storage.c:3202,3'
          Dst:             pool_unref
    - functionName:    mailbox_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3145
      functionLinenumberEnd: 3153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_transaction_commit_get_changes
        - pool_unref
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3151,8'
          Dst:             mailbox_transaction_commit_get_changes
        - Src:             'mail-storage.c:3152,2'
          Dst:             pool_unref
    - functionName:    mailbox_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3131
      functionLinenumberEnd: 3141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3134,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:3137,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3139,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3139,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3140,2'
          Dst:             i_panic
    - functionName:    mailbox_search_result_build
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3112
      functionLinenumberEnd: 3124
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_search_result_free
        - mailbox_search_result_save
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3117,8'
          Dst:             mailbox_search_init
        - Src:             'mail-storage.c:3118,14'
          Dst:             mailbox_search_result_save
        - Src:             'mail-storage.c:3119,9'
          Dst:             mailbox_search_next
        - Src:             'mail-storage.c:3121,8'
          Dst:             mailbox_search_deinit
        - Src:             'mail-storage.c:3123,3'
          Dst:             mailbox_search_result_free
    - functionName:    mailbox_search_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2983
      functionLinenumberEnd: 2995
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_search_args_ref
        - mail_search_args_simplify
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2984,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2986,2'
          Dst:             mail_search_args_ref
        - Src:             'mail-storage.c:2988,3'
          Dst:             mail_search_args_simplify
        - Src:             'mail-storage.c:2991,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2994,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2994,4'
          Dst:             i_panic
    - functionName:    mailbox_search_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3059
      functionLinenumberEnd: 3067
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_search_next_nonblock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3062,10'
          Dst:             mailbox_search_next_nonblock
    - functionName:    mailbox_search_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2999
      functionLinenumberEnd: 3010
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_args_unref
        - mailbox_search_results_initial_done
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3005,2'
          Dst:             mailbox_search_results_initial_done
        - Src:             'mail-storage.c:3006,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3008,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3008,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3009,2'
          Dst:             mail_search_args_unref
    - functionName:    mailbox_search_next_nonblock
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3071
      functionLinenumberEnd: 3088
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mailbox_search_notify
        - mailbox_search_results_add
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3078,2'
          Dst:             t_push
        - Src:             'mail-storage.c:3079,3'
          Dst:             mailbox_search_notify
        - Src:             'mail-storage.c:3081,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:3081,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:3085,3'
          Dst:             mailbox_search_results_add
    - functionName:    mailbox_search_notify
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3026
      functionLinenumberEnd: 3056
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          145
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - io_loop_time_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3040,3'
          Dst:             io_loop_time_refresh
    - functionName:    mailbox_search_mail_detach
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3097
      functionLinenumberEnd: 3106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:3102,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'mail-storage.c:3103,3'
          Dst:             i_unreached
        - Src:             'mail-storage.c:3105,2'
          Dst:             array_delete_i
    - functionName:    mailbox_search_seen_lost_data
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3091
      functionLinenumberEnd: 3092
      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:    mailbox_search_set_progress_hidden
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3021
      functionLinenumberEnd: 3023
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_search_reset_progress_start
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3014
      functionLinenumberEnd: 3017
      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:    mailbox_notify_changes_stop
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2966
      functionLinenumberEnd: 2975
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2967,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2972,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2974,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2974,4'
          Dst:             i_panic
    - functionName:    mailbox_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2954
      functionLinenumberEnd: 2963
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2955,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2960,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2962,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2962,4'
          Dst:             i_panic
    - functionName:    mailbox_sync_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2891
      functionLinenumberEnd: 2900
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2896,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2898,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2898,4'
          Dst:             i_panic
    - functionName:    mailbox_get_open_status
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2827
      functionLinenumberEnd: 2836
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_unreached
        - mailbox_get_status_set_defaults
        - t_pop
        - t_push
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2828,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2829,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2831,2'
          Dst:             mailbox_get_status_set_defaults
        - Src:             'mail-storage.c:2832,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2834,4'
          Dst:             i_unreached
        - Src:             'mail-storage.c:2835,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2835,4'
          Dst:             i_panic
    - functionName:    mailbox_get_status_set_defaults
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2796
      functionLinenumberEnd: 2804
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2809
      functionLinenumberEnd: 2822
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mailbox_get_status_set_defaults
        - mailbox_verify_existing_name
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2810,2'
          Dst:             mailbox_get_status_set_defaults
        - Src:             'mail-storage.c:2811,6'
          Dst:             mailbox_verify_existing_name
        - Src:             'mail-storage.c:2815,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2817,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2817,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2820,2'
          Dst:             i_panic
    - functionName:    mailbox_backends_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2780
      functionLinenumberEnd: 2791
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2783,6'
          Dst:             strcmp
    - functionName:    mailbox_is_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2772
      functionLinenumberEnd: 2775
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2773,2'
          Dst:             i_panic
    - functionName:    mailbox_get_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2762
      functionLinenumberEnd: 2763
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_get_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2757
      functionLinenumberEnd: 2758
      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:    mailbox_delete_empty
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2493
      functionLinenumberEnd: 2501
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2499,8'
          Dst:             mailbox_delete
    - functionName:    mailbox_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2484
      functionLinenumberEnd: 2489
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_delete_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2486,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2487,9'
          Dst:             mailbox_delete_real
        - Src:             'mail-storage.c:2488,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2488,4'
          Dst:             i_panic
    - functionName:    mailbox_delete_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2434
      functionLinenumberEnd: 2481
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          176
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - mail_storage_copy_list_error
        - mail_storage_set_error
        - mailbox_close
        - mailbox_close_reset_path
        - mailbox_get_last_mail_error
        - mailbox_list_lock
        - mailbox_list_unlock
        - mailbox_mark_index_deleted
        - mailbox_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2439,3'
          Dst:             mail_storage_set_error
        - Src:             'mail-storage.c:2444,32'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:2447,6'
          Dst:             mailbox_open
        - Src:             'mail-storage.c:2448,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage.c:2450,4'
          Dst:             event_reason_end
        - Src:             'mail-storage.c:2456,6'
          Dst:             mailbox_list_lock
        - Src:             'mail-storage.c:2457,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mail-storage.c:2467,7'
          Dst:             mailbox_mark_index_deleted
        - Src:             'mail-storage.c:2471,3'
          Dst:             mailbox_list_unlock
        - Src:             'mail-storage.c:2474,2'
          Dst:             mailbox_close
        - Src:             'mail-storage.c:2478,2'
          Dst:             mailbox_close_reset_path
        - Src:             'mail-storage.c:2479,2'
          Dst:             event_reason_end
    - functionName:    mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2356
      functionLinenumberEnd: 2374
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          133
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - guid_128_is_empty
        - i_panic
        - mailbox_verify_existing_name
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2359,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:2363,6'
          Dst:             mailbox_verify_existing_name
        - Src:             'mail-storage.c:2366,32'
          Dst:             event_reason_begin
        - Src:             'mail-storage.c:2367,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2369,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2369,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:2370,7'
          Dst:             guid_128_is_empty
        - Src:             'mail-storage.c:2372,2'
          Dst:             event_reason_end
    - functionName:    mailbox_has_special_use
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2268
      functionLinenumberEnd: 2273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_array_const_string_join
        - str_contains_special_use
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2271,34'
          Dst:             p_array_const_string_join
        - Src:             'mail-storage.c:2271,9'
          Dst:             str_contains_special_use
    - functionName:    mailbox_is_any_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2263
      functionLinenumberEnd: 2264
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_get_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2767
      functionLinenumberEnd: 2768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_get_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2752
      functionLinenumberEnd: 2753
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2247
      functionLinenumberEnd: 2260
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_get_namespace
        - mailbox_get_vname
        - strcasecmp
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2248,31'
          Dst:             mailbox_get_namespace
        - Src:             'mail-storage.c:2254,10'
          Dst:             mailbox_get_vname
        - Src:             'mail-storage.c:2255,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:2258,9'
          Dst:             strcasecmp
        - Src:             'mail-storage.c:2259,3'
          Dst:             strcasecmp
    - functionName:    mailbox_get_enabled_features
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2186
      functionLinenumberEnd: 2187
      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:    mailbox_enable
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2174
      functionLinenumberEnd: 2183
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mailbox_verify_name
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2175,6'
          Dst:             mailbox_verify_name
        - Src:             'mail-storage.c:2179,2'
          Dst:             t_push
        - Src:             'mail-storage.c:2181,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:2181,4'
          Dst:             i_panic
    - functionName:    mailbox_open_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2169
      functionLinenumberEnd: 2170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_open_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2170,9'
          Dst:             mailbox_open_full
    - functionName:    mail_storage_settings_to_index_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 3843
      functionLinenumberEnd: 3854
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_alloc_index_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2120
      functionLinenumberEnd: 2144
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_alloc_cache_get
        - mail_index_set_fsync_mode
        - mail_index_set_lock_method
        - mail_storage_get_lock_timeout
        - mailbox_create_missing_dir
        - mailbox_get_path_to
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2127,8'
          Dst:             mailbox_get_path_to
        - Src:             'mail-storage.c:2132,6'
          Dst:             mailbox_create_missing_dir
        - Src:             'mail-storage.c:2137,20'
          Dst:             t_strconcat
        - Src:             'mail-storage.c:2136,19'
          Dst:             mail_index_alloc_cache_get
        - Src:             'mail-storage.c:2138,2'
          Dst:             mail_index_set_fsync_mode
        - Src:             'mail-storage.c:2142,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'mail-storage.c:2140,2'
          Dst:             mail_index_set_lock_method
    - functionName:    mailbox_open_index_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2147
      functionLinenumberEnd: 2166
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_open
        - mail_index_view_open
        - mail_storage_settings_to_index_flags
        - mailbox_alloc_index_pvt
        - mailbox_get_private_flags_mask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2153,6'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mail-storage.c:2156,13'
          Dst:             mailbox_alloc_index_pvt
        - Src:             'mail-storage.c:2159,3'
          Dst:             mail_storage_settings_to_index_flags
        - Src:             'mail-storage.c:2162,6'
          Dst:             mail_index_open
        - Src:             'mail-storage.c:2164,18'
          Dst:             mail_index_view_open
    - functionName:    mailbox_skip_create_name_restrictions
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_suppress_nfc_name_change_notification
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1536
      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:    mailbox_was_vname_changed_by_nfc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    namespaces_find_special_use
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1361
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_namespace_find_inbox
        - namespace_find_special_use
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1341,21'
          Dst:             mail_namespace_find_inbox
        - Src:             'mail-storage.c:1342,8'
          Dst:             namespace_find_special_use
        - Src:             'mail-storage.c:1353,9'
          Dst:             namespace_find_special_use
    - functionName:    mailbox_alloc_for_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1366
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          213
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mail_namespace_find
        - mail_namespace_find_inbox
        - mailbox_alloc
        - namespaces_find_special_use
        - strcasecmp
        - strcmp
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1374,9'
          Dst:             namespaces_find_special_use
        - Src:             'mail-storage.c:1377,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1378,12'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1382,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:1383,12'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1390,8'
          Dst:             mail_namespace_find
        - Src:             'mail-storage.c:1396,7'
          Dst:             strcmp
        - Src:             'mail-storage.c:1401,9'
          Dst:             mail_namespace_find_inbox
        - Src:             'mail-storage.c:1404,7'
          Dst:             strcasecmp
        - Src:             'mail-storage.c:1411,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:1412,8'
          Dst:             mailbox_alloc
    - functionName:    mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 2840
      functionLinenumberEnd: 2853
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - guid_128_is_empty
        - i_panic
        - mailbox_verify_existing_name
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:2842,6'
          Dst:             mailbox_verify_existing_name
        - Src:             'mail-storage.c:2850,2'
          Dst:             guid_128_is_empty
        - Src:             'mail-storage.c:2850,2'
          Dst:             i_panic
    - functionName:    mailbox_alloc_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - guid_128_to_string
        - mailbox_alloc
        - mailbox_alloc_guid
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_get_metadata
        - mailbox_guid_cache_find
        - mailbox_guid_cache_refresh
        - memcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:1227,6'
          Dst:             mailbox_guid_cache_find
        - Src:             'mail-storage.c:1230,9'
          Dst:             mailbox_alloc
        - Src:             'mail-storage.c:1231,7'
          Dst:             mailbox_get_metadata
        - Src:             'mail-storage.c:1233,14'
          Dst:             memcmp
        - Src:             'mail-storage.c:1236,4'
          Dst:             mailbox_free
        - Src:             'mail-storage.c:1237,4'
          Dst:             mailbox_guid_cache_refresh
        - Src:             'mail-storage.c:1238,11'
          Dst:             mailbox_alloc_guid
        - Src:             'mail-storage.c:1243,3'
          Dst:             guid_128_to_string
        - Src:             'mail-storage.c:1243,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:1243,3'
          Dst:             e_error
        - Src:             'mail-storage.c:1248,3'
          Dst:             mailbox_free
        - Src:             'mail-storage.c:1251,6'
          Dst:             guid_128_to_string
        - Src:             'mail-storage.c:1250,11'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1257,6'
          Dst:             guid_128_to_string
        - Src:             'mail-storage.c:1256,11'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:1259,8'
          Dst:             mailbox_alloc
    - functionName:    mail_storage_purge
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 938
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:943,2'
          Dst:             t_push
        - Src:             'mail-storage.c:945,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:945,4'
          Dst:             i_panic
    - functionName:    mail_storage_set_callbacks
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 935
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_storage_get_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 926
      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:    mail_storage_get_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 921
      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:    mail_get_last_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          145
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mail_storage_get_last_error
        - mail_storage_get_last_internal_error
        - mailbox_get_last_internal_error
        - mailbox_get_storage
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:849,33'
          Dst:             mailbox_get_storage
        - Src:             'mail-storage.c:852,6'
          Dst:             strcmp
        - Src:             'mail-storage.c:853,10'
          Dst:             mail_storage_get_last_internal_error
        - Src:             'mail-storage.c:857,10'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage.c:862,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:865,9'
          Dst:             mail_storage_get_last_error
    - functionName:    mail_set_critical
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - i_panic
        - mail_event
        - mail_storage_set_critical_error
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:774,2'
          Dst:             t_push
        - Src:             'mail-storage.c:775,31'
          Dst:             t_strdup_vprintf
        - Src:             'mail-storage.c:776,3'
          Dst:             mail_storage_set_critical_error
        - Src:             'mail-storage.c:778,3'
          Dst:             mail_event
        - Src:             'mail-storage.c:778,3'
          Dst:             e_error
        - Src:             'mail-storage.c:779,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:779,4'
          Dst:             i_panic
    - functionName:    mail_storage_set_critical
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - i_panic
        - mail_storage_set_critical_error
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    69
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:747,2'
          Dst:             t_push
        - Src:             'mail-storage.c:748,21'
          Dst:             t_strdup_vprintf
        - Src:             'mail-storage.c:749,3'
          Dst:             mail_storage_set_critical_error
        - Src:             'mail-storage.c:750,3'
          Dst:             e_error
        - Src:             'mail-storage.c:751,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:751,4'
          Dst:             i_panic
    - functionName:    mail_storage_clear_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:674,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:676,2'
          Dst:             p_free_internal
        - Src:             'mail-storage.c:677,2'
          Dst:             p_free_internal
    - functionName:    mail_storage_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          236
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_free_i
        - array_is_created_i
        - event_unref
        - fs_unref
        - i_panic
        - mail_index_alloc_cache_destroy_unrefed
        - mail_storage_clear_error
        - pool_unref
        - settings_instance_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:618,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:628,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:632,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:637,2'
          Dst:             mail_storage_clear_error
        - Src:             'mail-storage.c:638,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:639,3'
          Dst:             array_count_i
        - Src:             'mail-storage.c:639,3'
          Dst:             i_panic
        - Src:             'mail-storage.c:640,3'
          Dst:             array_free_i
        - Src:             'mail-storage.c:642,2'
          Dst:             fs_unref
        - Src:             'mail-storage.c:643,2'
          Dst:             settings_instance_free
        - Src:             'mail-storage.c:644,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:645,2'
          Dst:             event_unref
        - Src:             'mail-storage.c:648,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:650,2'
          Dst:             mail_index_alloc_cache_destroy_unrefed
    - functionName:    mail_storage_create_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          626
      EdgeCount:       101
      CyclomaticComplexity: 24
      functionsReached:
        - array_create_i
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - event_set_ptr
        - event_unref
        - fs_init_auto
        - hook_mail_storage_created
        - i_panic
        - mail_namespace_add_storage
        - mail_storage_create_list
        - mail_storage_create_root
        - mail_storage_find
        - mail_storage_get_class
        - mail_storage_service_user_get_settings_instance
        - mail_user_init_fs_parameters
        - pool_ref
        - pool_unref
        - pop3_uidl_format_has_md5
        - settings_get
        - settings_instance_dup
        - settings_override
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:475,6'
          Dst:             settings_get
        - Src:             'mail-storage.c:486,18'
          Dst:             mail_storage_get_class
        - Src:             'mail-storage.c:489,2'
          Dst:             pool_unref
        - Src:             'mail-storage.c:495,7'
          Dst:             mail_storage_create_list
        - Src:             'mail-storage.c:500,8'
          Dst:             mail_storage_create_root
        - Src:             'mail-storage.c:505,12'
          Dst:             mail_storage_find
        - Src:             'mail-storage.c:510,3'
          Dst:             mail_namespace_add_storage
        - Src:             'mail-storage.c:520,7'
          Dst:             pop3_uidl_format_has_md5
        - Src:             'mail-storage.c:529,2'
          Dst:             pool_ref
        - Src:             'mail-storage.c:535,19'
          Dst:             event_create
        - Src:             'mail-storage.c:537,3'
          Dst:             event_add_category
        - Src:             'mail-storage.c:539,19'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:538,2'
          Dst:             event_set_append_log_prefix
        - Src:             'mail-storage.c:540,2'
          Dst:             array_create_i
        - Src:             'mail-storage.c:544,14'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:546,3'
          Dst:             pool_unref
        - Src:             'mail-storage.c:547,3'
          Dst:             event_unref
        - Src:             'mail-storage.c:548,3'
          Dst:             pool_unref
        - Src:             'mail-storage.c:560,3'
          Dst:             mail_user_init_fs_parameters
        - Src:             'mail-storage.c:563,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'mail-storage.c:566,4'
          Dst:             settings_instance_dup
        - Src:             'mail-storage.c:567,3'
          Dst:             settings_override
        - Src:             'mail-storage.c:570,3'
          Dst:             settings_override
        - Src:             'mail-storage.c:574,25'
          Dst:             event_create
        - Src:             'mail-storage.c:575,3'
          Dst:             event_set_ptr
        - Src:             'mail-storage.c:577,7'
          Dst:             fs_init_auto
        - Src:             'mail-storage.c:579,15'
          Dst:             t_strdup_printf
        - Src:             'mail-storage.c:580,4'
          Dst:             event_unref
        - Src:             'mail-storage.c:582,4'
          Dst:             pool_unref
        - Src:             'mail-storage.c:583,4'
          Dst:             event_unref
        - Src:             'mail-storage.c:584,4'
          Dst:             pool_unref
        - Src:             'mail-storage.c:587,3'
          Dst:             event_unref
        - Src:             'mail-storage.c:590,2'
          Dst:             t_push
        - Src:             'mail-storage.c:591,3'
          Dst:             hook_mail_storage_created
        - Src:             'mail-storage.c:592,4'
          Dst:             t_pop
        - Src:             'mail-storage.c:592,4'
          Dst:             i_panic
        - Src:             'mail-storage.c:594,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:597,2'
          Dst:             mail_namespace_add_storage
    - functionName:    mail_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_storage_create_real
        - t_pop_pass_str
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:607,2'
          Dst:             t_push
        - Src:             'mail-storage.c:608,9'
          Dst:             mail_storage_create_real
        - Src:             'mail-storage.c:610,4'
          Dst:             t_pop_pass_str
        - Src:             'mail-storage.c:610,4'
          Dst:             i_panic
    - functionName:    mail_storage_class_unregister
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 139
      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:             'mail-storage.c:136,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'mail-storage.c:137,3'
          Dst:             i_unreached
        - Src:             'mail-storage.c:138,2'
          Dst:             array_delete_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_storage_find_class
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:146,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:148,12'
          Dst:             array_get_i
        - Src:             'mail-storage.c:150,7'
          Dst:             strcasecmp
    - functionName:    mail_storage_class_register
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - i_panic
        - mail_storage_find_class
        - settings_info_register
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:123,2'
          Dst:             mail_storage_find_class
        - Src:             'mail-storage.c:123,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:126,3'
          Dst:             settings_info_register
        - Src:             'mail-storage.c:129,2'
          Dst:             array_append_i
    - functionName:    mail_storage_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         22
      ICount:          91
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - array_is_created_i
        - dsasl_clients_deinit
        - i_panic
        - mail_search_mime_register_deinit
        - mail_search_register_deinit
        - mail_storage_hooks_deinit
        - mailbox_attributes_deinit
        - mailbox_lists_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:103,2'
          Dst:             i_panic
        - Src:             'mail-storage.c:107,3'
          Dst:             mail_search_register_deinit
        - Src:             'mail-storage.c:109,3'
          Dst:             mail_search_register_deinit
        - Src:             'mail-storage.c:111,3'
          Dst:             mail_search_register_deinit
        - Src:             'mail-storage.c:112,2'
          Dst:             mail_search_mime_register_deinit
        - Src:             'mail-storage.c:113,6'
          Dst:             array_is_created_i
        - Src:             'mail-storage.c:114,3'
          Dst:             array_free_i
        - Src:             'mail-storage.c:115,2'
          Dst:             mail_storage_hooks_deinit
        - Src:             'mail-storage.c:116,2'
          Dst:             mailbox_lists_deinit
        - Src:             'mail-storage.c:117,2'
          Dst:             mailbox_attributes_deinit
        - Src:             'mail-storage.c:118,2'
          Dst:             dsasl_clients_deinit
    - functionName:    mail_storage_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - dsasl_clients_init
        - mail_storage_hooks_init
        - mail_storage_register_all
        - mailbox_attributes_init
        - mailbox_list_register_all
        - mailbox_lists_init
        - settings_info_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage.c:91,2'
          Dst:             dsasl_clients_init
        - Src:             'mail-storage.c:92,2'
          Dst:             mailbox_attributes_init
        - Src:             'mail-storage.c:93,2'
          Dst:             mailbox_lists_init
        - Src:             'mail-storage.c:94,2'
          Dst:             mail_storage_hooks_init
        - Src:             'mail-storage.c:95,2'
          Dst:             array_create_i
        - Src:             'mail-storage.c:96,2'
          Dst:             mail_storage_register_all
        - Src:             'mail-storage.c:97,2'
          Dst:             mailbox_list_register_all
        - Src:             'mail-storage.c:98,2'
          Dst:             settings_info_register
    - functionName:    log_buffer_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          136
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append_buf
        - ftruncate
        - i_panic
        - mail_index_file_set_syscall_error
        - mail_index_move_to_memory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:46,6'
          Dst:             ftruncate
        - Src:             'mail-transaction-log-append.c:47,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-append.c:52,6'
          Dst:             mail_index_move_to_memory
        - Src:             'mail-transaction-log-append.c:54,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:56,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:57,2'
          Dst:             buffer_append_buf
    - functionName:    ftruncate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_buffer_write
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          297
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - buffer_append
        - buffer_append_buf
        - buffer_create_dynamic
        - fdatasync
        - i_panic
        - log_buffer_move_to_memory
        - mail_index_file_set_syscall_error
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:71,19'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-append.c:74,3'
          Dst:             buffer_append_buf
        - Src:             'mail-transaction-log-append.c:79,6'
          Dst:             write_full
        - Src:             'mail-transaction-log-append.c:81,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-append.c:84,10'
          Dst:             log_buffer_move_to_memory
        - Src:             'mail-transaction-log-append.c:90,7'
          Dst:             fdatasync
        - Src:             'mail-transaction-log-append.c:91,4'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-append.c:94,11'
          Dst:             log_buffer_move_to_memory
        - Src:             'mail-transaction-log-append.c:103,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:105,3'
          Dst:             buffer_append
    - functionName:    log_append_sync_offset_if_needed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          181
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_create_from_data
        - i_panic
        - mail_transaction_log_append_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:129,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:157,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:159,2'
          Dst:             buffer_create_from_data
        - Src:             'mail-transaction-log-append.c:160,6'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-append.c:163,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-append.c:165,2'
          Dst:             mail_transaction_log_append_add
    - functionName:    mail_transaction_log_append_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          163
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append
        - i_panic
        - mail_index_uint32_to_offset
        - mail_transaction_update_modseq
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:15,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:16,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-append.c:29,13'
          Dst:             mail_index_uint32_to_offset
        - Src:             'mail-transaction-log-append.c:31,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-append.c:32,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-append.c:34,2'
          Dst:             mail_transaction_update_modseq
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_append_locked
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_delete
        - buffer_get_space_unsafe
        - buffer_set_used_size
        - ftruncate
        - log_append_sync_offset_if_needed
        - log_buffer_write
        - mail_index_file_set_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:179,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-transaction-log-append.c:182,8'
          Dst:             ftruncate
        - Src:             'mail-transaction-log-append.c:183,5'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-append.c:190,13'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-transaction-log-append.c:201,3'
          Dst:             buffer_delete
        - Src:             'mail-transaction-log-append.c:204,2'
          Dst:             log_append_sync_offset_if_needed
        - Src:             'mail-transaction-log-append.c:205,6'
          Dst:             log_buffer_write
    - functionName:    mail_transaction_log_append_commit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_free
        - mail_transaction_log_append_locked
        - mail_transaction_log_file_unlock
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:243,8'
          Dst:             mail_transaction_log_append_locked
        - Src:             'mail-transaction-log-append.c:245,3'
          Dst:             mail_transaction_log_file_unlock
        - Src:             'mail-transaction-log-append.c:247,2'
          Dst:             buffer_free
        - Src:             'mail-transaction-log-append.c:248,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_append_begin
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-append.c'
      linkageType:     externalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_create_dynamic
        - mail_transaction_log_append_add
        - mail_transaction_log_lock_head
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-append.c:219,7'
          Dst:             mail_transaction_log_lock_head
        - Src:             'mail-transaction-log-append.c:222,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-transaction-log-append.c:222,8'
          Dst:             p_malloc
        - Src:             'mail-transaction-log-append.c:224,16'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-append.c:228,2'
          Dst:             mail_transaction_log_append_add
    - functionName:    mail_transaction_log_file_need_nfs_flush
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_file_read_more
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          144
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - buffer_append_space_unsafe
        - buffer_set_used_size
        - log_file_set_syscall_error
        - pread
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1336,10'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:1337,9'
          Dst:             pread
        - Src:             'mail-transaction-log-file.c:1342,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-transaction-log-file.c:1343,34'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1348,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1349,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1353,3'
          Dst:             log_file_set_syscall_error
    - functionName:    log_file_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_file_set_syscall_error
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:27,2'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    mail_transaction_log_file_insert_read
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          124
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - buffer_copy
        - buffer_get_space_unsafe
        - buffer_set_used_size
        - log_file_set_syscall_error
        - mail_transaction_log_file_set_corrupted
        - pread_full
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1295,2'
          Dst:             buffer_copy
        - Src:             'mail-transaction-log-file.c:1297,9'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-transaction-log-file.c:1298,8'
          Dst:             pread_full
        - Src:             'mail-transaction-log-file.c:1306,2'
          Dst:             buffer_copy
        - Src:             'mail-transaction-log-file.c:1307,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-transaction-log-file.c:1311,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1313,13'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1315,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1318,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1319,15'
          Dst:             t_strdup_printf
    - functionName:    mail_transaction_log_file_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_set_error
        - mail_transaction_log_mark_corrupted
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:71,2'
          Dst:             mail_transaction_log_mark_corrupted
        - Src:             'mail-transaction-log-file.c:74,2'
          Dst:             t_push
        - Src:             'mail-transaction-log-file.c:79,4'
          Dst:             t_strdup_vprintf
        - Src:             'mail-transaction-log-file.c:75,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:80,4'
          Dst:             t_pop
        - Src:             'mail-transaction-log-file.c:80,4'
          Dst:             i_panic
    - functionName:    mail_transaction_log_mark_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - fcntl
        - mail_index_file_set_syscall_error
        - pwrite_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:45,10'
          Dst:             fcntl
        - Src:             'mail-transaction-log-file.c:47,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:51,6'
          Dst:             fcntl
        - Src:             'mail-transaction-log-file.c:52,3'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:56,6'
          Dst:             pwrite_full
        - Src:             'mail-transaction-log-file.c:58,3'
          Dst:             mail_index_file_set_syscall_error
    - 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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_file_mmap
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1517
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          135
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - buffer_create_from_const_data
        - buffer_free
        - log_file_set_syscall_error
        - mmap
        - mmap_get_page_size
        - posix_madvise
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1487,2'
          Dst:             buffer_free
        - Src:             'mail-transaction-log-file.c:1490,20'
          Dst:             mmap
        - Src:             'mail-transaction-log-file.c:1496,37'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1496,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1499,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1505,24'
          Dst:             mmap_get_page_size
        - Src:             'mail-transaction-log-file.c:1506,11'
          Dst:             posix_madvise
        - Src:             'mail-transaction-log-file.c:1506,3'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1508,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1509,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1512,2'
          Dst:             buffer_create_from_const_data
    - functionName:    mmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    posix_madvise
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_file_fail_dupe
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_set_error
        - mail_transaction_log_mark_corrupted
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:490,6'
          Dst:             strcmp
        - Src:             'mail-transaction-log-file.c:493,3'
          Dst:             mail_transaction_log_mark_corrupted
        - Src:             'mail-transaction-log-file.c:500,3'
          Dst:             mail_index_set_error
    - functionName:    mail_transaction_log_file_read_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - buffer_append_space_unsafe
        - buffer_create_dynamic
        - buffer_set_used_size
        - i_memcpy
        - i_panic
        - mmap_get_page_size
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:446,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:449,24'
          Dst:             mmap_get_page_size
        - Src:             'mail-transaction-log-file.c:453,18'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-file.c:456,10'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:467,9'
          Dst:             pread
        - Src:             'mail-transaction-log-file.c:474,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-transaction-log-file.c:475,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    log_write_ext_hdr_init_data
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          171
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_append_zero
        - buffer_get_space_unsafe
        - mail_index_uint32_to_offset
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:667,9'
          Dst:             array_idx_i
        - Src:             'mail-transaction-log-file.c:671,8'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:674,10'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:679,21'
          Dst:             strlen
        - Src:             'mail-transaction-log-file.c:680,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-file.c:682,3'
          Dst:             buffer_append_zero
        - Src:             'mail-transaction-log-file.c:684,8'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-transaction-log-file.c:685,14'
          Dst:             mail_index_uint32_to_offset
        - Src:             'mail-transaction-log-file.c:689,8'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:692,12'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-transaction-log-file.c:694,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-file.c:696,8'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-transaction-log-file.c:697,14'
          Dst:             mail_index_uint32_to_offset
    - functionName:    log_file_track_mailbox_sync_offset_hdr
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          177
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - mail_transaction_log_file_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1004,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1010,3'
          Dst:             i_memcpy
        - Src:             'mail-transaction-log-file.c:1018,4'
          Dst:             mail_transaction_log_file_set_corrupted
    - functionName:    log_file_track_sync
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          306
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - log_file_track_mailbox_sync_offset_hdr
        - mail_transaction_update_modseq
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-transaction-log-file.c:1131,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1125,2'
          Dst:             mail_transaction_update_modseq
        - Src:             'mail-transaction-log-file.c:1134,9'
          Dst:             log_file_track_mailbox_sync_offset_hdr
    - functionName:    mail_transaction_update_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          235
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - flag_updates_have_non_internal
        - i_panic
        - mail_index_offset_to_uint32
        - memcmp
      functionUses:    5
      BranchProfiles:
        - Branch String:   'mail-transaction-log-file.c:1079,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1054,15'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-file.c:1055,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1068,7'
          Dst:             memcmp
        - Src:             'mail-transaction-log-file.c:1099,7'
          Dst:             flag_updates_have_non_internal
    - functionName:    flag_updates_have_non_internal
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1046
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_file_sync
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          393
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - buffer_get_data
        - fstat
        - i_panic
        - log_file_set_syscall_error
        - log_file_track_sync
        - mail_index_flush_read_cache
        - mail_index_offset_to_uint32
        - mail_transaction_log_file_set_corrupted
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1192,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1196,9'
          Dst:             buffer_get_data
        - Src:             'mail-transaction-log-file.c:1198,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1201,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1209,16'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-file.c:1215,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1217,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1225,14'
          Dst:             log_file_track_sync
        - Src:             'mail-transaction-log-file.c:1244,7'
          Dst:             fstat
        - Src:             'mail-transaction-log-file.c:1245,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1246,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1264,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1268,3'
          Dst:             mail_index_flush_read_cache
        - Src:             'mail-transaction-log-file.c:1275,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1279,3'
          Dst:             mail_transaction_log_file_set_corrupted
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_file_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1668
      functionLinenumberEnd: 1706
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          188
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_free
        - close
        - i_panic
        - i_strdup
        - log_file_set_syscall_error
        - mail_index_set_error
        - mail_transaction_log_file_read
        - munmap
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1678,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1680,9'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-file.c:1681,3'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-file.c:1682,3'
          Dst:             buffer_free
        - Src:             'mail-transaction-log-file.c:1686,7'
          Dst:             munmap
        - Src:             'mail-transaction-log-file.c:1687,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1691,9'
          Dst:             mail_transaction_log_file_read
        - Src:             'mail-transaction-log-file.c:1693,4'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:1699,6'
          Dst:             close
        - Src:             'mail-transaction-log-file.c:1700,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1703,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log-file.c:1704,19'
          Dst:             i_strdup
    - functionName:    mail_transaction_log_file_read
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1430
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          276
      EdgeCount:       60
      CyclomaticComplexity: 14
      functionsReached:
        - buffer_create_dynamic
        - buffer_set_used_size
        - i_panic
        - mail_transaction_log_file_insert_read
        - mail_transaction_log_file_need_nfs_flush
        - mail_transaction_log_file_read
        - mail_transaction_log_file_read_more
        - mail_transaction_log_file_sync
        - nfs_flush_attr_cache_fd_locked
        - nfs_flush_attr_cache_unlocked
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1388,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1398,4'
          Dst:             nfs_flush_attr_cache_unlocked
        - Src:             'mail-transaction-log-file.c:1400,4'
          Dst:             nfs_flush_attr_cache_fd_locked
        - Src:             'mail-transaction-log-file.c:1405,9'
          Dst:             mail_transaction_log_file_insert_read
        - Src:             'mail-transaction-log-file.c:1412,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-file.c:1416,13'
          Dst:             mail_transaction_log_file_read_more
        - Src:             'mail-transaction-log-file.c:1420,4'
          Dst:             mail_transaction_log_file_need_nfs_flush
        - Src:             'mail-transaction-log-file.c:1422,10'
          Dst:             mail_transaction_log_file_read
        - Src:             'mail-transaction-log-file.c:1423,20'
          Dst:             mail_transaction_log_file_sync
        - Src:             'mail-transaction-log-file.c:1424,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1426,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1427,2'
          Dst:             buffer_set_used_size
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_file_munmap
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1521
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
        - i_panic
        - log_file_set_syscall_error
        - munmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1525,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1526,6'
          Dst:             munmap
        - Src:             'mail-transaction-log-file.c:1527,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1530,2'
          Dst:             buffer_free
    - functionName:    mail_transaction_log_file_map_mmap
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1536
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          249
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - fstat
        - i_panic
        - log_file_set_syscall_error
        - mail_transaction_log_file_mmap
        - mail_transaction_log_file_munmap
        - mail_transaction_log_file_read
        - mail_transaction_log_file_set_corrupted
        - mail_transaction_log_file_sync
        - mmap_get_page_size
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1543,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1544,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1546,6'
          Dst:             fstat
        - Src:             'mail-transaction-log-file.c:1547,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1548,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1554,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1557,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:1564,14'
          Dst:             mail_transaction_log_file_sync
        - Src:             'mail-transaction-log-file.c:1571,3'
          Dst:             mail_transaction_log_file_munmap
        - Src:             'mail-transaction-log-file.c:1573,40'
          Dst:             mmap_get_page_size
        - Src:             'mail-transaction-log-file.c:1575,11'
          Dst:             mail_transaction_log_file_read
        - Src:             'mail-transaction-log-file.c:1580,7'
          Dst:             mail_transaction_log_file_mmap
        - Src:             'mail-transaction-log-file.c:1582,9'
          Dst:             mail_transaction_log_file_sync
    - functionName:    mail_transaction_log_file_skip_to_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          287
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - mail_index_map_get_modseq_header
        - mail_index_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:154,15'
          Dst:             mail_index_map_get_modseq_header
        - Src:             'mail-transaction-log-file.c:156,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:171,3'
          Dst:             mail_index_set_error
    - functionName:    log_file_map_check_offsets
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1436
      functionLinenumberEnd: 1480
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          169
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fstat
        - log_file_set_syscall_error
        - stat
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1442,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1449,7'
          Dst:             fstat
        - Src:             'mail-transaction-log-file.c:1450,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1453,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1458,7'
          Dst:             stat
        - Src:             'mail-transaction-log-file.c:1460,17'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1463,14'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:1464,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:1467,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:1472,15'
          Dst:             t_strdup_printf
    - functionName:    mail_transaction_log_file_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1591
      functionLinenumberEnd: 1665
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          468
      EdgeCount:       97
      CyclomaticComplexity: 22
      functionsReached:
        - i_panic
        - log_file_map_check_offsets
        - mail_transaction_log_file_map_mmap
        - mail_transaction_log_file_munmap
        - mail_transaction_log_file_read
        - mail_transaction_log_file_skip_to_head
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:1602,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1603,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1604,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1610,8'
          Dst:             log_file_map_check_offsets
        - Src:             'mail-transaction-log-file.c:1613,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1637,10'
          Dst:             log_file_map_check_offsets
        - Src:             'mail-transaction-log-file.c:1642,3'
          Dst:             mail_transaction_log_file_skip_to_head
        - Src:             'mail-transaction-log-file.c:1651,9'
          Dst:             mail_transaction_log_file_map_mmap
        - Src:             'mail-transaction-log-file.c:1653,3'
          Dst:             mail_transaction_log_file_munmap
        - Src:             'mail-transaction-log-file.c:1654,9'
          Dst:             mail_transaction_log_file_read
        - Src:             'mail-transaction-log-file.c:1657,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1662,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:1663,9'
          Dst:             log_file_map_check_offsets
    - functionName:    mail_transaction_log_file_read_hdr
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          462
      EdgeCount:       77
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - log_file_set_syscall_error
        - mail_index_set_error
        - mail_transaction_log_file_fail_dupe
        - mail_transaction_log_file_read_header
        - mail_transaction_log_file_set_corrupted
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:515,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:520,8'
          Dst:             mail_transaction_log_file_read_header
        - Src:             'mail-transaction-log-file.c:522,21'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:523,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:531,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:547,4'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:555,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:569,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:578,12'
          Dst:             strcmp
        - Src:             'mail-transaction-log-file.c:585,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-file.c:593,4'
          Dst:             event_want_level
        - Src:             'mail-transaction-log-file.c:593,4'
          Dst:             e_debug
        - Src:             'mail-transaction-log-file.c:593,4'
          Dst:             event_send_abort
        - Src:             'mail-transaction-log-file.c:598,4'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:613,8'
          Dst:             strcmp
        - Src:             'mail-transaction-log-file.c:615,12'
          Dst:             mail_transaction_log_file_fail_dupe
        - Src:             'mail-transaction-log-file.c:618,12'
          Dst:             mail_transaction_log_file_fail_dupe
    - functionName:    mail_transaction_log_file_is_dupe
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:653,7'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log-file.c:653,7'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log-file.c:653,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-transaction-log-file.c:653,7'
          Dst:             gnu_dev_minor
    - functionName:    mail_transaction_log_file_stat
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fstat
        - log_file_set_syscall_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:633,6'
          Dst:             fstat
        - Src:             'mail-transaction-log-file.c:634,22'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:634,22'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:635,4'
          Dst:             log_file_set_syscall_error
    - functionName:    mail_transaction_log_file_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          250
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - buffer_free
        - i_unlink_if_exists
        - log_file_set_syscall_error
        - mail_transaction_log_file_add_to_list
        - mail_transaction_log_file_is_dupe
        - mail_transaction_log_file_read_hdr
        - mail_transaction_log_file_stat
        - nfs_safe_open
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:923,15'
          Dst:             nfs_safe_open
        - Src:             'mail-transaction-log-file.c:926,15'
          Dst:             nfs_safe_open
        - Src:             'mail-transaction-log-file.c:928,25'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:928,25'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:928,25'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:929,15'
          Dst:             nfs_safe_open
        - Src:             'mail-transaction-log-file.c:933,8'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:938,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:939,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:944,7'
          Dst:             mail_transaction_log_file_stat
        - Src:             'mail-transaction-log-file.c:946,12'
          Dst:             mail_transaction_log_file_is_dupe
        - Src:             'mail-transaction-log-file.c:954,10'
          Dst:             mail_transaction_log_file_read_hdr
        - Src:             'mail-transaction-log-file.c:967,5'
          Dst:             i_unlink_if_exists
        - Src:             'mail-transaction-log-file.c:972,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:975,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-file.c:980,3'
          Dst:             buffer_free
        - Src:             'mail-transaction-log-file.c:983,2'
          Dst:             mail_transaction_log_file_add_to_list
    - functionName:    mail_transaction_log_file_add_to_list
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          131
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_set_used_size
        - i_panic
        - mail_transaction_log_file_skip_to_head
        - mail_transaction_log_file_sync
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:198,2'
          Dst:             mail_transaction_log_file_skip_to_head
        - Src:             'mail-transaction-log-file.c:204,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:213,9'
          Dst:             mail_transaction_log_file_sync
        - Src:             'mail-transaction-log-file.c:214,3'
          Dst:             buffer_set_used_size
    - functionName:    mail_transaction_log_file_create2
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          584
      EdgeCount:       135
      CyclomaticComplexity: 38
      functionsReached:
        - __errno_location
        - buffer_append
        - buffer_create_dynamic
        - close
        - fcntl
        - fdatasync
        - file_dotlock_delete
        - file_dotlock_replace
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - i_unlink_if_exists
        - log_file_set_syscall_error
        - log_write_ext_hdr_init_data
        - mail_index_set_error
        - mail_transaction_log_file_add_to_list
        - mail_transaction_log_file_lock
        - mail_transaction_log_file_read_hdr
        - mail_transaction_log_file_stat
        - mail_transaction_log_file_unlock
        - mail_transaction_log_init_hdr
        - nfs_flush_file_handle_cache
        - nfs_safe_link
        - nfs_safe_open
        - nfs_safe_stat
        - pool_datastack_create
        - t_strconcat
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:714,6'
          Dst:             fcntl
        - Src:             'mail-transaction-log-file.c:715,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:723,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'mail-transaction-log-file.c:734,11'
          Dst:             nfs_safe_stat
        - Src:             'mail-transaction-log-file.c:735,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:736,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:741,6'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log-file.c:741,6'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log-file.c:741,6'
          Dst:             gnu_dev_minor
        - Src:             'mail-transaction-log-file.c:741,6'
          Dst:             gnu_dev_minor
        - Src:             'mail-transaction-log-file.c:750,8'
          Dst:             nfs_safe_open
        - Src:             'mail-transaction-log-file.c:752,8'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:753,5'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:759,8'
          Dst:             mail_transaction_log_file_read_hdr
        - Src:             'mail-transaction-log-file.c:761,8'
          Dst:             mail_transaction_log_file_stat
        - Src:             'mail-transaction-log-file.c:763,5'
          Dst:             file_dotlock_delete
        - Src:             'mail-transaction-log-file.c:764,5'
          Dst:             mail_transaction_log_file_add_to_list
        - Src:             'mail-transaction-log-file.c:768,8'
          Dst:             close
        - Src:             'mail-transaction-log-file.c:769,5'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:779,6'
          Dst:             mail_transaction_log_init_hdr
        - Src:             'mail-transaction-log-file.c:790,13'
          Dst:             pool_datastack_create
        - Src:             'mail-transaction-log-file.c:790,13'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-file.c:791,2'
          Dst:             buffer_append
        - Src:             'mail-transaction-log-file.c:794,3'
          Dst:             log_write_ext_hdr_init_data
        - Src:             'mail-transaction-log-file.c:795,6'
          Dst:             write_full
        - Src:             'mail-transaction-log-file.c:796,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:803,7'
          Dst:             fdatasync
        - Src:             'mail-transaction-log-file.c:804,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:810,8'
          Dst:             mail_transaction_log_file_stat
        - Src:             'mail-transaction-log-file.c:814,7'
          Dst:             mail_transaction_log_file_lock
        - Src:             'mail-transaction-log-file.c:829,11'
          Dst:             t_strconcat
        - Src:             'mail-transaction-log-file.c:830,7'
          Dst:             i_unlink_if_exists
        - Src:             'mail-transaction-log-file.c:833,7'
          Dst:             nfs_safe_link
        - Src:             'mail-transaction-log-file.c:834,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:834,26'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:835,25'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:846,6'
          Dst:             file_dotlock_replace
        - Src:             'mail-transaction-log-file.c:850,3'
          Dst:             mail_transaction_log_file_unlock
        - Src:             'mail-transaction-log-file.c:856,2'
          Dst:             mail_transaction_log_file_add_to_list
        - Src:             'mail-transaction-log-file.c:858,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_init_hdr
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          291
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - mail_index_map
        - mail_index_map_modseq_get_highest
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:226,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:233,22'
          Dst:             time_to_uint32
        - Src:             'mail-transaction-log-file.c:241,8'
          Dst:             mail_index_map
        - Src:             'mail-transaction-log-file.c:255,4'
          Dst:             mail_index_map_modseq_get_highest
    - functionName:    mail_transaction_log_file_lock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          183
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - file_lock_find
        - i_panic
        - log_file_set_syscall_error
        - mail_index_lock_fd
        - mail_index_set_error
        - mail_index_set_error_code
        - mail_transaction_log_file_dotlock
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:376,3'
          Dst:             mail_index_set_error_code
        - Src:             'mail-transaction-log-file.c:384,10'
          Dst:             mail_transaction_log_file_dotlock
        - Src:             'mail-transaction-log-file.c:386,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:389,8'
          Dst:             mail_index_lock_fd
        - Src:             'mail-transaction-log-file.c:394,28'
          Dst:             time
        - Src:             'mail-transaction-log-file.c:398,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:406,3'
          Dst:             file_lock_find
        - Src:             'mail-transaction-log-file.c:402,2'
          Dst:             mail_index_set_error
    - functionName:    mail_transaction_log_file_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          111
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - e_warning
        - file_unlock
        - mail_transaction_log_file_undotlock
        - time
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:424,14'
          Dst:             time
        - Src:             'mail-transaction-log-file.c:426,3'
          Dst:             e_warning
        - Src:             'mail-transaction-log-file.c:432,9'
          Dst:             mail_transaction_log_file_undotlock
        - Src:             'mail-transaction-log-file.c:436,2'
          Dst:             file_unlock
    - functionName:    mail_transaction_log_file_undotlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - file_dotlock_delete
        - i_panic
        - log_file_set_syscall_error
        - mail_index_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:342,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:346,8'
          Dst:             file_dotlock_delete
        - Src:             'mail-transaction-log-file.c:348,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:353,3'
          Dst:             mail_index_set_error
    - functionName:    mail_transaction_log_file_dotlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - file_dotlock_create
        - i_panic
        - log_file_set_syscall_error
        - mail_index_set_error
        - mail_transaction_log_get_dotlock_set
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:314,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:315,3'
          Dst:             mail_transaction_log_get_dotlock_set
        - Src:             'mail-transaction-log-file.c:316,9'
          Dst:             file_dotlock_create
        - Src:             'mail-transaction-log-file.c:322,28'
          Dst:             time
        - Src:             'mail-transaction-log-file.c:326,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:330,2'
          Dst:             mail_index_set_error
    - functionName:    mail_transaction_log_file_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          152
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - file_dotlock_delete
        - file_dotlock_get_lock_path
        - file_dotlock_open
        - i_panic
        - log_file_set_syscall_error
        - mail_index_fchown
        - mail_index_set_error
        - mail_transaction_log_file_create2
        - mail_transaction_log_get_dotlock_set
        - umask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:871,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:874,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:881,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-file.c:887,2'
          Dst:             mail_transaction_log_get_dotlock_set
        - Src:             'mail-transaction-log-file.c:892,13'
          Dst:             umask
        - Src:             'mail-transaction-log-file.c:893,7'
          Dst:             file_dotlock_open
        - Src:             'mail-transaction-log-file.c:894,2'
          Dst:             umask
        - Src:             'mail-transaction-log-file.c:897,3'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:900,31'
          Dst:             file_dotlock_get_lock_path
        - Src:             'mail-transaction-log-file.c:900,2'
          Dst:             mail_index_fchown
        - Src:             'mail-transaction-log-file.c:904,8'
          Dst:             mail_transaction_log_file_create2
        - Src:             'mail-transaction-log-file.c:907,4'
          Dst:             file_dotlock_delete
    - functionName:    mail_transaction_log_file_alloc_in_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - mail_transaction_log_file_add_to_list
        - mail_transaction_log_file_alloc
        - mail_transaction_log_init_hdr
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:292,9'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log-file.c:293,6'
          Dst:             mail_transaction_log_init_hdr
        - Src:             'mail-transaction-log-file.c:294,3'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log-file.c:298,17'
          Dst:             buffer_create_dynamic
        - Src:             'mail-transaction-log-file.c:301,2'
          Dst:             mail_transaction_log_file_add_to_list
    - functionName:    mail_transaction_log_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:90,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-transaction-log-file.c:90,9'
          Dst:             p_malloc
        - Src:             'mail-transaction-log-file.c:92,19'
          Dst:             i_strdup
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_file_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          214
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - buffer_free
        - close
        - i_panic
        - log_file_set_syscall_error
        - munmap
        - p_free_internal
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-file.c:101,18'
          Dst:             __errno_location
        - Src:             'mail-transaction-log-file.c:105,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:106,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-file.c:118,2'
          Dst:             buffer_free
        - Src:             'mail-transaction-log-file.c:121,7'
          Dst:             munmap
        - Src:             'mail-transaction-log-file.c:122,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:126,7'
          Dst:             close
        - Src:             'mail-transaction-log-file.c:127,4'
          Dst:             log_file_set_syscall_error
        - Src:             'mail-transaction-log-file.c:130,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log-file.c:131,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log-file.c:132,9'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log-file.c:134,9'
          Dst:             __errno_location
    - functionName:    modseq_cache_hit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          45
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_modseq_next_offset_at
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          171
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - log_get_synced_record
        - mail_index_set_error
        - mail_transaction_log_file_map
        - mail_transaction_update_modseq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:194,8'
          Dst:             mail_transaction_log_file_map
        - Src:             'mail-transaction-log-modseq.c:196,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-modseq.c:209,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-modseq.c:211,7'
          Dst:             log_get_synced_record
        - Src:             'mail-transaction-log-modseq.c:212,4'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-modseq.c:216,3'
          Dst:             mail_transaction_update_modseq
    - functionName:    log_get_synced_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          104
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_offset_to_uint32
        - mail_transaction_log_file_set_corrupted
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:90,15'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-modseq.c:93,14'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-modseq.c:97,3'
          Dst:             mail_transaction_log_file_set_corrupted
    - functionName:    modseq_cache_get_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          136
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - modseq_cache_hit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:64,11'
          Dst:             modseq_cache_hit
    - functionName:    mail_transaction_log_file_get_modseq_next_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          260
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - get_modseq_next_offset_at
        - i_panic
        - i_strdup
        - mail_index_set_error
        - modseq_cache_get_modseq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:242,10'
          Dst:             modseq_cache_get_modseq
        - Src:             'mail-transaction-log-modseq.c:257,13'
          Dst:             get_modseq_next_offset_at
        - Src:             'mail-transaction-log-modseq.c:263,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-modseq.c:270,9'
          Dst:             get_modseq_next_offset_at
        - Src:             'mail-transaction-log-modseq.c:275,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-modseq.c:279,5'
          Dst:             i_strdup
        - Src:             'mail-transaction-log-modseq.c:283,5'
          Dst:             i_strdup
    - functionName:    modseq_cache_get_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          136
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - modseq_cache_hit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:37,11'
          Dst:             modseq_cache_hit
    - functionName:    mail_transaction_log_file_get_highest_modseq_at
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-modseq.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          335
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - log_get_synced_record
        - mail_transaction_log_file_map
        - mail_transaction_update_modseq
        - modseq_cache_get_offset
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-modseq.c:117,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-modseq.c:124,10'
          Dst:             modseq_cache_get_offset
        - Src:             'mail-transaction-log-modseq.c:152,8'
          Dst:             mail_transaction_log_file_map
        - Src:             'mail-transaction-log-modseq.c:154,14'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-modseq.c:161,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-modseq.c:162,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-modseq.c:164,7'
          Dst:             log_get_synced_record
        - Src:             'mail-transaction-log-modseq.c:166,3'
          Dst:             mail_transaction_update_modseq
    - functionName:    log_view_is_uid_range_valid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          149
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_idx_i
        - mail_transaction_log_file_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:567,26'
          Dst:             array_count_i
        - Src:             'mail-transaction-log-view.c:570,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:574,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:580,9'
          Dst:             array_idx_i
        - Src:             'mail-transaction-log-view.c:582,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:588,4'
          Dst:             mail_transaction_log_file_set_corrupted
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../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-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    log_view_is_record_valid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          576
      EdgeCount:       112
      CyclomaticComplexity: 29
      functionsReached:
        - array_create_from_buffer_i
        - array_is_created_i
        - buffer_create_from_const_data
        - log_view_is_uid_range_valid
        - mail_index_offset_to_uint32
        - mail_transaction_log_file_set_corrupted
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-transaction-log-view.c:639,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-transaction-log-view.c:607,13'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-view.c:613,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:622,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:630,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:642,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:648,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-transaction-log-view.c:649,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-transaction-log-view.c:657,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:664,5'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:672,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-transaction-log-view.c:673,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-transaction-log-view.c:685,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:690,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:695,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-transaction-log-view.c:698,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-transaction-log-view.c:703,3'
          Dst:             buffer_create_from_const_data
        - Src:             'mail-transaction-log-view.c:704,3'
          Dst:             array_create_from_buffer_i
        - Src:             'mail-transaction-log-view.c:719,5'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:735,5'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:742,5'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:749,5'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:753,9'
          Dst:             strlen
        - Src:             'mail-transaction-log-view.c:756,4'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:766,6'
          Dst:             array_is_created_i
        - Src:             'mail-transaction-log-view.c:767,8'
          Dst:             log_view_is_uid_range_valid
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_transaction_log_view_rewind
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:906,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_view_mark
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 902
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:896,3'
          Dst:             i_panic
    - functionName:    log_view_get_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          283
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - log_view_is_record_valid
        - mail_index_offset_to_uint32
        - mail_transaction_log_file_set_corrupted
        - mail_transaction_log_view_get_last
        - mail_transaction_update_modseq
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:792,6'
          Dst:             mail_transaction_log_view_get_last
        - Src:             'mail-transaction-log-view.c:811,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:818,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:823,14'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-view.c:825,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:833,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:840,2'
          Dst:             t_push
        - Src:             'mail-transaction-log-view.c:841,9'
          Dst:             log_view_is_record_valid
        - Src:             'mail-transaction-log-view.c:842,4'
          Dst:             t_pop
        - Src:             'mail-transaction-log-view.c:842,4'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:844,3'
          Dst:             mail_transaction_update_modseq
    - functionName:    mail_transaction_log_view_get_last
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_view_next
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          155
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - log_view_get_next
        - mail_index_offset_to_uint32
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:864,8'
          Dst:             log_view_get_next
        - Src:             'mail-transaction-log-view.c:881,23'
          Dst:             mail_index_offset_to_uint32
        - Src:             'mail-transaction-log-view.c:882,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_view_is_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 558
      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:    mail_transaction_log_view_is_last
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_transaction_log_view_get_last
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:536,9'
          Dst:             mail_transaction_log_view_get_last
    - functionName:    mail_transaction_log_view_get_prev_modseq
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_view_get_prev_pos
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_view_clear
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - mail_transaction_log_find_file
        - mail_transaction_log_view_unref_all
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:449,2'
          Dst:             mail_transaction_log_view_unref_all
        - Src:             'mail-transaction-log-view.c:451,6'
          Dst:             mail_transaction_log_find_file
        - Src:             'mail-transaction-log-view.c:454,4'
          Dst:             array_append_i
    - functionName:    mail_transaction_log_view_unref_all
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_clear_i
        - array_get_i
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:36,10'
          Dst:             array_get_i
        - Src:             'mail-transaction-log-view.c:40,2'
          Dst:             array_clear_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mail_transaction_log_view_set_all
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          281
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - i_panic
        - mail_index_set_error
        - mail_transaction_log_file_get_highest_modseq_at
        - mail_transaction_log_file_map
        - mail_transaction_log_find_file
        - mail_transaction_log_view_unref_all
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:385,8'
          Dst:             mail_transaction_log_find_file
        - Src:             'mail-transaction-log-view.c:388,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:391,9'
          Dst:             mail_transaction_log_file_map
        - Src:             'mail-transaction-log-view.c:407,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:408,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log-view.c:414,2'
          Dst:             mail_transaction_log_view_unref_all
        - Src:             'mail-transaction-log-view.c:416,3'
          Dst:             array_append_i
        - Src:             'mail-transaction-log-view.c:433,6'
          Dst:             mail_transaction_log_file_get_highest_modseq_at
        - Src:             'mail-transaction-log-view.c:435,3'
          Dst:             mail_index_set_error
    - functionName:    mail_transaction_log_get_file_seqs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:68,18'
          Dst:             t_str_new
        - Src:             'mail-transaction-log-view.c:74,3'
          Dst:             str_printfa
        - Src:             'mail-transaction-log-view.c:75,9'
          Dst:             str_c
    - functionName:    view_set_failed_unref
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          139
      EdgeCount:       32
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:85,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:90,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:91,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:94,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:95,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_view_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_transaction_log_file_set_corrupted
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:548,2'
          Dst:             t_push
        - Src:             'mail-transaction-log-view.c:550,4'
          Dst:             t_strdup_vprintf
        - Src:             'mail-transaction-log-view.c:549,3'
          Dst:             mail_transaction_log_file_set_corrupted
        - Src:             'mail-transaction-log-view.c:551,4'
          Dst:             t_pop
        - Src:             'mail-transaction-log-view.c:551,4'
          Dst:             i_panic
    - functionName:    mail_transaction_log_view_set
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         202
      ICount:          1311
      EdgeCount:       257
      CyclomaticComplexity: 57
      functionsReached:
        - array_append_i
        - array_count_i
        - array_idx_i
        - i_panic
        - mail_transaction_log_file_get_highest_modseq_at
        - mail_transaction_log_file_map
        - mail_transaction_log_find_file
        - mail_transaction_log_get_file_seqs
        - mail_transaction_log_view_set_corrupted
        - mail_transaction_log_view_unref_all
        - t_strdup_printf
        - view_set_failed_unref
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:125,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:160,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:165,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:170,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:174,3'
          Dst:             mail_transaction_log_view_set_corrupted
        - Src:             'mail-transaction-log-view.c:190,10'
          Dst:             mail_transaction_log_find_file
        - Src:             'mail-transaction-log-view.c:194,18'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:197,6'
          Dst:             view_set_failed_unref
        - Src:             'mail-transaction-log-view.c:207,4'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:211,5'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:225,7'
          Dst:             mail_transaction_log_get_file_seqs
        - Src:             'mail-transaction-log-view.c:222,18'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:226,6'
          Dst:             view_set_failed_unref
        - Src:             'mail-transaction-log-view.c:238,4'
          Dst:             view_set_failed_unref
        - Src:             'mail-transaction-log-view.c:251,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:265,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:269,3'
          Dst:             mail_transaction_log_view_set_corrupted
        - Src:             'mail-transaction-log-view.c:270,3'
          Dst:             view_set_failed_unref
        - Src:             'mail-transaction-log-view.c:275,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:279,3'
          Dst:             mail_transaction_log_view_set_corrupted
        - Src:             'mail-transaction-log-view.c:280,3'
          Dst:             view_set_failed_unref
        - Src:             'mail-transaction-log-view.c:285,2'
          Dst:             mail_transaction_log_view_unref_all
        - Src:             'mail-transaction-log-view.c:291,3'
          Dst:             array_append_i
        - Src:             'mail-transaction-log-view.c:309,10'
          Dst:             array_idx_i
        - Src:             'mail-transaction-log-view.c:310,11'
          Dst:             array_count_i
        - Src:             'mail-transaction-log-view.c:316,9'
          Dst:             mail_transaction_log_file_map
        - Src:             'mail-transaction-log-view.c:319,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:336,4'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:343,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log-view.c:347,3'
          Dst:             mail_transaction_log_view_set_corrupted
        - Src:             'mail-transaction-log-view.c:351,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:353,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:355,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:369,8'
          Dst:             mail_transaction_log_file_get_highest_modseq_at
        - Src:             'mail-transaction-log-view.c:374,2'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    mail_transaction_log_view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - mail_transaction_log_view_unref_all
        - mail_transaction_logs_clean
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:57,2'
          Dst:             mail_transaction_log_view_unref_all
        - Src:             'mail-transaction-log-view.c:58,2'
          Dst:             mail_transaction_logs_clean
        - Src:             'mail-transaction-log-view.c:60,2'
          Dst:             array_free_i
        - Src:             'mail-transaction-log-view.c:61,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_view_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log-view.c:14,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-transaction-log-view.c:14,9'
          Dst:             p_malloc
        - Src:             'mail-transaction-log-view.c:18,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log-view.c:22,2'
          Dst:             array_create_i
        - Src:             'mail-transaction-log-view.c:23,2'
          Dst:             array_append_i
    - functionName:    mail_transaction_log_replace_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_transaction_log_set_head
        - mail_transaction_logs_clean
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:367,2'
          Dst:             mail_transaction_log_set_head
        - Src:             'mail-transaction-log.c:369,3'
          Dst:             mail_transaction_logs_clean
    - functionName:    mail_transaction_log_set_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:19,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:24,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:25,2'
          Dst:             i_panic
    - functionName:    mail_transaction_logs_clean
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          150
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_transaction_log_file_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:198,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:202,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:206,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:208,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_refresh_find_opened
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:386,7'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log.c:386,7'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log.c:386,7'
          Dst:             gnu_dev_minor
        - Src:             'mail-transaction-log.c:386,7'
          Dst:             gnu_dev_minor
    - functionName:    mail_transaction_log_get_dotlock_set
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          70
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_unlink
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mail_index_file_set_syscall_error
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:671,6'
          Dst:             unlink
        - Src:             'mail-transaction-log.c:672,6'
          Dst:             __errno_location
        - Src:             'mail-transaction-log.c:672,25'
          Dst:             __errno_location
        - Src:             'mail-transaction-log.c:673,3'
          Dst:             mail_index_file_set_syscall_error
    - functionName:    mail_transaction_log_is_head_prev
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_get_tail
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_get_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_sync_unlock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_transaction_log_file_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:637,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:640,2'
          Dst:             mail_transaction_log_file_unlock
    - functionName:    mail_transaction_log_2_unlink_old
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          157
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - i_unlink_if_exists
        - mail_index_set_error
        - nfs_safe_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:47,7'
          Dst:             nfs_safe_stat
        - Src:             'mail-transaction-log.c:49,12'
          Dst:             __errno_location
        - Src:             'mail-transaction-log.c:52,4'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log.c:61,3'
          Dst:             i_unlink_if_exists
    - functionName:    mail_transaction_log_sync_lock
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          144
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_set_error
        - mail_transaction_log_2_unlink_old
        - mail_transaction_log_file_map
        - mail_transaction_log_file_unlock
        - mail_transaction_log_lock_head
        - t_strdup_printf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:600,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:610,3'
          Dst:             mail_transaction_log_2_unlink_old
        - Src:             'mail-transaction-log.c:613,6'
          Dst:             mail_transaction_log_lock_head
        - Src:             'mail-transaction-log.c:617,6'
          Dst:             mail_transaction_log_file_map
        - Src:             'mail-transaction-log.c:619,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log.c:623,47'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:623,3'
          Dst:             mail_transaction_log_file_unlock
    - functionName:    mail_transaction_log_lock_head
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          238
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - e_warning
        - i_panic
        - mail_index_set_error
        - mail_transaction_log_file_lock
        - mail_transaction_log_file_unlock
        - mail_transaction_log_refresh
        - mail_transaction_logs_clean
        - t_strdup_printf
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:545,22'
          Dst:             time
        - Src:             'mail-transaction-log.c:548,7'
          Dst:             mail_transaction_log_file_lock
        - Src:             'mail-transaction-log.c:552,9'
          Dst:             mail_transaction_log_refresh
        - Src:             'mail-transaction-log.c:554,43'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:554,4'
          Dst:             mail_transaction_log_file_unlock
        - Src:             'mail-transaction-log.c:556,4'
          Dst:             mail_transaction_logs_clean
        - Src:             'mail-transaction-log.c:562,4'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:568,43'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:568,4'
          Dst:             mail_transaction_log_file_unlock
        - Src:             'mail-transaction-log.c:577,3'
          Dst:             e_warning
        - Src:             'mail-transaction-log.c:585,3'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log.c:590,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_refresh
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_transaction_log_file_alloc
        - mail_transaction_log_file_free
        - mail_transaction_log_file_open
        - mail_transaction_log_has_changed
        - mail_transaction_log_refresh_find_opened
        - mail_transaction_log_replace_head
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:401,12'
          Dst:             mail_transaction_log_has_changed
        - Src:             'mail-transaction-log.c:405,9'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log.c:406,6'
          Dst:             mail_transaction_log_file_open
        - Src:             'mail-transaction-log.c:407,17'
          Dst:             mail_transaction_log_refresh_find_opened
        - Src:             'mail-transaction-log.c:408,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:410,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:415,3'
          Dst:             mail_transaction_log_replace_head
        - Src:             'mail-transaction-log.c:420,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:422,2'
          Dst:             mail_transaction_log_replace_head
    - functionName:    mail_transaction_log_has_changed
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - mail_index_file_set_syscall_error
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:321,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:330,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'mail-transaction-log.c:331,6'
          Dst:             nfs_safe_stat
        - Src:             'mail-transaction-log.c:332,7'
          Dst:             __errno_location
        - Src:             'mail-transaction-log.c:333,4'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log.c:336,16'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:349,6'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log.c:349,6'
          Dst:             gnu_dev_major
        - Src:             'mail-transaction-log.c:349,6'
          Dst:             gnu_dev_minor
        - Src:             'mail-transaction-log.c:349,6'
          Dst:             gnu_dev_minor
    - functionName:    mail_transaction_log_find_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          277
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - mail_transaction_log_file_alloc
        - mail_transaction_log_file_free
        - mail_transaction_log_file_open
        - mail_transaction_log_refresh
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:464,7'
          Dst:             mail_transaction_log_refresh
        - Src:             'mail-transaction-log.c:471,17'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:476,8'
          Dst:             mail_transaction_log_refresh
        - Src:             'mail-transaction-log.c:477,17'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:482,17'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:510,9'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log.c:511,13'
          Dst:             mail_transaction_log_file_open
        - Src:             'mail-transaction-log.c:512,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:514,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:520,15'
          Dst:             t_strdup_printf
    - functionName:    mail_transaction_log_set_mailbox_sync_pos
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:439,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:440,2'
          Dst:             i_panic
    - functionName:    mail_transaction_log_get_mailbox_sync_pos
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_rotate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          262
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - file_lock_method_to_str
        - fstat
        - i_panic
        - mail_index_file_set_syscall_error
        - mail_index_set_error
        - mail_transaction_log_file_alloc
        - mail_transaction_log_file_alloc_in_memory
        - mail_transaction_log_file_create
        - mail_transaction_log_file_free
        - mail_transaction_log_file_unlock
        - mail_transaction_log_set_head
        - mail_transaction_logs_clean
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:261,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:264,10'
          Dst:             mail_transaction_log_file_alloc_in_memory
        - Src:             'mail-transaction-log.c:272,7'
          Dst:             fstat
        - Src:             'mail-transaction-log.c:273,4'
          Dst:             mail_index_file_set_syscall_error
        - Src:             'mail-transaction-log.c:278,10'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log.c:285,14'
          Dst:             mail_transaction_log_file_create
        - Src:             'mail-transaction-log.c:286,4'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:293,5'
          Dst:             file_lock_method_to_str
        - Src:             'mail-transaction-log.c:290,4'
          Dst:             mail_index_set_error
        - Src:             'mail-transaction-log.c:294,4'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:297,3'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:301,2'
          Dst:             mail_transaction_log_set_head
        - Src:             'mail-transaction-log.c:303,2'
          Dst:             event_want_level
        - Src:             'mail-transaction-log.c:303,2'
          Dst:             e_debug
        - Src:             'mail-transaction-log.c:303,2'
          Dst:             event_send_abort
        - Src:             'mail-transaction-log.c:307,2'
          Dst:             mail_transaction_log_file_unlock
        - Src:             'mail-transaction-log.c:311,3'
          Dst:             mail_transaction_logs_clean
    - functionName:    mail_transaction_log_want_rotate
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          184
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - t_strdup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:217,15'
          Dst:             t_strdup
        - Src:             'mail-transaction-log.c:225,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:233,15'
          Dst:             t_strdup_printf
        - Src:             'mail-transaction-log.c:245,15'
          Dst:             t_strdup_printf
    - functionName:    mail_transaction_log_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          118
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_strconcat
        - mail_transaction_log_close
        - mail_transaction_log_file_alloc_in_memory
        - mail_transaction_log_file_move_to_memory
        - mail_transaction_log_set_head
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:170,3'
          Dst:             mail_transaction_log_close
        - Src:             'mail-transaction-log.c:173,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:174,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:175,18'
          Dst:             i_strconcat
        - Src:             'mail-transaction-log.c:177,19'
          Dst:             i_strconcat
        - Src:             'mail-transaction-log.c:180,10'
          Dst:             mail_transaction_log_file_move_to_memory
        - Src:             'mail-transaction-log.c:182,10'
          Dst:             mail_transaction_log_file_alloc_in_memory
        - Src:             'mail-transaction-log.c:183,3'
          Dst:             mail_transaction_log_set_head
    - functionName:    mail_transaction_log_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_transaction_log_file_free
        - mail_transaction_logs_clean
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:139,2'
          Dst:             i_panic
        - Src:             'mail-transaction-log.c:142,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:145,2'
          Dst:             mail_transaction_logs_clean
        - Src:             'mail-transaction-log.c:146,2'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_transaction_log_free
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mail_transaction_log_close
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:155,2'
          Dst:             mail_transaction_log_close
        - Src:             'mail-transaction-log.c:157,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:158,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:159,2'
          Dst:             p_free_internal
    - functionName:    mail_transaction_log_create
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          112
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_transaction_log_file_alloc
        - mail_transaction_log_file_alloc_in_memory
        - mail_transaction_log_file_create
        - mail_transaction_log_file_free
        - mail_transaction_log_set_head
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:112,10'
          Dst:             mail_transaction_log_file_alloc_in_memory
        - Src:             'mail-transaction-log.c:113,3'
          Dst:             mail_transaction_log_set_head
        - Src:             'mail-transaction-log.c:117,9'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log.c:125,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:128,6'
          Dst:             mail_transaction_log_file_create
        - Src:             'mail-transaction-log.c:129,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:133,2'
          Dst:             mail_transaction_log_set_head
    - functionName:    mail_transaction_log_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_strconcat
        - mail_transaction_log_file_alloc
        - mail_transaction_log_file_free
        - mail_transaction_log_file_open
        - mail_transaction_log_set_head
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:85,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:86,2'
          Dst:             p_free_internal
        - Src:             'mail-transaction-log.c:87,18'
          Dst:             i_strconcat
        - Src:             'mail-transaction-log.c:89,19'
          Dst:             i_strconcat
        - Src:             'mail-transaction-log.c:92,3'
          Dst:             mail_transaction_log_file_free
        - Src:             'mail-transaction-log.c:97,9'
          Dst:             mail_transaction_log_file_alloc
        - Src:             'mail-transaction-log.c:98,13'
          Dst:             mail_transaction_log_file_open
        - Src:             'mail-transaction-log.c:103,2'
          Dst:             mail_transaction_log_set_head
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_transaction_log_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-transaction-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-transaction-log.c:33,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-transaction-log.c:33,8'
          Dst:             p_malloc
    - functionName:    mail_user_var_expand_func_userdb
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_service_fields_var_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:318,13'
          Dst:             mail_storage_service_fields_var_expand
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_user_get_dict_op_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_user_get_home
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:724,23'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:724,23'
          Dst:             p_malloc
        - Src:             'mail-user.c:725,33'
          Dst:             p_strdup
        - Src:             'mail-user.c:726,7'
          Dst:             mail_user_get_home
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_user_get_home
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - mail_user_userdb_lookup_home
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:422,20'
          Dst:             mail_user_userdb_lookup_home
    - functionName:    mail_user_userdb_lookup_home
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          142
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_user_lookup
        - auth_user_fields_parse
        - e_error
        - i_panic
        - p_strdup
        - pool_alloconly_create
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:381,2'
          Dst:             i_panic
        - Src:             'mail-user.c:391,16'
          Dst:             pool_alloconly_create
        - Src:             'mail-user.c:392,8'
          Dst:             auth_master_user_lookup
        - Src:             'mail-user.c:397,7'
          Dst:             auth_user_fields_parse
        - Src:             'mail-user.c:399,4'
          Dst:             e_error
        - Src:             'mail-user.c:403,18'
          Dst:             p_strdup
        - Src:             'mail-user.c:405,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_user_home_mkdir_try_ns
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_mkdir_root
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:670,20'
          Dst:             strlen
        - Src:             'mail-user.c:674,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'mail-user.c:676,7'
          Dst:             strncmp
        - Src:             'mail-user.c:678,11'
          Dst:             mailbox_list_mkdir_root
    - functionName:    mail_user_home_mkdir
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_error
        - mail_namespace_find_inbox
        - mail_user_get_home
        - mail_user_home_mkdir_try_ns
        - mkdir_parents
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:691,13'
          Dst:             mail_user_get_home
        - Src:             'mail-user.c:700,7'
          Dst:             mail_namespace_find_inbox
        - Src:             'mail-user.c:701,13'
          Dst:             mail_user_home_mkdir_try_ns
        - Src:             'mail-user.c:709,14'
          Dst:             mail_user_home_mkdir_try_ns
        - Src:             'mail-user.c:713,6'
          Dst:             mkdir_parents
        - Src:             'mail-user.c:713,39'
          Dst:             __errno_location
        - Src:             'mail-user.c:714,3'
          Dst:             e_error
    - functionName:    mail_user_init_fs_parameters
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          46
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_user_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          175
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_user_alloc
        - mail_user_set_home
        - mail_user_set_vars
        - p_strarray_dup
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:628,10'
          Dst:             mail_user_alloc
        - Src:             'mail-user.c:630,3'
          Dst:             mail_user_set_home
        - Src:             'mail-user.c:631,2'
          Dst:             mail_user_set_vars
        - Src:             'mail-user.c:636,20'
          Dst:             p_strdup
        - Src:             'mail-user.c:637,21'
          Dst:             p_strdup
        - Src:             'mail-user.c:638,22'
          Dst:             p_strdup
        - Src:             'mail-user.c:640,21'
          Dst:             p_strdup
        - Src:             'mail-user.c:641,22'
          Dst:             p_strdup
        - Src:             'mail-user.c:644,3'
          Dst:             p_strarray_dup
    - functionName:    mail_user_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          135
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - event_add_category
        - event_add_str
        - event_create
        - event_set_ptr
        - i_panic
        - mail_storage_service_user_get_event
        - mail_storage_service_user_get_set
        - mail_storage_service_user_get_username
        - mail_storage_service_user_ref
        - mail_user_var_expand_callback
        - malloc_multiply_check
        - master_service_get_name
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:79,3'
          Dst:             mail_storage_service_user_get_event
        - Src:             'mail-user.c:81,3'
          Dst:             mail_storage_service_user_get_username
        - Src:             'mail-user.c:82,2'
          Dst:             i_panic
        - Src:             'mail-user.c:84,16'
          Dst:             pool_alloconly_create
        - Src:             'mail-user.c:85,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:85,9'
          Dst:             p_malloc
        - Src:             'mail-user.c:89,2'
          Dst:             mail_storage_service_user_ref
        - Src:             'mail-user.c:90,19'
          Dst:             p_strdup
        - Src:             'mail-user.c:91,14'
          Dst:             mail_storage_service_user_get_set
        - Src:             'mail-user.c:92,18'
          Dst:             master_service_get_name
        - Src:             'mail-user.c:95,16'
          Dst:             event_create
        - Src:             'mail-user.c:96,2'
          Dst:             event_add_category
        - Src:             'mail-user.c:97,2'
          Dst:             event_set_ptr
        - Src:             'mail-user.c:98,2'
          Dst:             event_add_str
        - Src:             'mail-user.c:102,2'
          Dst:             event_set_ptr
        - Src:             'mail-user.c:102,2'
          Dst:             mail_user_var_expand_callback
        - Src:             'mail-user.c:104,2'
          Dst:             event_set_ptr
        - Src:             'mail-user.c:110,2'
          Dst:             array_create_i
    - functionName:    mail_user_set_home
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:324,16'
          Dst:             p_strdup
    - functionName:    mail_user_set_vars
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_user_connection_init_from
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:231,2'
          Dst:             i_panic
        - Src:             'mail-user.c:233,18'
          Dst:             p_strdup
        - Src:             'mail-user.c:234,2'
          Dst:             mail_user_connection_init_from
    - functionName:    mail_user_connection_init_from
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          108
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:218,20'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:218,20'
          Dst:             p_malloc
        - Src:             'mail-user.c:222,21'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:222,21'
          Dst:             p_malloc
        - Src:             'mail-user.c:225,21'
          Dst:             p_strdup
    - functionName:    mail_user_var_expand_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_user_var_expand_params
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:70,43'
          Dst:             mail_user_var_expand_params
    - functionName:    mail_user_get_mail_max_size_base
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_user_deinit_base
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_deinit
        - dict_wait
        - mail_namespaces_deinit
        - mail_storage_service_user_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:42,3'
          Dst:             dict_wait
        - Src:             'mail-user.c:43,3'
          Dst:             dict_deinit
        - Src:             'mail-user.c:45,2'
          Dst:             mail_namespaces_deinit
        - Src:             'mail-user.c:46,2'
          Dst:             mail_storage_service_user_unref
    - functionName:    mail_user_deinit_pre_base
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_user_var_expand_params
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          336
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - malloc_multiply_check
        - net_ip2addr
        - p_malloc
        - p_memdup
        - p_strdup
        - p_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:259,24'
          Dst:             net_ip2addr
        - Src:             'mail-user.c:259,3'
          Dst:             p_strdup
        - Src:             'mail-user.c:261,24'
          Dst:             net_ip2addr
        - Src:             'mail-user.c:261,3'
          Dst:             p_strdup
        - Src:             'mail-user.c:266,16'
          Dst:             p_strdup_printf
        - Src:             'mail-user.c:270,17'
          Dst:             p_strdup_printf
        - Src:             'mail-user.c:302,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:302,3'
          Dst:             p_malloc
        - Src:             'mail-user.c:303,18'
          Dst:             p_memdup
    - functionName:    mail_user_var_expand_func_home
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_user_get_home
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:243,6'
          Dst:             mail_user_get_home
    - functionName:    mail_user_try_load_class_plugin
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          134
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - event_want_level
        - master_service_get_name
        - module_dir_load_missing
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:575,20'
          Dst:             strlen
        - Src:             'mail-user.c:579,24'
          Dst:             master_service_get_name
        - Src:             'mail-user.c:582,18'
          Dst:             event_want_level
        - Src:             'mail-user.c:586,3'
          Dst:             module_dir_load_missing
        - Src:             'mail-user.c:592,7'
          Dst:             strncmp
        - Src:             'mail-user.c:593,7'
          Dst:             strcmp
    - functionName:    mail_user_get_storage_class
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - mail_storage_find_class
        - mail_user_try_load_class_plugin
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:608,12'
          Dst:             mail_storage_find_class
        - Src:             'mail-user.c:613,2'
          Dst:             mail_user_try_load_class_plugin
        - Src:             'mail-user.c:615,12'
          Dst:             mail_storage_find_class
        - Src:             'mail-user.c:617,3'
          Dst:             e_error
    - functionName:    array_get_copy_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - p_memdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:264,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:267,9'
          Dst:             p_memdup
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mail_user_get_alt_usernames
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          155
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_get_copy_i
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_datastack_create
        - str_begins_with
        - strncmp
        - t_split_key_value_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:547,26'
          Dst:             malloc_multiply_check
        - Src:             'mail-user.c:547,26'
          Dst:             p_malloc
        - Src:             'mail-user.c:552,2'
          Dst:             pool_datastack_create
        - Src:             'mail-user.c:552,2'
          Dst:             array_create_i
        - Src:             'mail-user.c:555,7'
          Dst:             t_split_key_value_eq
        - Src:             'mail-user.c:556,25'
          Dst:             strncmp
        - Src:             'mail-user.c:556,25'
          Dst:             str_begins_with
        - Src:             'mail-user.c:557,10'
          Dst:             p_strdup
        - Src:             'mail-user.c:558,4'
          Dst:             array_append_i
        - Src:             'mail-user.c:559,12'
          Dst:             p_strdup
        - Src:             'mail-user.c:560,4'
          Dst:             array_append_i
        - Src:             'mail-user.c:563,2'
          Dst:             array_append_space_i
        - Src:             'mail-user.c:566,25'
          Dst:             array_get_copy_i
    - functionName:    t_split_key_value_eq
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_split_key_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:190,9'
          Dst:             t_split_key_value
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mail_user_get_anvil_session
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_user_get_alt_usernames
        - master_service_get_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:536,28'
          Dst:             master_service_get_name
        - Src:             'mail-user.c:537,29'
          Dst:             mail_user_get_alt_usernames
    - functionName:    mail_user_lock_file_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          128
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mail_namespace_find_inbox
        - mail_storage_lock_create
        - mail_user_get_home
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:499,13'
          Dst:             mail_user_get_home
        - Src:             'mail-user.c:502,3'
          Dst:             __errno_location
        - Src:             'mail-user.c:507,3'
          Dst:             __errno_location
        - Src:             'mail-user.c:512,3'
          Dst:             mail_namespace_find_inbox
        - Src:             'mail-user.c:520,10'
          Dst:             t_strdup_printf
        - Src:             'mail-user.c:522,10'
          Dst:             t_strdup_printf
        - Src:             'mail-user.c:527,9'
          Dst:             mail_storage_lock_create
    - functionName:    mail_user_get_volatile_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_find_inbox
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:486,3'
          Dst:             mail_namespace_find_inbox
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    mail_user_set_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_get_name
        - str_append
        - str_append_c
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:477,2'
          Dst:             str_append
        - Src:             'mail-user.c:478,2'
          Dst:             str_append
        - Src:             'mail-user.c:479,19'
          Dst:             master_service_get_name
        - Src:             'mail-user.c:479,2'
          Dst:             str_append
        - Src:             'mail-user.c:480,2'
          Dst:             str_append_c
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_user_is_plugin_loaded
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - array_is_created_i
        - array_lsearch_i
        - i_panic
        - i_strcmp_p
        - module_get_plugin_name
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:444,7'
          Dst:             array_is_created_i
        - Src:             'mail-user.c:446,7'
          Dst:             t_push
        - Src:             'mail-user.c:447,22'
          Dst:             module_get_plugin_name
        - Src:             'mail-user.c:448,9'
          Dst:             array_lsearch_i
        - Src:             'mail-user.c:448,9'
          Dst:             i_strcmp_p
        - Src:             'mail-user.c:450,4'
          Dst:             t_pop
        - Src:             'mail-user.c:450,4'
          Dst:             i_panic
    - functionName:    mail_user_try_home_expand
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          91
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - home_expand_tilde
        - mail_user_get_home
        - str_begins_with
        - strcmp
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:458,7'
          Dst:             strncmp
        - Src:             'mail-user.c:458,7'
          Dst:             str_begins_with
        - Src:             'mail-user.c:458,38'
          Dst:             strcmp
        - Src:             'mail-user.c:463,6'
          Dst:             mail_user_get_home
        - Src:             'mail-user.c:466,9'
          Dst:             home_expand_tilde
    - functionName:    mail_user_home_expand
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_user_try_home_expand
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:369,8'
          Dst:             mail_user_try_home_expand
    - functionName:    mail_namespace_is_removable
      functionSourceFile: '/src/dovecot/src/lib-storage/./mail-namespace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_user_drop_useless_namespaces
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_namespace_destroy
        - mail_namespace_is_removable
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:362,7'
          Dst:             mail_namespace_is_removable
        - Src:             'mail-user.c:363,4'
          Dst:             mail_namespace_destroy
    - functionName:    mail_user_add_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - hook_mail_namespaces_added
        - i_panic
        - strlen
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:338,4'
          Dst:             i_panic
        - Src:             'mail-user.c:339,8'
          Dst:             strlen
        - Src:             'mail-user.c:339,29'
          Dst:             strlen
        - Src:             'mail-user.c:347,2'
          Dst:             t_push
        - Src:             'mail-user.c:348,3'
          Dst:             hook_mail_namespaces_added
        - Src:             'mail-user.c:349,4'
          Dst:             t_pop
        - Src:             'mail-user.c:349,4'
          Dst:             i_panic
    - functionName:    mail_user_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:205,28'
          Dst:             strcmp
    - functionName:    mail_user_get_mail_max_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_user_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_user_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:191,2'
          Dst:             i_panic
        - Src:             'mail-user.c:192,2'
          Dst:             mail_user_unref
    - functionName:    mail_user_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          139
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - i_panic
        - mail_user_session_finished
        - pool_unref
        - t_pop
        - t_push
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:166,2'
          Dst:             i_panic
        - Src:             'mail-user.c:176,3'
          Dst:             mail_user_session_finished
        - Src:             'mail-user.c:180,2'
          Dst:             t_push
        - Src:             'mail-user.c:183,4'
          Dst:             t_pop
        - Src:             'mail-user.c:183,4'
          Dst:             i_panic
        - Src:             'mail-user.c:184,2'
          Dst:             event_unref
        - Src:             'mail-user.c:185,2'
          Dst:             i_panic
        - Src:             'mail-user.c:186,2'
          Dst:             pool_unref
    - functionName:    mail_user_session_finished
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          158
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - process_stat_read_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:143,2'
          Dst:             process_stat_read_finish
        - Src:             'mail-user.c:145,32'
          Dst:             event_create_passthrough
        - Src:             'mail-user.c:159,2'
          Dst:             event_want_level
        - Src:             'mail-user.c:159,2'
          Dst:             e_debug
        - Src:             'mail-user.c:159,2'
          Dst:             event_send_abort
    - functionName:    mail_user_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 136
      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:             'mail-user.c:133,2'
          Dst:             i_panic
    - functionName:    mail_user_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - hook_mail_user_created
        - i_panic
        - process_stat_read_start
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:116,2'
          Dst:             i_panic
        - Src:             'mail-user.c:120,3'
          Dst:             hook_mail_user_created
        - Src:             'mail-user.c:124,14'
          Dst:             t_strdup
        - Src:             'mail-user.c:127,2'
          Dst:             process_stat_read_start
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_user_add_event_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-user.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - event_add_str
        - str_begins
        - str_begins_builtin_success
        - strncmp
        - t_split_key_value_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-user.c:60,3'
          Dst:             t_split_key_value_eq
        - Src:             'mail-user.c:61,7'
          Dst:             str_begins
        - Src:             'mail-user.c:61,7'
          Dst:             strncmp
        - Src:             'mail-user.c:61,7'
          Dst:             str_begins_builtin_success
        - Src:             'mail-user.c:62,4'
          Dst:             event_add_str
    - functionName:    mail_metadata_accessed_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:733,3'
          Dst:             event_create_passthrough
        - Src:             'mail.c:735,2'
          Dst:             event_want_level
        - Src:             'mail.c:735,2'
          Dst:             e_debug
        - Src:             'mail.c:735,2'
          Dst:             event_send_abort
    - functionName:    mail_opened_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - mail_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:720,3'
          Dst:             mail_event
        - Src:             'mail.c:720,3'
          Dst:             event_create_passthrough
        - Src:             'mail.c:724,3'
          Dst:             event_want_level
        - Src:             'mail.c:724,3'
          Dst:             e_debug
        - Src:             'mail.c:724,3'
          Dst:             event_send_abort
        - Src:             'mail.c:727,3'
          Dst:             event_want_level
        - Src:             'mail.c:727,3'
          Dst:             e_debug
        - Src:             'mail.c:727,3'
          Dst:             event_send_abort
    - functionName:    mail_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_event_create
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:161,2'
          Dst:             mail_event_create
    - functionName:    mail_event_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - dec2str_buf
        - event_add_category
        - event_add_int
        - event_create
        - event_set_append_log_prefix
        - i_panic
        - index_mail_get_age_days
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:132,14'
          Dst:             event_create
        - Src:             'mail.c:133,2'
          Dst:             event_add_category
        - Src:             'mail.c:134,2'
          Dst:             event_add_int
        - Src:             'mail.c:135,2'
          Dst:             event_add_int
        - Src:             'mail.c:137,6'
          Dst:             index_mail_get_age_days
        - Src:             'mail.c:138,3'
          Dst:             event_add_int
        - Src:             'mail.c:140,2'
          Dst:             t_push
        - Src:             'mail.c:144,4'
          Dst:             i_panic
        - Src:             'mail.c:149,5'
          Dst:             dec2str_buf
        - Src:             'mail.c:147,13'
          Dst:             t_strconcat
        - Src:             'mail.c:153,3'
          Dst:             event_set_append_log_prefix
        - Src:             'mail.c:154,4'
          Dst:             t_pop
        - Src:             'mail.c:154,4'
          Dst:             i_panic
    - functionName:    index_mail_get_age_days
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:103,3'
          Dst:             mail_index_get_header
    - functionName:    mail_metadata_access_start
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_event_create
        - mail_set_aborted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:699,3'
          Dst:             mail_set_aborted
        - Src:             'mail.c:703,2'
          Dst:             mail_event_create
    - functionName:    mail_set_aborted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:332,2'
          Dst:             mail_storage_set_error
    - functionName:    mail_stream_access_start
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_event_create
        - mail_set_aborted
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:688,3'
          Dst:             mail_set_aborted
        - Src:             'mail.c:692,2'
          Dst:             mail_event_create
    - functionName:    mail_message_has_attachment
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_message_has_attachment
        - message_part_is_attachment
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:592,61'
          Dst:             t_push
        - Src:             'mail.c:593,20'
          Dst:             message_part_is_attachment
        - Src:             'mail.c:594,4'
          Dst:             mail_message_has_attachment
        - Src:             'mail.c:595,4'
          Dst:             t_pop
        - Src:             'mail.c:595,4'
          Dst:             i_panic
    - functionName:    mail_parse_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_bodystructure_parse_full
        - mail_get_special
        - mail_set_cache_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:613,6'
          Dst:             mail_get_special
        - Src:             'mail.c:619,6'
          Dst:             imap_bodystructure_parse_full
        - Src:             'mail.c:621,3'
          Dst:             mail_set_cache_corrupted
    - functionName:    mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:437,2'
          Dst:             i_panic
    - functionName:    mail_set_cache_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_set_attachment_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          186
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - mail_get_parts
        - mail_message_has_attachment
        - mail_parse_parts
        - mail_set_critical
        - mail_storage_get_last_internal_error
        - mail_storage_get_settings
        - mail_update_keywords
        - mailbox_get_storage
        - mailbox_get_vname
        - mailbox_keywords_create
        - mailbox_keywords_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:632,29'
          Dst:             mailbox_get_storage
        - Src:             'mail.c:632,3'
          Dst:             mail_storage_get_settings
        - Src:             'mail.c:652,6'
          Dst:             mail_get_parts
        - Src:             'mail.c:659,6'
          Dst:             mail_parse_parts
        - Src:             'mail.c:661,13'
          Dst:             mailbox_keywords_create
        - Src:             'mail.c:662,6'
          Dst:             mailbox_keywords_create
        - Src:             'mail.c:665,7'
          Dst:             mailbox_get_vname
        - Src:             'mail.c:666,7'
          Dst:             mail_storage_get_last_internal_error
        - Src:             'mail.c:663,3'
          Dst:             mail_set_critical
        - Src:             'mail.c:669,25'
          Dst:             mail_message_has_attachment
        - Src:             'mail.c:672,3'
          Dst:             mail_update_keywords
        - Src:             'mail.c:673,3'
          Dst:             mail_update_keywords
        - Src:             'mail.c:678,3'
          Dst:             mailbox_keywords_unref
        - Src:             'mail.c:680,3'
          Dst:             mailbox_keywords_unref
    - functionName:    mail_get_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:205,2'
          Dst:             t_push
        - Src:             'mail.c:207,4'
          Dst:             t_pop
        - Src:             'mail.c:207,4'
          Dst:             i_panic
    - functionName:    mail_update_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_has_attachment_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_get_keywords
        - str_array_icase_find
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:602,26'
          Dst:             mail_get_keywords
        - Src:             'mail.c:603,10'
          Dst:             str_array_icase_find
        - Src:             'mail.c:604,3'
          Dst:             str_array_icase_find
    - functionName:    mail_get_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_generate_guid_128_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - buffer_create_from_data
        - buffer_set_used_size
        - guid_128_from_string
        - sha1_get_digest
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:573,6'
          Dst:             guid_128_from_string
        - Src:             'mail.c:575,3'
          Dst:             buffer_create_from_data
        - Src:             'mail.c:576,3'
          Dst:             buffer_set_used_size
        - Src:             'mail.c:577,25'
          Dst:             strlen
        - Src:             'mail.c:577,3'
          Dst:             sha1_get_digest
        - Src:             'mail.c:581,3'
          Dst:             buffer_append
    - functionName:    mail_precache
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:554,2'
          Dst:             t_push
        - Src:             'mail.c:556,4'
          Dst:             t_pop
        - Src:             'mail.c:556,4'
          Dst:             i_panic
    - functionName:    mail_set_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:544,2'
          Dst:             mail_storage_set_error
    - functionName:    mail_autoexpunge
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_expunge
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:538,2'
          Dst:             mail_expunge
    - functionName:    mail_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_expunge_requested_event
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:528,2'
          Dst:             t_push
        - Src:             'mail.c:530,3'
          Dst:             mail_expunge_requested_event
        - Src:             'mail.c:531,4'
          Dst:             t_pop
        - Src:             'mail.c:531,4'
          Dst:             i_panic
    - functionName:    mail_expunge_requested_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - mail_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:741,3'
          Dst:             mail_event
        - Src:             'mail.c:741,3'
          Dst:             event_create_passthrough
        - Src:             'mail.c:745,2'
          Dst:             event_want_level
        - Src:             'mail.c:745,2'
          Dst:             e_debug
        - Src:             'mail.c:745,2'
          Dst:             event_send_abort
    - functionName:    mail_update_pop3_uidl
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_update_pvt_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_update_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_get_message_id_no_validation
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_get_message_id_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:483,9'
          Dst:             mail_get_message_id_full
    - functionName:    mail_get_message_id_full
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_get_first_header
        - message_id_get_next
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:454,8'
          Dst:             mail_get_first_header
        - Src:             'mail.c:461,15'
          Dst:             message_id_get_next
        - Src:             'mail.c:465,14'
          Dst:             t_strconcat
    - functionName:    mail_get_first_header
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:272,2'
          Dst:             t_push
        - Src:             'mail.c:274,4'
          Dst:             t_pop
        - Src:             'mail.c:274,4'
          Dst:             i_panic
    - functionName:    mail_get_message_id
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_get_message_id_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:478,9'
          Dst:             mail_get_message_id_full
    - functionName:    mail_get_backend_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_get_binary_properties
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:423,2'
          Dst:             t_push
        - Src:             'mail.c:426,4'
          Dst:             t_pop
        - Src:             'mail.c:426,4'
          Dst:             i_panic
    - functionName:    mail_get_binary_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_set_aborted
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:401,3'
          Dst:             mail_set_aborted
        - Src:             'mail.c:404,2'
          Dst:             t_push
        - Src:             'mail.c:407,4'
          Dst:             t_pop
        - Src:             'mail.c:407,4'
          Dst:             i_panic
        - Src:             'mail.c:408,2'
          Dst:             i_panic
    - functionName:    mail_get_hdr_stream_because
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_set_aborted
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:377,3'
          Dst:             mail_set_aborted
        - Src:             'mail.c:380,2'
          Dst:             t_push
        - Src:             'mail.c:384,4'
          Dst:             t_pop
        - Src:             'mail.c:384,4'
          Dst:             i_panic
        - Src:             'mail.c:385,2'
          Dst:             i_panic
    - functionName:    mail_get_hdr_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_get_hdr_stream_because
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:366,9'
          Dst:             mail_get_hdr_stream_because
    - functionName:    mail_get_stream_because
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_set_aborted
        - t_pop
        - t_push
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:351,3'
          Dst:             mail_set_aborted
        - Src:             'mail.c:354,2'
          Dst:             t_push
        - Src:             'mail.c:358,4'
          Dst:             t_pop
        - Src:             'mail.c:358,4'
          Dst:             i_panic
        - Src:             'mail.c:359,2'
          Dst:             i_panic
    - functionName:    mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_get_stream_because
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:339,9'
          Dst:             mail_get_stream_because
    - functionName:    mail_get_header_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:321,2'
          Dst:             i_panic
        - Src:             'mail.c:322,2'
          Dst:             i_panic
        - Src:             'mail.c:324,2'
          Dst:             t_push
        - Src:             'mail.c:326,4'
          Dst:             t_pop
        - Src:             'mail.c:326,4'
          Dst:             i_panic
    - functionName:    mail_get_headers_utf8
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:308,2'
          Dst:             t_push
        - Src:             'mail.c:310,4'
          Dst:             t_pop
        - Src:             'mail.c:310,4'
          Dst:             i_panic
    - functionName:    mail_get_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:296,2'
          Dst:             t_push
        - Src:             'mail.c:298,4'
          Dst:             t_pop
        - Src:             'mail.c:298,4'
          Dst:             i_panic
    - functionName:    mail_get_first_header_utf8
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:284,2'
          Dst:             t_push
        - Src:             'mail.c:286,4'
          Dst:             t_pop
        - Src:             'mail.c:286,4'
          Dst:             i_panic
    - functionName:    mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:260,2'
          Dst:             t_push
        - Src:             'mail.c:262,4'
          Dst:             t_pop
        - Src:             'mail.c:262,4'
          Dst:             i_panic
    - functionName:    mail_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:249,2'
          Dst:             t_push
        - Src:             'mail.c:251,4'
          Dst:             t_pop
        - Src:             'mail.c:251,4'
          Dst:             i_panic
    - functionName:    mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:238,2'
          Dst:             t_push
        - Src:             'mail.c:240,4'
          Dst:             t_pop
        - Src:             'mail.c:240,4'
          Dst:             i_panic
    - functionName:    mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:227,2'
          Dst:             t_push
        - Src:             'mail.c:229,4'
          Dst:             t_pop
        - Src:             'mail.c:229,4'
          Dst:             i_panic
    - functionName:    mail_get_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:216,2'
          Dst:             t_push
        - Src:             'mail.c:218,4'
          Dst:             t_pop
        - Src:             'mail.c:218,4'
          Dst:             i_panic
    - functionName:    mail_get_keyword_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_get_pvt_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_get_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_add_temp_wanted_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:94,2'
          Dst:             i_panic
    - functionName:    mail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:82,2'
          Dst:             t_push
        - Src:             'mail.c:84,4'
          Dst:             t_pop
        - Src:             'mail.c:84,4'
          Dst:             i_panic
    - functionName:    mail_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:71,2'
          Dst:             t_push
        - Src:             'mail.c:73,4'
          Dst:             t_pop
        - Src:             'mail.c:73,4'
          Dst:             i_panic
    - functionName:    mail_set_seq_saving
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:61,2'
          Dst:             t_push
        - Src:             'mail.c:63,4'
          Dst:             t_pop
        - Src:             'mail.c:63,4'
          Dst:             i_panic
    - functionName:    mail_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:52,2'
          Dst:             t_push
        - Src:             'mail.c:54,4'
          Dst:             t_pop
        - Src:             'mail.c:54,4'
          Dst:             i_panic
    - functionName:    mail_free
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:42,2'
          Dst:             i_panic
    - functionName:    mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - hook_mail_allocated
        - i_panic
        - t_pop
        - t_push
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail.c:26,2'
          Dst:             i_panic
        - Src:             'mail.c:28,2'
          Dst:             t_push
        - Src:             'mail.c:30,3'
          Dst:             hook_mail_allocated
        - Src:             'mail.c:31,4'
          Dst:             t_pop
        - Src:             'mail.c:31,4'
          Dst:             i_panic
    - functionName:    mailbox_internal_attributes_add_prefixes
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_idx_set_i
        - p_strconcat
        - p_strndup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:158,14'
          Dst:             array_count_i
        - Src:             'mailbox-attribute.c:160,25'
          Dst:             array_idx_i
        - Src:             'mailbox-attribute.c:164,40'
          Dst:             strlen
        - Src:             'mailbox-attribute.c:164,19'
          Dst:             p_strndup
        - Src:             'mailbox-attribute.c:166,19'
          Dst:             p_strconcat
        - Src:             'mailbox-attribute.c:167,3'
          Dst:             array_idx_set_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      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-storage/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    mailbox_internal_attribute_get_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_idx_i
        - mailbox_attribute_internal_cmp
        - str_begins_with
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:111,6'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mailbox-attribute.c:111,6'
          Dst:             mailbox_attribute_internal_cmp
        - Src:             'mailbox-attribute.c:115,10'
          Dst:             array_idx_i
        - Src:             'mailbox-attribute.c:121,10'
          Dst:             array_idx_i
        - Src:             'mailbox-attribute.c:122,7'
          Dst:             strlen
        - Src:             'mailbox-attribute.c:122,7'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:122,7'
          Dst:             str_begins_with
    - functionName:    mailbox_attribute_internal_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:43,9'
          Dst:             strcmp
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mailbox_internal_attribute_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_internal_attribute_get_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:139,10'
          Dst:             mailbox_internal_attribute_get_int
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_attribute_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          140
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:594,3'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:602,2'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:608,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mailbox_attribute_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          137
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:563,10'
          Dst:             array_get_i
        - Src:             'mailbox-attribute.c:567,8'
          Dst:             strcasecmp
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_internal_attributes_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          407
      EdgeCount:       90
      CyclomaticComplexity: 25
      functionsReached:
        - array_append_i
        - array_bsearch_insert_pos_i
        - array_count_i
        - array_get_i
        - mailbox_attribute_internal_cmp
        - mailbox_internal_attributes_add_prefixes
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
        - t_strdup_noconst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:183,16'
          Dst:             t_strdup_noconst
        - Src:             'mailbox-attribute.c:184,9'
          Dst:             strlen
        - Src:             'mailbox-attribute.c:194,8'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mailbox-attribute.c:194,8'
          Dst:             mailbox_attribute_internal_cmp
        - Src:             'mailbox-attribute.c:199,9'
          Dst:             array_get_i
        - Src:             'mailbox-attribute.c:205,8'
          Dst:             str_begins
        - Src:             'mailbox-attribute.c:205,8'
          Dst:             strlen
        - Src:             'mailbox-attribute.c:205,8'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:205,8'
          Dst:             strlen
        - Src:             'mailbox-attribute.c:205,8'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-attribute.c:228,8'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:248,29'
          Dst:             array_count_i
        - Src:             'mailbox-attribute.c:251,4'
          Dst:             mailbox_internal_attributes_add_prefixes
        - Src:             'mailbox-attribute.c:254,4'
          Dst:             array_append_i
    - functionName:    mailbox_attribute_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          218
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - i_panic
        - mail_storage_set_critical
        - mailbox_attribute_dict_is_enabled
        - mailbox_internal_attributes_get
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_datastack_create
        - pool_unref
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:506,2'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:509,12'
          Dst:             mailbox_attribute_dict_is_enabled
        - Src:             'mailbox-attribute.c:512,3'
          Dst:             mail_storage_set_critical
        - Src:             'mailbox-attribute.c:517,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-attribute.c:517,2'
          Dst:             array_create_i
        - Src:             'mailbox-attribute.c:518,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-attribute.c:519,6'
          Dst:             mailbox_internal_attributes_get
        - Src:             'mailbox-attribute.c:524,6'
          Dst:             array_count_i
        - Src:             'mailbox-attribute.c:526,3'
          Dst:             pool_unref
        - Src:             'mailbox-attribute.c:531,12'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-attribute.c:531,12'
          Dst:             p_malloc
        - Src:             'mailbox-attribute.c:535,2'
          Dst:             array_create_i
        - Src:             'mailbox-attribute.c:541,7'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:544,3'
          Dst:             array_append_i
    - functionName:    mailbox_attribute_dict_is_enabled
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - event_create
        - event_unref
        - pool_unref
        - settings_event_add_filter_name
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:482,24'
          Dst:             event_create
        - Src:             'mailbox-attribute.c:483,2'
          Dst:             settings_event_add_filter_name
        - Src:             'mailbox-attribute.c:484,12'
          Dst:             settings_get
        - Src:             'mailbox-attribute.c:486,18'
          Dst:             array_is_created_i
        - Src:             'mailbox-attribute.c:488,2'
          Dst:             pool_unref
        - Src:             'mailbox-attribute.c:489,2'
          Dst:             event_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_attribute_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_attribute_get_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:460,13'
          Dst:             mailbox_attribute_get_common
        - Src:             'mailbox-attribute.c:463,2'
          Dst:             i_panic
    - functionName:    mailbox_attribute_get_common
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          282
      EdgeCount:       62
      CyclomaticComplexity: 14
      functionsReached:
        - i_unreached
        - mailbox_internal_attribute_get
        - str_begins_with
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mailbox-attribute.c:383,3'
          Branch Sides:    []
        - Branch String:   'mailbox-attribute.c:416,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-attribute.c:374,10'
          Dst:             mailbox_internal_attribute_get
        - Src:             'mailbox-attribute.c:378,6'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:378,6'
          Dst:             str_begins_with
        - Src:             'mailbox-attribute.c:406,4'
          Dst:             i_unreached
        - Src:             'mailbox-attribute.c:432,4'
          Dst:             i_unreached
    - functionName:    mailbox_attribute_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mailbox_attribute_get_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:444,13'
          Dst:             mailbox_attribute_get_common
        - Src:             'mailbox-attribute.c:447,2'
          Dst:             i_panic
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    mailbox_attribute_value_to_string
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          130
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_more
        - i_stream_seek
        - i_stream_skip
        - mail_storage_set_critical
        - mail_storage_set_error
        - memchr
        - str_append_data
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:338,8'
          Dst:             t_str_new
        - Src:             'mailbox-attribute.c:339,2'
          Dst:             i_stream_seek
        - Src:             'mailbox-attribute.c:340,9'
          Dst:             i_stream_read_more
        - Src:             'mailbox-attribute.c:341,7'
          Dst:             memchr
        - Src:             'mailbox-attribute.c:342,4'
          Dst:             mail_storage_set_error
        - Src:             'mailbox-attribute.c:346,3'
          Dst:             str_append_data
        - Src:             'mailbox-attribute.c:347,3'
          Dst:             i_stream_skip
        - Src:             'mailbox-attribute.c:351,4'
          Dst:             i_stream_get_name
        - Src:             'mailbox-attribute.c:352,4'
          Dst:             i_stream_get_error
        - Src:             'mailbox-attribute.c:350,3'
          Dst:             mail_storage_set_critical
        - Src:             'mailbox-attribute.c:355,2'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:356,11'
          Dst:             str_c
    - functionName:    mailbox_attribute_unset
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_attribute_set_common
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:323,9'
          Dst:             mailbox_attribute_set_common
    - functionName:    mailbox_attribute_set_common
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          196
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - i_unreached
        - mail_storage_set_error
        - mailbox_internal_attribute_get
        - str_begins_with
        - strncmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mailbox-attribute.c:283,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-attribute.c:274,10'
          Dst:             mailbox_internal_attribute_get
        - Src:             'mailbox-attribute.c:278,6'
          Dst:             strncmp
        - Src:             'mailbox-attribute.c:278,6'
          Dst:             str_begins_with
        - Src:             'mailbox-attribute.c:292,69'
          Dst:             t_strdup_printf
        - Src:             'mailbox-attribute.c:292,5'
          Dst:             mail_storage_set_error
        - Src:             'mailbox-attribute.c:300,4'
          Dst:             i_unreached
    - functionName:    mailbox_attribute_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_attribute_set_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:314,9'
          Dst:             mailbox_attribute_set_common
    - functionName:    mailbox_attribute_unregister_internals
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_attribute_unregister_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:96,3'
          Dst:             mailbox_attribute_unregister_internal
    - functionName:    mailbox_attribute_unregister_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_delete_i
        - i_panic
        - mailbox_attribute_internal_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:81,7'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mailbox-attribute.c:81,7'
          Dst:             mailbox_attribute_internal_cmp
        - Src:             'mailbox-attribute.c:83,3'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:87,2'
          Dst:             array_delete_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_attribute_register_internals
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_attribute_register_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:73,3'
          Dst:             mailbox_attribute_register_internal
    - functionName:    mailbox_attribute_register_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - array_bsearch_insert_pos_i
        - array_insert_i
        - i_panic
        - mailbox_attribute_internal_cmp
        - p_strdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:55,2'
          Dst:             i_panic
        - Src:             'mailbox-attribute.c:59,8'
          Dst:             array_bsearch_insert_pos_i
        - Src:             'mailbox-attribute.c:59,8'
          Dst:             mailbox_attribute_internal_cmp
        - Src:             'mailbox-attribute.c:63,13'
          Dst:             p_strdup
        - Src:             'mailbox-attribute.c:64,2'
          Dst:             array_insert_i
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_attributes_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:28,2'
          Dst:             pool_unref
        - Src:             'mailbox-attribute.c:29,2'
          Dst:             array_free_i
    - functionName:    mailbox_attributes_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - mailbox_attributes_internal_init
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute.c:19,3'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-attribute.c:20,2'
          Dst:             array_create_i
        - Src:             'mailbox-attribute.c:23,2'
          Dst:             mailbox_attributes_internal_init
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_get_expunged_guids
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          122
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - i_memcpy
        - mail_transaction_log_view_next
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - seq_range_array_remove
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:137,9'
          Dst:             mail_transaction_log_view_next
        - Src:             'mailbox-get.c:145,9'
          Dst:             seq_range_exists
        - Src:             'mailbox-get.c:147,4'
          Dst:             seq_range_array_remove
        - Src:             'mailbox-get.c:149,14'
          Dst:             array_append_space_i
        - Src:             'mailbox-get.c:151,4'
          Dst:             i_memcpy
        - Src:             'mailbox-get.c:157,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mailbox-get.c:158,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-get.c:159,13'
          Dst:             array_append_space_i
    - functionName:    add_guid_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:68,4'
          Dst:             seq_range_array_add
    - functionName:    add_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:52,4'
          Dst:             seq_range_array_add_range
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_get_expunges_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          199
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mail_index_modseq_get_next_log_offset
        - mail_transaction_log_get_tail
        - mail_transaction_log_view_close
        - mail_transaction_log_view_open
        - mail_transaction_log_view_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:86,7'
          Dst:             mail_index_modseq_get_next_log_offset
        - Src:             'mailbox-get.c:99,13'
          Dst:             mail_transaction_log_view_open
        - Src:             'mailbox-get.c:100,8'
          Dst:             mail_transaction_log_view_set
        - Src:             'mailbox-get.c:105,3'
          Dst:             mail_transaction_log_get_tail
        - Src:             'mailbox-get.c:107,4'
          Dst:             i_panic
        - Src:             'mailbox-get.c:108,10'
          Dst:             mail_transaction_log_view_set
        - Src:             'mailbox-get.c:116,3'
          Dst:             mail_transaction_log_view_close
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_get_expunged_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_expunges_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:237,9'
          Dst:             mailbox_get_expunges_full
    - functionName:    mailbox_get_expunges_full
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          213
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - add_expunges
        - add_guid_expunges
        - array_count_i
        - array_create_i
        - array_free_i
        - array_idx_i
        - i_panic
        - mail_transaction_log_view_close
        - mail_transaction_log_view_mark
        - mail_transaction_log_view_next
        - mail_transaction_log_view_rewind
        - mailbox_get_expunged_guids
        - mailbox_get_expunges_init
        - seq_range_array_intersect
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mailbox-get.c:201,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-get.c:179,2'
          Dst:             array_count_i
        - Src:             'mailbox-get.c:179,2'
          Dst:             i_panic
        - Src:             'mailbox-get.c:180,2'
          Dst:             i_panic
        - Src:             'mailbox-get.c:182,8'
          Dst:             mailbox_get_expunges_init
        - Src:             'mailbox-get.c:186,10'
          Dst:             array_idx_i
        - Src:             'mailbox-get.c:191,3'
          Dst:             array_create_i
        - Src:             'mailbox-get.c:194,2'
          Dst:             mail_transaction_log_view_mark
        - Src:             'mailbox-get.c:195,16'
          Dst:             mail_transaction_log_view_next
        - Src:             'mailbox-get.c:203,4'
          Dst:             add_expunges
        - Src:             'mailbox-get.c:206,4'
          Dst:             add_guid_expunges
        - Src:             'mailbox-get.c:211,2'
          Dst:             mail_transaction_log_view_rewind
        - Src:             'mailbox-get.c:214,2'
          Dst:             seq_range_array_intersect
        - Src:             'mailbox-get.c:217,3'
          Dst:             mailbox_get_expunged_guids
        - Src:             'mailbox-get.c:218,3'
          Dst:             array_free_i
        - Src:             'mailbox-get.c:221,2'
          Dst:             mail_transaction_log_view_close
    - functionName:    mailbox_get_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_expunges_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:229,9'
          Dst:             mailbox_get_expunges_full
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mailbox_get_uid_range
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - seq_range_array_add
        - seq_range_array_add_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:22,10'
          Dst:             array_get_i
        - Src:             'mailbox-get.c:25,4'
          Dst:             i_panic
        - Src:             'mailbox-get.c:27,5'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mailbox-get.c:26,4'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-get.c:32,5'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-get.c:33,4'
          Dst:             seq_range_array_add_range
        - Src:             'mailbox-get.c:37,4'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-get.c:38,4'
          Dst:             seq_range_array_add
    - functionName:    mailbox_get_seq_range
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-get.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 12
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup_seq_range
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-get.c:11,8'
          Dst:             mail_index_lookup_seq_range
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_namespace_prefix_is_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/./mail-namespace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          89
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - mail_namespace_get_sep
        - str_begins_builtin_success
        - str_begins_icase
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mail-namespace.h:211,10'
          Dst:             str_begins_icase
        - Src:             './mail-namespace.h:211,10'
          Dst:             strncasecmp
        - Src:             './mail-namespace.h:211,10'
          Dst:             str_begins_builtin_success
        - Src:             './mail-namespace.h:212,23'
          Dst:             mail_namespace_get_sep
    - functionName:    mailbox_guid_cache_add_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-guid-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          108
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - e_warning
        - guid_128_to_string
        - hash_table_insert
        - hash_table_lookup
        - i_memcpy
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_get_metadata
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-guid-cache.c:48,8'
          Dst:             mailbox_alloc
        - Src:             'mailbox-guid-cache.c:49,6'
          Dst:             mailbox_get_metadata
        - Src:             'mailbox-guid-cache.c:51,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mailbox-guid-cache.c:51,3'
          Dst:             e_error
        - Src:             'mailbox-guid-cache.c:54,20'
          Dst:             hash_table_lookup
        - Src:             'mailbox-guid-cache.c:56,3'
          Dst:             guid_128_to_string
        - Src:             'mailbox-guid-cache.c:56,3'
          Dst:             e_warning
        - Src:             'mailbox-guid-cache.c:61,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-guid-cache.c:61,9'
          Dst:             p_malloc
        - Src:             'mailbox-guid-cache.c:63,3'
          Dst:             i_memcpy
        - Src:             'mailbox-guid-cache.c:64,16'
          Dst:             p_strdup
        - Src:             'mailbox-guid-cache.c:66,3'
          Dst:             hash_table_insert
        - Src:             'mailbox-guid-cache.c:68,2'
          Dst:             mailbox_free
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    mailbox_guid_cache_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-guid-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          203
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - guid_128_cmp
        - guid_128_hash
        - hash_table_clear
        - hash_table_create
        - i_panic
        - mail_namespace_prefix_is_inbox
        - mailbox_alloc
        - mailbox_exists
        - mailbox_free
        - mailbox_guid_cache_add_mailbox
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - p_clear
        - pool_alloconly_create
        - t_pop
        - t_push
        - t_strndup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-guid-cache.c:78,4'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-guid-cache.c:79,3'
          Dst:             hash_table_create
        - Src:             'mailbox-guid-cache.c:79,3'
          Dst:             guid_128_hash
        - Src:             'mailbox-guid-cache.c:79,3'
          Dst:             guid_128_cmp
        - Src:             'mailbox-guid-cache.c:82,3'
          Dst:             hash_table_clear
        - Src:             'mailbox-guid-cache.c:83,3'
          Dst:             p_clear
        - Src:             'mailbox-guid-cache.c:89,8'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-guid-cache.c:93,17'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-guid-cache.c:97,3'
          Dst:             t_push
        - Src:             'mailbox-guid-cache.c:98,4'
          Dst:             mailbox_guid_cache_add_mailbox
        - Src:             'mailbox-guid-cache.c:99,5'
          Dst:             t_pop
        - Src:             'mailbox-guid-cache.c:99,5'
          Dst:             i_panic
        - Src:             'mailbox-guid-cache.c:101,37'
          Dst:             mail_namespace_prefix_is_inbox
        - Src:             'mailbox-guid-cache.c:105,26'
          Dst:             t_strndup
        - Src:             'mailbox-guid-cache.c:111,25'
          Dst:             mailbox_alloc
        - Src:             'mailbox-guid-cache.c:113,7'
          Dst:             mailbox_exists
        - Src:             'mailbox-guid-cache.c:115,4'
          Dst:             mailbox_guid_cache_add_mailbox
        - Src:             'mailbox-guid-cache.c:116,3'
          Dst:             mailbox_free
        - Src:             'mailbox-guid-cache.c:119,6'
          Dst:             mailbox_list_iter_deinit
    - functionName:    mailbox_guid_cache_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-guid-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - hash_table_lookup
        - mailbox_guid_cache_refresh
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-guid-cache.c:23,3'
          Dst:             mailbox_guid_cache_refresh
        - Src:             'mailbox-guid-cache.c:24,9'
          Dst:             hash_table_lookup
        - Src:             'mailbox-guid-cache.c:26,9'
          Dst:             hash_table_lookup
        - Src:             'mailbox-guid-cache.c:28,4'
          Dst:             mailbox_guid_cache_refresh
        - Src:             'mailbox-guid-cache.c:29,10'
          Dst:             hash_table_lookup
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_header_lookup_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-header.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - i_panic
        - mailbox_header_lookup_init
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-header.c:105,2'
          Dst:             i_panic
        - Src:             'mailbox-header.c:107,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-header.c:107,2'
          Dst:             array_create_i
        - Src:             'mailbox-header.c:109,3'
          Dst:             array_append_i
        - Src:             'mailbox-header.c:111,3'
          Dst:             array_append_i
        - Src:             'mailbox-header.c:112,2'
          Dst:             array_append_space_i
        - Src:             'mailbox-header.c:113,47'
          Dst:             array_idx_i
        - Src:             'mailbox-header.c:113,9'
          Dst:             mailbox_header_lookup_init
    - functionName:    mailbox_header_lookup_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-header.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_header_lookup_init_real
        - t_pop
        - t_push
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-header.c:70,2'
          Dst:             t_push
        - Src:             'mailbox-header.c:71,9'
          Dst:             mailbox_header_lookup_init_real
        - Src:             'mailbox-header.c:72,4'
          Dst:             t_pop
        - Src:             'mailbox-header.c:72,4'
          Dst:             i_panic
    - functionName:    mailbox_header_lookup_init_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-header.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          243
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - i_panic
        - i_strcasecmp_p
        - mail_cache_register_fields
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - qsort
        - strcasecmp
        - t_malloc0
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-header.c:23,2'
          Dst:             i_panic
        - Src:             'mailbox-header.c:29,19'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-header.c:29,19'
          Dst:             t_malloc0
        - Src:             'mailbox-header.c:30,2'
          Dst:             i_memcpy
        - Src:             'mailbox-header.c:31,2'
          Dst:             qsort
        - Src:             'mailbox-header.c:31,2'
          Dst:             i_strcasecmp_p
        - Src:             'mailbox-header.c:35,11'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-header.c:35,11'
          Dst:             t_malloc0
        - Src:             'mailbox-header.c:37,16'
          Dst:             strcasecmp
        - Src:             'mailbox-header.c:39,23'
          Dst:             t_strconcat
        - Src:             'mailbox-header.c:43,2'
          Dst:             mail_cache_register_fields
        - Src:             'mailbox-header.c:46,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-header.c:47,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-header.c:47,8'
          Dst:             p_malloc
        - Src:             'mailbox-header.c:53,13'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-header.c:53,13'
          Dst:             p_malloc
        - Src:             'mailbox-header.c:56,14'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-header.c:56,14'
          Dst:             p_malloc
        - Src:             'mailbox-header.c:59,18'
          Dst:             p_strdup
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_header_lookup_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-header.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - pool_unref
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-header.c:91,2'
          Dst:             i_panic
        - Src:             'mailbox-header.c:95,2'
          Dst:             pool_unref
    - functionName:    mailbox_header_lookup_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-header.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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-header.c:78,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_keyword_is_valid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          273
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - mail_index_keyword_lookup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:117,2'
          Dst:             i_panic
        - Src:             'mailbox-keywords.c:120,6'
          Dst:             mail_index_keyword_lookup
    - functionName:    mailbox_keywords_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_keywords_unref
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:109,2'
          Dst:             mail_index_keywords_unref
    - functionName:    mailbox_keywords_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_keywords_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:104,2'
          Dst:             mail_index_keywords_ref
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_keywords_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_create_i
        - i_panic
        - mail_index_keywords_create_from_indexes
        - pool_datastack_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:92,2'
          Dst:             i_panic
        - Src:             'mailbox-keywords.c:94,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-keywords.c:94,2'
          Dst:             array_create_i
        - Src:             'mailbox-keywords.c:96,2'
          Dst:             array_append_i
        - Src:             'mailbox-keywords.c:97,2'
          Dst:             array_append_i
        - Src:             'mailbox-keywords.c:98,9'
          Dst:             mail_index_keywords_create_from_indexes
    - functionName:    mailbox_keywords_create_from_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_keywords_create_from_indexes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:82,2'
          Dst:             i_panic
        - Src:             'mailbox-keywords.c:84,9'
          Dst:             mail_index_keywords_create_from_indexes
    - functionName:    mailbox_keywords_create_skip
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - i_panic
        - mail_index_keywords_create
        - mailbox_keyword_is_valid
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:13,2'
          Dst:             t_push
        - Src:             'mailbox-keywords.c:17,3'
          Dst:             pool_datastack_create
        - Src:             'mailbox-keywords.c:17,3'
          Dst:             array_create_i
        - Src:             'mailbox-keywords.c:19,8'
          Dst:             mailbox_keyword_is_valid
        - Src:             'mailbox-keywords.c:20,5'
          Dst:             array_append_i
        - Src:             'mailbox-keywords.c:22,3'
          Dst:             array_append_space_i
        - Src:             'mailbox-keywords.c:23,8'
          Dst:             mail_index_keywords_create
        - Src:             'mailbox-keywords.c:24,4'
          Dst:             t_pop
        - Src:             'mailbox-keywords.c:24,4'
          Dst:             i_panic
    - functionName:    mailbox_keywords_create_valid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_keywords_create
        - mailbox_keywords_are_valid
        - mailbox_keywords_create_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:66,2'
          Dst:             i_panic
        - Src:             'mailbox-keywords.c:70,6'
          Dst:             mailbox_keywords_are_valid
        - Src:             'mailbox-keywords.c:71,10'
          Dst:             mail_index_keywords_create
        - Src:             'mailbox-keywords.c:74,10'
          Dst:             mailbox_keywords_create_skip
    - functionName:    mailbox_keywords_are_valid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_keyword_is_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:35,8'
          Dst:             mailbox_keyword_is_valid
    - functionName:    mailbox_keywords_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_keywords_create
        - mail_storage_set_error
        - mailbox_keywords_are_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-keywords.c:46,2'
          Dst:             i_panic
        - Src:             'mailbox-keywords.c:50,7'
          Dst:             mailbox_keywords_are_valid
        - Src:             'mailbox-keywords.c:51,3'
          Dst:             mail_storage_set_error
        - Src:             'mailbox-keywords.c:55,16'
          Dst:             mail_index_keywords_create
    - functionName:    node_fix_parents
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    node_has_existing_children
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - node_has_existing_children
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1170,8'
          Dst:             node_has_existing_children
    - functionName:    mailbox_list_mark_node_visited
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_finish_subscriptions
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          175
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - mailbox_list_mark_node_visited
        - mailbox_list_want_subscription
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
        - node_has_existing_children
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1185,29'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-iter.c:1191,10'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-iter.c:1193,9'
          Dst:             mailbox_list_want_subscription
        - Src:             'mailbox-list-iter.c:1202,3'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-iter.c:1203,29'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-iter.c:1214,7'
          Dst:             node_has_existing_children
        - Src:             'mailbox-list-iter.c:1220,2'
          Dst:             mailbox_list_mark_node_visited
    - functionName:    mailbox_list_want_subscription
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - node_has_existing_subscription
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:215,10'
          Dst:             node_has_existing_subscription
    - functionName:    node_has_existing_subscription
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_match_subscriptions
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          120
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_mark_node_visited
        - mailbox_tree_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1131,3'
          Dst:             mailbox_tree_get
        - Src:             'mailbox-list-iter.c:1138,4'
          Dst:             mailbox_list_mark_node_visited
        - Src:             'mailbox-list-iter.c:1143,4'
          Dst:             mailbox_list_mark_node_visited
        - Src:             'mailbox-list-iter.c:1156,2'
          Dst:             mailbox_list_mark_node_visited
    - functionName:    iter_next_try_prefix_pattern
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imap_match
        - imap_match_init
        - mail_namespace_get_sep
        - ns_is_match_within_ns
        - pool_datastack_create
        - strncmp
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:360,2'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:365,7'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:369,23'
          Dst:             t_strndup
        - Src:             'mailbox-list-iter.c:370,25'
          Dst:             pool_datastack_create
        - Src:             'mailbox-list-iter.c:371,17'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:370,9'
          Dst:             imap_match_init
        - Src:             'mailbox-list-iter.c:372,11'
          Dst:             imap_match
        - Src:             'mailbox-list-iter.c:374,3'
          Dst:             ns_is_match_within_ns
    - functionName:    ns_is_match_within_ns
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          169
      EdgeCount:       45
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - ns_match_next
        - ns_match_simple
        - strcmp
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mailbox-list-iter.c:239,3'
          Branch Sides:    []
        - Branch String:   'mailbox-list-iter.c:250,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-iter.c:254,7'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:263,3'
          Dst:             t_push
        - Src:             'mailbox-list-iter.c:265,9'
          Dst:             ns_match_simple
        - Src:             'mailbox-list-iter.c:266,9'
          Dst:             ns_match_next
        - Src:             'mailbox-list-iter.c:269,5'
          Dst:             t_pop
        - Src:             'mailbox-list-iter.c:269,5'
          Dst:             i_panic
    - functionName:    ns_match_simple
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ns_match_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - imap_match
        - imap_match_init
        - list_pattern_has_wildcards
        - mail_namespace_get_sep
        - ns_is_match_within_ns
        - pool_datastack_create
        - strncmp
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:299,38'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:305,7'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:313,30'
          Dst:             list_pattern_has_wildcards
        - Src:             'mailbox-list-iter.c:317,23'
          Dst:             t_strndup
        - Src:             'mailbox-list-iter.c:321,26'
          Dst:             pool_datastack_create
        - Src:             'mailbox-list-iter.c:322,18'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:321,10'
          Dst:             imap_match_init
        - Src:             'mailbox-list-iter.c:323,12'
          Dst:             imap_match
        - Src:             'mailbox-list-iter.c:326,9'
          Dst:             ns_is_match_within_ns
    - functionName:    list_pattern_has_wildcards
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_ns_prefix_check_selection_criteria
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ns_has_child_subscriptions
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          114
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_tree_get_root
        - ns_has_child_subscriptions
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:497,7'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:499,8'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mailbox-list-iter.c:502,8'
          Dst:             mailbox_tree_get_root
        - Src:             'mailbox-list-iter.c:505,14'
          Dst:             ns_has_child_subscriptions
    - functionName:    mailbox_list_iter_subscriptions_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_namespace_find_subscribable
        - mail_namespace_get_sep
        - mailbox_tree_init
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:68,8'
          Dst:             mail_namespace_find_subscribable
        - Src:             'mailbox-list-iter.c:74,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:75,27'
          Dst:             mailbox_tree_init
    - functionName:    mailbox_list_ns_prefix_match
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - iter_next_try_prefix_pattern
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:386,3'
          Dst:             t_push
        - Src:             'mailbox-list-iter.c:387,10'
          Dst:             iter_next_try_prefix_pattern
        - Src:             'mailbox-list-iter.c:389,5'
          Dst:             t_pop
        - Src:             'mailbox-list-iter.c:389,5'
          Dst:             i_panic
    - functionName:    ns_prefix_is_visible
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_match_anything
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:405,14'
          Dst:             mailbox_list_match_anything
    - functionName:    mailbox_list_match_anything
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_is_shared_inbox
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - mailbox_ns_prefix_is_shared_inbox
        - ns_prefix_has_visible_child_namespace
        - t_strconcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:457,13'
          Dst:             ns_prefix_has_visible_child_namespace
        - Src:             'mailbox-list-iter.c:460,12'
          Dst:             t_strconcat
        - Src:             'mailbox-list-iter.c:461,14'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-list-iter.c:462,9'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list-iter.c:463,22'
          Dst:             mailbox_ns_prefix_is_shared_inbox
        - Src:             'mailbox-list-iter.c:464,6'
          Dst:             mailbox_is_shared_inbox
        - Src:             'mailbox-list-iter.c:466,10'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list-iter.c:469,6'
          Dst:             mailbox_list_iter_deinit
    - functionName:    ns_prefix_has_visible_child_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ns_prefix_is_visible
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:416,22'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:421,7'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:422,10'
          Dst:             ns_prefix_is_visible
    - functionName:    mailbox_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_iter_init_multiple
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:59,9'
          Dst:             mailbox_list_iter_init_multiple
    - functionName:    mailbox_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mailbox_list_iter_next_call
        - p_clear
        - special_use_selection
        - t_pop
        - t_push
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1366,2'
          Dst:             p_clear
        - Src:             'mailbox-list-iter.c:1369,3'
          Dst:             t_push
        - Src:             'mailbox-list-iter.c:1370,11'
          Dst:             mailbox_list_iter_next_call
        - Src:             'mailbox-list-iter.c:1371,5'
          Dst:             t_pop
        - Src:             'mailbox-list-iter.c:1371,5'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:1372,28'
          Dst:             special_use_selection
    - functionName:    mailbox_ns_prefix_is_shared_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_is_shared_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_ns_prefix_is_shared_inbox
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:441,9'
          Dst:             mailbox_ns_prefix_is_shared_inbox
        - Src:             'mailbox-list-iter.c:442,3'
          Dst:             strncmp
    - functionName:    mailbox_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1391
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_destroy
        - mailbox_tree_deinit
        - mailbox_tree_iterate_deinit
        - p_free_internal
        - pool_unref
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1385,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-iter.c:1386,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list-iter.c:1387,2'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-iter.c:1388,2'
          Dst:             mailbox_tree_deinit
        - Src:             'mailbox-list-iter.c:1389,2'
          Dst:             pool_unref
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    mailbox_list_iter_next_call
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1316
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          449
      EdgeCount:       88
      CyclomaticComplexity: 21
      functionsReached:
        - array_is_created_i
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - i_strdup
        - mail_storage_mailbox_create_event
        - mailbox_list_finish_subscriptions
        - mailbox_list_iter_autocreate_filter
        - mailbox_list_match_subscriptions
        - mailbox_list_set_critical
        - mailbox_name_try_get_settings
        - mailbox_rename_nfc_forced
        - p_array_const_string_join
        - p_free_internal
        - p_strdup
        - pool_unref
        - settings_get
        - strcmp
        - strlen
        - uni_utf8_to_nfc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1232,7'
          Dst:             mailbox_list_match_subscriptions
        - Src:             'mailbox-list-iter.c:1236,15'
          Dst:             mailbox_list_finish_subscriptions
        - Src:             'mailbox-list-iter.c:1251,38'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:1251,9'
          Dst:             uni_utf8_to_nfc
        - Src:             'mailbox-list-iter.c:1252,3'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:1253,25'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:1259,9'
          Dst:             mailbox_rename_nfc_forced
        - Src:             'mailbox-list-iter.c:1262,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-iter.c:1268,14'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:1269,4'
          Dst:             event_want_level
        - Src:             'mailbox-list-iter.c:1269,4'
          Dst:             e_debug
        - Src:             'mailbox-list-iter.c:1269,4'
          Dst:             event_send_abort
        - Src:             'mailbox-list-iter.c:1273,4'
          Dst:             event_want_level
        - Src:             'mailbox-list-iter.c:1273,4'
          Dst:             e_debug
        - Src:             'mailbox-list-iter.c:1273,4'
          Dst:             event_send_abort
        - Src:             'mailbox-list-iter.c:1280,21'
          Dst:             p_strdup
        - Src:             'mailbox-list-iter.c:1288,9'
          Dst:             mailbox_name_try_get_settings
        - Src:             'mailbox-list-iter.c:1291,26'
          Dst:             mail_storage_mailbox_create_event
        - Src:             'mailbox-list-iter.c:1293,10'
          Dst:             settings_get
        - Src:             'mailbox-list-iter.c:1295,4'
          Dst:             event_unref
        - Src:             'mailbox-list-iter.c:1298,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-iter.c:1302,7'
          Dst:             array_is_created_i
        - Src:             'mailbox-list-iter.c:1304,5'
          Dst:             p_array_const_string_join
        - Src:             'mailbox-list-iter.c:1306,4'
          Dst:             p_free_internal
        - Src:             'mailbox-list-iter.c:1307,33'
          Dst:             i_strdup
        - Src:             'mailbox-list-iter.c:1312,3'
          Dst:             pool_unref
        - Src:             'mailbox-list-iter.c:1315,9'
          Dst:             mailbox_list_iter_autocreate_filter
    - functionName:    special_use_selection
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1356
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_iter_autocreate_filter
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         73
      ICount:          482
      EdgeCount:       98
      CyclomaticComplexity: 27
      functionsReached:
        - array_delete_i
        - autocreate_box_match
        - buffer_get_modifiable_data
        - hash_table_insert
        - hash_table_lookup
        - mail_namespace_get_sep
        - p_strdup
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:959,10'
          Dst:             autocreate_box_match
        - Src:             'mailbox-list-iter.c:966,4'
          Dst:             array_delete_i
        - Src:             'mailbox-list-iter.c:967,4'
          Dst:             array_delete_i
        - Src:             'mailbox-list-iter.c:970,7'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-iter.c:978,18'
          Dst:             p_strdup
        - Src:             'mailbox-list-iter.c:979,4'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-iter.c:996,12'
          Dst:             autocreate_box_match
        - Src:             'mailbox-list-iter.c:1010,12'
          Dst:             autocreate_box_match
        - Src:             'mailbox-list-iter.c:1029,14'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:1031,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mailbox-list-iter.c:1032,9'
          Dst:             str_begins
        - Src:             'mailbox-list-iter.c:1032,9'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:1032,9'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:1032,9'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:1032,9'
          Dst:             str_begins_builtin_success
    - functionName:    autocreate_box_match
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          251
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_i
        - mail_namespace_get_sep
        - strcmp
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:920,25'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:922,13'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:926,9'
          Dst:             array_get_i
        - Src:             'mailbox-list-iter.c:929,7'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:931,9'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:931,9'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:932,7'
          Dst:             strncmp
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    2
      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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_iter_init_multiple
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          167
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - hash_table_destroy
        - i_panic
        - mail_namespace_get_sep
        - mailbox_list_iter_init_autocreate
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_list_subscriptions_fill
        - mailbox_tree_init
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:151,2'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:155,7'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mailbox-list-iter.c:162,14'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:163,24'
          Dst:             mailbox_tree_init
        - Src:             'mailbox-list-iter.c:164,3'
          Dst:             mailbox_list_subscriptions_fill
        - Src:             'mailbox-list-iter.c:167,4'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-iter.c:170,18'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-iter.c:172,3'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-iter.c:176,7'
          Dst:             mailbox_list_iter_init_autocreate
        - Src:             'mailbox-list-iter.c:177,4'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-iter.c:182,19'
          Dst:             pool_alloconly_create
    - functionName:    mailbox_list_iter_init_autocreate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          239
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - hash_table_create
        - i_memcpy
        - mailbox_settings_add_ns_prefix
        - malloc_multiply_check
        - p_malloc
        - pool_add_external_ref
        - str_hash
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:107,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-list-iter.c:110,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-iter.c:110,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-iter.c:112,2'
          Dst:             hash_table_create
        - Src:             'mailbox-list-iter.c:112,2'
          Dst:             str_hash
        - Src:             'mailbox-list-iter.c:112,2'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:116,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-iter.c:117,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-iter.c:118,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-iter.c:119,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-iter.c:120,7'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:123,9'
          Dst:             mailbox_settings_add_ns_prefix
        - Src:             'mailbox-list-iter.c:126,3'
          Dst:             array_append_i
        - Src:             'mailbox-list-iter.c:127,3'
          Dst:             pool_add_external_ref
        - Src:             'mailbox-list-iter.c:129,7'
          Dst:             strcmp
        - Src:             'mailbox-list-iter.c:130,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-iter.c:131,14'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-iter.c:134,8'
          Dst:             strcasecmp
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    3
      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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_settings_add_ns_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_settings_get_vname
        - p_memdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:89,10'
          Dst:             mailbox_settings_get_vname
        - Src:             'mailbox-list-iter.c:94,3'
          Dst:             p_memdup
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_ns_iter_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_last_error
        - mailbox_list_set_error
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:652,12'
          Dst:             mailbox_list_get_last_error
        - Src:             'mailbox-list-iter.c:653,3'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_ns_prefix_return
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          511
      EdgeCount:       118
      CyclomaticComplexity: 32
      functionsReached:
        - i_panic
        - mail_namespace_get_sep
        - mailbox_alloc
        - mailbox_exists
        - mailbox_free
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_list_match_anything
        - mailbox_list_ns_iter_failed
        - mailbox_list_ns_prefix_match
        - mailbox_list_want_subscription
        - mailbox_ns_prefix_check_selection_criteria
        - mailbox_ns_prefix_is_shared_inbox
        - mailbox_tree_lookup
        - ns_has_child_subscriptions
        - p_strndup
        - str_begins_builtin_success
        - str_begins_icase
        - strcasecmp
        - strncasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:522,6'
          Dst:             str_begins_icase
        - Src:             'mailbox-list-iter.c:522,6'
          Dst:             strncasecmp
        - Src:             'mailbox-list-iter.c:522,6'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list-iter.c:523,19'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:529,30'
          Dst:             mailbox_list_ns_prefix_match
        - Src:             'mailbox-list-iter.c:534,23'
          Dst:             p_strndup
        - Src:             'mailbox-list-iter.c:539,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list-iter.c:540,3'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:545,9'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-iter.c:546,7'
          Dst:             mailbox_exists
        - Src:             'mailbox-list-iter.c:551,3'
          Dst:             mailbox_free
        - Src:             'mailbox-list-iter.c:562,14'
          Dst:             mailbox_list_match_anything
        - Src:             'mailbox-list-iter.c:566,9'
          Dst:             mailbox_ns_prefix_is_shared_inbox
        - Src:             'mailbox-list-iter.c:579,7'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mailbox-list-iter.c:580,4'
          Dst:             mailbox_list_ns_iter_failed
        - Src:             'mailbox-list-iter.c:585,4'
          Dst:             mailbox_tree_lookup
        - Src:             'mailbox-list-iter.c:598,15'
          Dst:             ns_has_child_subscriptions
        - Src:             'mailbox-list-iter.c:599,5'
          Dst:             mailbox_list_ns_iter_failed
        - Src:             'mailbox-list-iter.c:606,7'
          Dst:             mailbox_list_want_subscription
        - Src:             'mailbox-list-iter.c:610,9'
          Dst:             mailbox_ns_prefix_check_selection_criteria
    - functionName:    mailbox_list_ns_match_patterns
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - ns_match_next
        - ns_match_simple
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:336,7'
          Dst:             ns_match_simple
        - Src:             'mailbox-list-iter.c:342,2'
          Dst:             t_push
        - Src:             'mailbox-list-iter.c:344,8'
          Dst:             ns_match_next
        - Src:             'mailbox-list-iter.c:347,4'
          Dst:             t_pop
        - Src:             'mailbox-list-iter.c:347,4'
          Dst:             i_panic
    - functionName:    inbox_set_children_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_namespace_find_prefix
        - mail_namespace_get_sep
        - mailbox_list_match_anything
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:625,7'
          Dst:             mail_namespace_find_prefix
        - Src:             'mailbox-list-iter.c:638,6'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:637,11'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-iter.c:639,8'
          Dst:             mailbox_list_match_anything
    - functionName:    mailbox_list_ns_iter_try_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         73
      ICount:          504
      EdgeCount:       100
      CyclomaticComplexity: 29
      functionsReached:
        - i_panic
        - inbox_set_children_flags
        - mail_namespace_get_sep
        - mailbox_is_shared_inbox
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init_multiple
        - mailbox_list_iter_next
        - mailbox_list_ns_iter_failed
        - mailbox_list_ns_match_patterns
        - mailbox_list_ns_prefix_return
        - str_begins_builtin_success
        - str_begins_icase
        - strcasecmp
        - strncasecmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:675,4'
          Dst:             inbox_set_children_flags
        - Src:             'mailbox-list-iter.c:684,3'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:685,8'
          Dst:             mailbox_list_ns_match_patterns
        - Src:             'mailbox-list-iter.c:690,8'
          Dst:             mailbox_list_ns_prefix_return
        - Src:             'mailbox-list-iter.c:698,4'
          Dst:             mailbox_list_iter_init_multiple
        - Src:             'mailbox-list-iter.c:702,10'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mailbox-list-iter.c:703,4'
          Dst:             mailbox_list_ns_iter_failed
        - Src:             'mailbox-list-iter.c:710,10'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list-iter.c:719,5'
          Dst:             mailbox_is_shared_inbox
        - Src:             'mailbox-list-iter.c:720,7'
          Dst:             mailbox_list_ns_prefix_return
        - Src:             'mailbox-list-iter.c:728,7'
          Dst:             strcasecmp
        - Src:             'mailbox-list-iter.c:739,7'
          Dst:             str_begins_icase
        - Src:             'mailbox-list-iter.c:739,7'
          Dst:             strncasecmp
        - Src:             'mailbox-list-iter.c:739,7'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list-iter.c:740,20'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:746,7'
          Dst:             strncmp
        - Src:             'mailbox-list-iter.c:761,6'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mailbox-list-iter.c:762,3'
          Dst:             mailbox_list_ns_iter_failed
    - functionName:    mailbox_list_iter_update_real
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          156
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - imap_match
        - mail_namespace_get_sep
        - mailbox_tree_get
        - node_fix_parents
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1420,11'
          Dst:             imap_match
        - Src:             'mailbox-list-iter.c:1422,11'
          Dst:             mailbox_tree_get
        - Src:             'mailbox-list-iter.c:1426,6'
          Dst:             node_fix_parents
        - Src:             'mailbox-list-iter.c:1447,21'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:1447,7'
          Dst:             strrchr
        - Src:             'mailbox-list-iter.c:1451,10'
          Dst:             t_strdup_until
    - functionName:    mailbox_list_iter_update
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1463
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_list_iter_update_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1460,2'
          Dst:             t_push
        - Src:             'mailbox-list-iter.c:1461,3'
          Dst:             mailbox_list_iter_update_real
        - Src:             'mailbox-list-iter.c:1462,4'
          Dst:             t_pop
        - Src:             'mailbox-list-iter.c:1462,4'
          Dst:             i_panic
    - functionName:    autocreate_iter_autobox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1048
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          352
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - array_is_created_i
        - hash_table_insert
        - hash_table_lookup
        - i_panic
        - imap_match
        - mail_namespace_get_sep
        - p_array_const_string_join
        - p_strdup_until
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1072,10'
          Dst:             imap_match
        - Src:             'mailbox-list-iter.c:1075,4'
          Dst:             array_is_created_i
        - Src:             'mailbox-list-iter.c:1076,4'
          Dst:             p_array_const_string_join
        - Src:             'mailbox-list-iter.c:1081,14'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:1096,8'
          Dst:             strrchr
        - Src:             'mailbox-list-iter.c:1097,4'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:1099,5'
          Dst:             p_strdup_until
        - Src:             'mailbox-list-iter.c:1101,12'
          Dst:             imap_match
        - Src:             'mailbox-list-iter.c:1104,7'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-iter.c:1105,4'
          Dst:             hash_table_insert
    - functionName:    mailbox_list_iter_default_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_get_i
        - autocreate_iter_autobox
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:1333,14'
          Dst:             array_get_i
        - Src:             'mailbox-list-iter.c:1336,7'
          Dst:             autocreate_iter_autobox
        - Src:             'mailbox-list-iter.c:1339,2'
          Dst:             array_count_i
        - Src:             'mailbox-list-iter.c:1339,2'
          Dst:             array_count_i
        - Src:             'mailbox-list-iter.c:1339,2'
          Dst:             i_panic
    - functionName:    dup_patterns_without_stars
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:799,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-iter.c:799,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-iter.c:801,13'
          Dst:             p_strdup
    - functionName:    inbox_info_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_namespace_find_inbox
        - mailbox_list_mailbox
        - mailbox_list_ns_iter_failed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:831,23'
          Dst:             mail_namespace_find_inbox
        - Src:             'mailbox-list-iter.c:832,2'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:834,13'
          Dst:             mailbox_list_mailbox
        - Src:             'mailbox-list-iter.c:838,3'
          Dst:             mailbox_list_ns_iter_failed
    - functionName:    patterns_match_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_match
        - imap_match_init_multiple
        - mail_namespace_find_inbox
        - mail_namespace_get_sep
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:816,30'
          Dst:             mail_namespace_find_inbox
        - Src:             'mailbox-list-iter.c:819,34'
          Dst:             pool_datastack_create
        - Src:             'mailbox-list-iter.c:820,12'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-iter.c:819,9'
          Dst:             imap_match_init_multiple
        - Src:             'mailbox-list-iter.c:821,9'
          Dst:             imap_match
    - functionName:    mailbox_list_ns_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_iter_deinit
        - mailbox_list_ns_iter_failed
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:784,7'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mailbox-list-iter.c:785,4'
          Dst:             mailbox_list_ns_iter_failed
        - Src:             'mailbox-list-iter.c:788,2'
          Dst:             pool_unref
    - functionName:    mailbox_list_ns_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_ns_iter_try_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:772,10'
          Dst:             mailbox_list_ns_iter_try_next
    - functionName:    mailbox_list_iter_init_namespaces
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          286
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - dup_patterns_without_stars
        - i_panic
        - inbox_info_init
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - patterns_match_inbox
        - pool_alloconly_create
        - pool_unref
        - str_array_length
        - strlen
        - uni_utf8_to_nfc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-iter.c:857,2'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:859,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-iter.c:860,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-iter.c:860,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-iter.c:864,18'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-iter.c:864,18'
          Dst:             p_malloc
        - Src:             'mailbox-list-iter.c:870,10'
          Dst:             str_array_length
        - Src:             'mailbox-list-iter.c:871,18'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-iter.c:871,18'
          Dst:             p_malloc
        - Src:             'mailbox-list-iter.c:878,39'
          Dst:             strlen
        - Src:             'mailbox-list-iter.c:878,10'
          Dst:             uni_utf8_to_nfc
        - Src:             'mailbox-list-iter.c:880,4'
          Dst:             i_panic
        - Src:             'mailbox-list-iter.c:882,22'
          Dst:             p_strdup
        - Src:             'mailbox-list-iter.c:884,6'
          Dst:             patterns_match_inbox
        - Src:             'mailbox-list-iter.c:891,7'
          Dst:             inbox_info_init
        - Src:             'mailbox-list-iter.c:892,4'
          Dst:             pool_unref
        - Src:             'mailbox-list-iter.c:901,4'
          Dst:             dup_patterns_without_stars
        - Src:             'mailbox-list-iter.c:909,3'
          Dst:             pool_alloconly_create
    - functionName:    mailbox_list_register_all
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_index_init
        - mailbox_list_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-register.c:18,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:19,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:20,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:21,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:22,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:23,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:24,2'
          Dst:             mailbox_list_register
        - Src:             'mailbox-list-register.c:25,2'
          Dst:             mailbox_list_index_init
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:    mailbox_list_subscriptions_fill
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-subscriptions.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_iter_update
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-subscriptions.c:289,9'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-subscriptions.c:291,9'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-subscriptions.c:292,3'
          Dst:             mailbox_list_iter_update
        - Src:             'mailbox-list-subscriptions.c:293,2'
          Dst:             mailbox_tree_iterate_deinit
    - functionName:    mailbox_list_subscriptions_apply_nfc_renames
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-subscriptions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          126
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - e_debug
        - event_send_abort
        - event_want_level
        - mailbox_list_get_last_internal_error
        - mailbox_list_get_temp_prefix
        - mailbox_list_set_critical
        - subsfile_set_subscribed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-subscriptions.c:122,28'
          Dst:             mailbox_list_get_temp_prefix
        - Src:             'mailbox-list-subscriptions.c:124,10'
          Dst:             array_get_i
        - Src:             'mailbox-list-subscriptions.c:132,7'
          Dst:             subsfile_set_subscribed
        - Src:             'mailbox-list-subscriptions.c:137,5'
          Dst:             mailbox_list_get_last_internal_error
        - Src:             'mailbox-list-subscriptions.c:134,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-subscriptions.c:141,7'
          Dst:             subsfile_set_subscribed
        - Src:             'mailbox-list-subscriptions.c:146,5'
          Dst:             mailbox_list_get_last_internal_error
        - Src:             'mailbox-list-subscriptions.c:143,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-subscriptions.c:150,3'
          Dst:             event_want_level
        - Src:             'mailbox-list-subscriptions.c:150,3'
          Dst:             e_debug
        - Src:             'mailbox-list-subscriptions.c:150,3'
          Dst:             event_send_abort
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_subscription_fill_one
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-subscriptions.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          318
      EdgeCount:       65
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - mail_namespace_find_unsubscribable
        - mail_namespace_get_sep
        - mail_namespace_is_shared_user_root
        - mailbox_list_get_vname
        - mailbox_list_is_valid_name
        - mailbox_list_join_refpattern
        - mailbox_list_subscription_fill_one
        - mailbox_tree_get
        - strlen
        - strncmp
        - t_strconcat
        - t_strndup
        - uni_utf8_str_is_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-subscriptions.c:44,13'
          Dst:             t_strconcat
        - Src:             'mailbox-list-subscriptions.c:46,7'
          Dst:             mail_namespace_find_unsubscribable
        - Src:             'mailbox-list-subscriptions.c:64,20'
          Dst:             mail_namespace_is_shared_user_root
        - Src:             'mailbox-list-subscriptions.c:68,9'
          Dst:             mailbox_list_join_refpattern
        - Src:             'mailbox-list-subscriptions.c:72,4'
          Dst:             mail_namespace_find_unsubscribable
        - Src:             'mailbox-list-subscriptions.c:74,11'
          Dst:             mailbox_list_subscription_fill_one
        - Src:             'mailbox-list-subscriptions.c:81,11'
          Dst:             strncmp
        - Src:             'mailbox-list-subscriptions.c:87,3'
          Dst:             strncmp
        - Src:             'mailbox-list-subscriptions.c:87,3'
          Dst:             i_panic
        - Src:             'mailbox-list-subscriptions.c:93,8'
          Dst:             strlen
        - Src:             'mailbox-list-subscriptions.c:94,32'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-subscriptions.c:98,10'
          Dst:             t_strndup
        - Src:             'mailbox-list-subscriptions.c:101,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list-subscriptions.c:105,11'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-subscriptions.c:106,8'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mailbox-list-subscriptions.c:108,10'
          Dst:             mailbox_tree_get
    - functionName:    mailbox_list_subscriptions_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-subscriptions.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          403
      EdgeCount:       79
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - array_append_i
        - array_create_i
        - array_is_created_i
        - e_warning
        - i_panic
        - mail_namespace_get_sep
        - mailbox_list_get_root_path
        - mailbox_list_get_storage_name
        - mailbox_list_get_temp_prefix
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_subscription_fill_one
        - mailbox_list_subscriptions_apply_nfc_renames
        - mailbox_tree_clear
        - mailbox_tree_init
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - stat
        - strcmp
        - strlen
        - subsfile_list_deinit
        - subsfile_list_fstat
        - subsfile_list_init
        - subsfile_list_next
        - subsfile_set_subscribed
        - t_pop
        - t_push
        - t_strconcat
        - uni_utf8_to_nfc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-subscriptions.c:173,2'
          Dst:             i_panic
        - Src:             'mailbox-list-subscriptions.c:176,9'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-subscriptions.c:177,30'
          Dst:             mailbox_tree_init
        - Src:             'mailbox-list-subscriptions.c:182,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list-subscriptions.c:187,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list-subscriptions.c:190,6'
          Dst:             stat
        - Src:             'mailbox-list-subscriptions.c:191,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-subscriptions.c:193,4'
          Dst:             mailbox_tree_clear
        - Src:             'mailbox-list-subscriptions.c:197,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-subscriptions.c:207,2'
          Dst:             mailbox_tree_clear
        - Src:             'mailbox-list-subscriptions.c:210,17'
          Dst:             subsfile_list_init
        - Src:             'mailbox-list-subscriptions.c:211,6'
          Dst:             subsfile_list_fstat
        - Src:             'mailbox-list-subscriptions.c:213,17'
          Dst:             subsfile_list_next
        - Src:             'mailbox-list-subscriptions.c:213,60'
          Dst:             t_push
        - Src:             'mailbox-list-subscriptions.c:224,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-subscriptions.c:226,41'
          Dst:             strlen
        - Src:             'mailbox-list-subscriptions.c:226,18'
          Dst:             uni_utf8_to_nfc
        - Src:             'mailbox-list-subscriptions.c:228,24'
          Dst:             strcmp
        - Src:             'mailbox-list-subscriptions.c:229,16'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-subscriptions.c:234,7'
          Dst:             mailbox_list_subscription_fill_one
        - Src:             'mailbox-list-subscriptions.c:236,4'
          Dst:             e_warning
        - Src:             'mailbox-list-subscriptions.c:241,5'
          Dst:             mailbox_list_get_temp_prefix
        - Src:             'mailbox-list-subscriptions.c:240,10'
          Dst:             subsfile_set_subscribed
        - Src:             'mailbox-list-subscriptions.c:248,16'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-subscriptions.c:250,5'
          Dst:             array_create_i
        - Src:             'mailbox-list-subscriptions.c:252,31'
          Dst:             p_strdup
        - Src:             'mailbox-list-subscriptions.c:253,31'
          Dst:             p_strdup
        - Src:             'mailbox-list-subscriptions.c:254,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-subscriptions.c:255,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-subscriptions.c:257,4'
          Dst:             t_pop
        - Src:             'mailbox-list-subscriptions.c:257,4'
          Dst:             i_panic
        - Src:             'mailbox-list-subscriptions.c:259,6'
          Dst:             subsfile_list_deinit
        - Src:             'mailbox-list-subscriptions.c:261,3'
          Dst:             pool_unref
        - Src:             'mailbox-list-subscriptions.c:265,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-list-subscriptions.c:266,3'
          Dst:             mailbox_list_subscriptions_apply_nfc_renames
        - Src:             'mailbox-list-subscriptions.c:269,2'
          Dst:             pool_unref
    - functionName:    get_expanded_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          227
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:970,8'
          Dst:             t_strndup
    - functionName:    mailbox_list_get_permissions_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          331
      EdgeCount:       79
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - e_debug
        - event_send_abort
        - event_want_level
        - getegid
        - mail_error_eacces_msg
        - mailbox_list_set_critical
        - mkdir_get_executable_mode
        - stat
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:778,6'
          Dst:             stat
        - Src:             'mailbox-list.c:779,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:779,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:779,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:781,5'
          Dst:             mail_error_eacces_msg
        - Src:             'mailbox-list.c:780,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list.c:782,15'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:782,15'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:782,15'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:782,15'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:783,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list.c:786,4'
          Dst:             event_want_level
        - Src:             'mailbox-list.c:786,4'
          Dst:             e_debug
        - Src:             'mailbox-list.c:786,4'
          Dst:             event_send_abort
        - Src:             'mailbox-list.c:803,36'
          Dst:             mkdir_get_executable_mode
        - Src:             'mailbox-list.c:814,13'
          Dst:             getegid
        - Src:             'mailbox-list.c:824,19'
          Dst:             strrchr
        - Src:             'mailbox-list.c:826,4'
          Dst:             t_strdup_until
        - Src:             'mailbox-list.c:828,7'
          Dst:             stat
    - functionName:    mailbox_list_set_critical
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1843
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - i_strdup_vprintf
        - mailbox_list_set_internal_error
        - p_free_internal
      functionUses:    64
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1853,2'
          Dst:             mailbox_list_set_internal_error
        - Src:             'mailbox-list.c:1856,30'
          Dst:             i_strdup_vprintf
        - Src:             'mailbox-list.c:1859,2'
          Dst:             e_error
        - Src:             'mailbox-list.c:1863,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1864,2'
          Dst:             p_free_internal
    - functionName:    mailbox_list_set_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1840
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
        - t_strflocaltime
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1831,8'
          Dst:             t_strflocaltime
        - Src:             'mailbox-list.c:1832,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1833,23'
          Dst:             i_strdup
        - Src:             'mailbox-list.c:1839,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_name_sanitize
      functionSourceFile: '/src/dovecot/src/lib-storage/./mail-storage-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 956
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_sanitize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mail-storage-private.h:957,9'
          Dst:             str_sanitize
    - functionName:    mailbox_list_vname_handle_invalid_utf8
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - mailbox_name_sanitize
        - str_c
        - strlen
        - t_str_new
        - uni_utf8_get_valid_data
        - uni_utf8_str_is_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:550,6'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mailbox-list.c:553,28'
          Dst:             strlen
        - Src:             'mailbox-list.c:553,18'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:556,6'
          Dst:             strlen
        - Src:             'mailbox-list.c:555,3'
          Dst:             uni_utf8_get_valid_data
        - Src:             'mailbox-list.c:557,2'
          Dst:             mailbox_name_sanitize
        - Src:             'mailbox-list.c:557,2'
          Dst:             e_error
        - Src:             'mailbox-list.c:561,9'
          Dst:             str_c
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_unlock
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 2018
      functionLinenumberEnd: 2024
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - file_lock_free
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:2019,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:2023,2'
          Dst:             file_lock_free
    - functionName:    mailbox_list_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1955
      functionLinenumberEnd: 2015
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          215
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - binary_to_hex
        - mail_storage_lock_create
        - mailbox_list_get_root_path
        - mailbox_list_get_root_permissions
        - mailbox_list_mkdir_missing_index_root
        - mailbox_list_mkdir_root
        - mailbox_list_set_critical
        - sha1_get_digest
        - t_strconcat
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1965,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-list.c:1981,3'
          Dst:             sha1_get_digest
        - Src:             'mailbox-list.c:1984,4'
          Dst:             binary_to_hex
        - Src:             'mailbox-list.c:1983,16'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1987,13'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1990,7'
          Dst:             mailbox_list_mkdir_missing_index_root
        - Src:             'mailbox-list.c:1992,13'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1995,7'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mailbox-list.c:2004,14'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:2005,6'
          Dst:             mail_storage_lock_create
        - Src:             'mailbox-list.c:2007,3'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_get_root_permissions
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_permissions_internal
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:927,3'
          Dst:             mailbox_list_get_permissions_internal
    - functionName:    mailbox_list_get_root_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_unreached
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1247,3'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1251,3'
          Dst:             i_panic
    - functionName:    mailbox_list_mkdir_missing_index_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1554
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_mkdir_root
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1545,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1549,6'
          Dst:             mailbox_list_mkdir_root
    - functionName:    mailbox_list_mkdir_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1117
      functionLinenumberEnd: 1127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_set_critical
        - mailbox_list_try_mkdir_root
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1120,6'
          Dst:             mailbox_list_try_mkdir_root
        - Src:             'mailbox-list.c:1121,3'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_try_mkdir_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1070
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          205
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - i_panic
        - i_unreached
        - mail_error_create_eacces_msg
        - mailbox_list_get_root_path
        - mailbox_list_get_root_permissions
        - mailbox_list_try_mkdir_root_parent
        - mkdir_parents_chgrp
        - stat
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1075,6'
          Dst:             stat
        - Src:             'mailbox-list.c:1079,15'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:1086,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-list.c:1088,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1089,3'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1090,2'
          Dst:             strlen
        - Src:             'mailbox-list.c:1090,2'
          Dst:             strncmp
        - Src:             'mailbox-list.c:1090,2'
          Dst:             str_begins_with
        - Src:             'mailbox-list.c:1090,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:1091,6'
          Dst:             strcmp
        - Src:             'mailbox-list.c:1091,37'
          Dst:             stat
        - Src:             'mailbox-list.c:1095,7'
          Dst:             mailbox_list_try_mkdir_root_parent
        - Src:             'mailbox-list.c:1102,6'
          Dst:             mkdir_parents_chgrp
        - Src:             'mailbox-list.c:1105,6'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1106,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1106,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1106,7'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1107,15'
          Dst:             mail_error_create_eacces_msg
        - Src:             'mailbox-list.c:1109,15'
          Dst:             t_strdup_printf
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mailbox_list_try_mkdir_root_parent
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          334
      EdgeCount:       81
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - get_expanded_path
        - getegid
        - i_unreached
        - mail_error_eacces_msg
        - mailbox_list_get_root_path
        - mailbox_list_get_unexpanded_path
        - mkdir_parents_chgrp
        - stat_first_parent
        - strrchr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:996,15'
          Dst:             mailbox_list_get_unexpanded_path
        - Src:             'mailbox-list.c:997,6'
          Dst:             strrchr
        - Src:             'mailbox-list.c:1001,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1002,4'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1011,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1012,4'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1013,14'
          Dst:             get_expanded_path
        - Src:             'mailbox-list.c:1019,6'
          Dst:             stat_first_parent
        - Src:             'mailbox-list.c:1020,14'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1020,14'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1020,14'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1021,4'
          Dst:             mail_error_eacces_msg
        - Src:             'mailbox-list.c:1022,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:1039,8'
          Dst:             mkdir_parents_chgrp
        - Src:             'mailbox-list.c:1041,8'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:1042,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:1051,28'
          Dst:             getegid
    - functionName:    mailbox_list_get_unexpanded_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_get_permissions_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          278
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - dec2str
        - e_debug
        - event_send_abort
        - event_want_level
        - getegid
        - geteuid
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_path
        - mailbox_list_get_permissions
        - mailbox_list_get_permissions_stat
        - mailbox_list_get_root_path
        - mailbox_permissions_copy
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:862,9'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:867,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:872,9'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:878,13'
          Dst:             mailbox_list_get_permissions_stat
        - Src:             'mailbox-list.c:883,21'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list.c:883,7'
          Dst:             strrchr
        - Src:             'mailbox-list.c:888,18'
          Dst:             t_strdup_until
        - Src:             'mailbox-list.c:890,3'
          Dst:             mailbox_list_get_permissions
        - Src:             'mailbox-list.c:896,29'
          Dst:             geteuid
        - Src:             'mailbox-list.c:897,29'
          Dst:             getegid
        - Src:             'mailbox-list.c:900,3'
          Dst:             mailbox_permissions_copy
        - Src:             'mailbox-list.c:905,3'
          Dst:             event_want_level
        - Src:             'mailbox-list.c:905,3'
          Dst:             dec2str
        - Src:             'mailbox-list.c:905,3'
          Dst:             e_debug
        - Src:             'mailbox-list.c:905,3'
          Dst:             event_send_abort
    - functionName:    mailbox_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1230
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    43
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1236,3'
          Dst:             i_panic
    - functionName:    mailbox_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_clear_error
      functionUses:    35
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:762,2'
          Dst:             mailbox_list_clear_error
    - functionName:    mailbox_list_get_permissions
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_permissions_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:918,2'
          Dst:             mailbox_list_get_permissions_internal
    - functionName:    mailbox_permissions_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:938,3'
          Dst:             p_strdup
    - functionName:    mailbox_list_clear_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1807
      functionLinenumberEnd: 1813
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1808,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1810,2'
          Dst:             p_free_internal
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_fs_get_list
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1944
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - module_context_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1950,8'
          Dst:             module_context_get
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_init_fs
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1911
      functionLinenumberEnd: 1941
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          119
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_set_i
        - fs_get_properties
        - fs_init_auto
        - i_panic
        - mail_user_init_fs_parameters
        - mailbox_list_get_global_temp_prefix
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1917,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:1920,2'
          Dst:             mail_user_init_fs_parameters
        - Src:             'mailbox-list.c:1922,31'
          Dst:             mailbox_list_get_global_temp_prefix
        - Src:             'mailbox-list.c:1924,8'
          Dst:             fs_init_auto
        - Src:             'mailbox-list.c:1933,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list.c:1933,8'
          Dst:             p_malloc
        - Src:             'mailbox-list.c:1935,2'
          Dst:             module_get_context_id
        - Src:             'mailbox-list.c:1935,2'
          Dst:             array_idx_set_i
        - Src:             'mailbox-list.c:1939,8'
          Dst:             fs_get_properties
    - functionName:    mailbox_list_get_global_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mailbox_list_last_error_pop
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1894
      functionLinenumberEnd: 1906
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          87
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_i
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1895,23'
          Dst:             array_count_i
        - Src:             'mailbox-list.c:1897,3'
          Dst:             array_idx_i
        - Src:             'mailbox-list.c:1899,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1900,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1905,2'
          Dst:             array_delete_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    2
      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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_last_error_push
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1880
      functionLinenumberEnd: 1891
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - i_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1883,7'
          Dst:             array_is_created_i
        - Src:             'mailbox-list.c:1884,3'
          Dst:             array_create_i
        - Src:             'mailbox-list.c:1885,8'
          Dst:             array_append_space_i
        - Src:             'mailbox-list.c:1886,22'
          Dst:             i_strdup
        - Src:             'mailbox-list.c:1890,30'
          Dst:             i_strdup
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      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:    mailbox_list_set_error_from_errno
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1877
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_error_from_errno
        - mailbox_list_set_error
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1872,7'
          Dst:             mail_error_from_errno
        - Src:             'mailbox-list.c:1875,2'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_set_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1817
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    58
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1819,3'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:1820,24'
          Dst:             i_strdup
    - functionName:    mailbox_list_get_last_internal_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1796
      functionLinenumberEnd: 1804
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_list_get_last_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1800,3'
          Dst:             i_panic
        - Src:             'mailbox-list.c:1803,9'
          Dst:             mailbox_list_get_last_error
    - functionName:    mailbox_list_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1769
      functionLinenumberEnd: 1787
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1780,4'
          Dst:             i_strdup_printf
    - functionName:    mailbox_list_get_last_mail_error
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1790
      functionLinenumberEnd: 1791
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_try_get_absolute_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1730
      functionLinenumberEnd: 1765
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          189
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - mail_user_try_home_expand
        - mailbox_list_get_path
        - mailbox_list_get_root_forced
        - str_begins
        - str_begins_builtin_success
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1736,6'
          Dst:             strncmp
        - Src:             'mailbox-list.c:1736,6'
          Dst:             str_begins_with
        - Src:             'mailbox-list.c:1738,7'
          Dst:             mail_user_try_home_expand
        - Src:             'mailbox-list.c:1749,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list.c:1750,6'
          Dst:             str_begins
        - Src:             'mailbox-list.c:1750,6'
          Dst:             strlen
        - Src:             'mailbox-list.c:1750,6'
          Dst:             strncmp
        - Src:             'mailbox-list.c:1750,6'
          Dst:             strlen
        - Src:             'mailbox-list.c:1750,6'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list.c:1753,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:1757,7'
          Dst:             strcmp
    - functionName:    mailbox_list_get_root_forced
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - mailbox_list_get_root_path
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1260,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1261,3'
          Dst:             i_unreached
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_dirent_is_alias_symlink
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1697
      functionLinenumberEnd: 1725
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - i_panic
        - lstat
        - mailbox_list_get_file_type
        - mailbox_list_set_critical
        - strchr
        - t_pop
        - t_push
        - t_readlink
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1701,6'
          Dst:             mailbox_list_get_file_type
        - Src:             'mailbox-list.c:1704,2'
          Dst:             t_push
        - Src:             'mailbox-list.c:1707,10'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1708,7'
          Dst:             lstat
        - Src:             'mailbox-list.c:1709,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list.c:1714,14'
          Dst:             t_readlink
        - Src:             'mailbox-list.c:1715,4'
          Dst:             e_error
        - Src:             'mailbox-list.c:1721,10'
          Dst:             strchr
        - Src:             'mailbox-list.c:1723,4'
          Dst:             t_pop
        - Src:             'mailbox-list.c:1723,4'
          Dst:             i_panic
    - functionName:    mailbox_list_get_file_type
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1667
      functionLinenumberEnd: 1691
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mailbox-list.c:1671,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    mailbox_list_set_changelog_timestamp
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1661
      functionLinenumberEnd: 1663
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_get_changelog
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1656
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_init_changelog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1656,10'
          Dst:             mailbox_list_init_changelog
    - functionName:    mailbox_list_init_changelog
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1511
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_get_root_permissions
        - mailbox_log_alloc
        - mailbox_log_set_permissions
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1520,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1523,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1524,20'
          Dst:             mailbox_log_alloc
        - Src:             'mailbox-list.c:1526,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-list.c:1527,2'
          Dst:             mailbox_log_set_permissions
    - functionName:    mailbox_name_get_sha128
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1647
      functionLinenumberEnd: 1652
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - sha1_get_digest
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1650,24'
          Dst:             strlen
        - Src:             'mailbox-list.c:1650,2'
          Dst:             sha1_get_digest
        - Src:             'mailbox-list.c:1651,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_list_delete_symlink
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1635
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_is_valid_name
        - mailbox_list_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1638,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list.c:1639,3'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_is_valid_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1213
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_is_valid_fs_name
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1224,9'
          Dst:             mailbox_list_is_valid_fs_name
    - functionName:    mailbox_list_is_valid_fs_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          330
      EdgeCount:       77
      CyclomaticComplexity: 21
      functionsReached:
        - i_panic
        - mailbox_list_get_hierarchy_sep
        - strchr
        - strcmp
        - t_pop
        - t_push
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1144,6'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list.c:1145,6'
          Dst:             strchr
        - Src:             'mailbox-list.c:1170,2'
          Dst:             t_push
        - Src:             'mailbox-list.c:1173,11'
          Dst:             t_strsplit
        - Src:             'mailbox-list.c:1192,8'
          Dst:             strcmp
        - Src:             'mailbox-list.c:1205,4'
          Dst:             t_pop
        - Src:             'mailbox-list.c:1205,4'
          Dst:             i_panic
    - functionName:    mailbox_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1632
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_is_valid_name
        - mailbox_list_set_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1626,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list.c:1627,3'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1603
      functionLinenumberEnd: 1620
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strlen
        - uni_utf8_to_nfc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1609,31'
          Dst:             strlen
        - Src:             'mailbox-list.c:1609,9'
          Dst:             uni_utf8_to_nfc
    - functionName:    mailbox_list_add_change
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1580
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - guid_128_is_empty
        - i_memcpy
        - mailbox_list_init_changelog
        - mailbox_list_mkdir_missing_index_root
        - mailbox_log_append
        - mailbox_log_record_set_timestamp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1584,7'
          Dst:             mailbox_list_init_changelog
        - Src:             'mailbox-list.c:1585,6'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list.c:1588,6'
          Dst:             mailbox_list_mkdir_missing_index_root
        - Src:             'mailbox-list.c:1596,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list.c:1597,2'
          Dst:             mailbox_log_record_set_timestamp
        - Src:             'mailbox-list.c:1598,8'
          Dst:             mailbox_log_append
    - functionName:    mailbox_list_mkdir_missing_list_index_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1557
      functionLinenumberEnd: 1575
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_mkdir_missing_index_root
        - mailbox_list_mkdir_root
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1561,10'
          Dst:             mailbox_list_mkdir_missing_index_root
        - Src:             'mailbox-list.c:1567,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list.c:1570,6'
          Dst:             mailbox_list_mkdir_root
    - functionName:    mailbox_list_get_count
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1494
      functionLinenumberEnd: 1508
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1496,3'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-list.c:1501,9'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list.c:1503,6'
          Dst:             mailbox_list_iter_deinit
    - functionName:    mailbox_list_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1491
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          393
      EdgeCount:       86
      CyclomaticComplexity: 21
      functionsReached:
        - i_unreached
        - mailbox_alloc
        - mailbox_exists
        - mailbox_free
        - mailbox_get_last_error
        - mailbox_list_get_path
        - mailbox_list_get_root_forced
        - mailbox_list_get_vname
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - mailbox_list_set_error
        - str_begins
        - str_begins_builtin_success
        - strcasecmp
        - strcmp
        - strlen
        - strncmp
        - strrchr
        - t_strdup_until
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mailbox-list.c:1419,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list.c:1395,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list.c:1405,9'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list.c:1406,9'
          Dst:             mailbox_exists
        - Src:             'mailbox-list.c:1413,13'
          Dst:             mailbox_get_last_error
        - Src:             'mailbox-list.c:1414,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list.c:1416,3'
          Dst:             mailbox_free
        - Src:             'mailbox-list.c:1436,11'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list.c:1437,10'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-list.c:1438,10'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list.c:1443,10'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mailbox-list.c:1447,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list.c:1448,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:1449,4'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1451,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list.c:1452,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:1453,4'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1456,10'
          Dst:             strrchr
        - Src:             'mailbox-list.c:1461,9'
          Dst:             t_strdup_until
        - Src:             'mailbox-list.c:1465,6'
          Dst:             str_begins
        - Src:             'mailbox-list.c:1465,6'
          Dst:             strlen
        - Src:             'mailbox-list.c:1465,6'
          Dst:             strncmp
        - Src:             'mailbox-list.c:1465,6'
          Dst:             strlen
        - Src:             'mailbox-list.c:1465,6'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list.c:1468,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list.c:1479,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list.c:1482,4'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1483,7'
          Dst:             strcmp
    - functionName:    mailbox_list_get_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_has_children
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1372
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_get_sep
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1378,7'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list.c:1377,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:1379,9'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-list.c:1381,8'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list.c:1382,6'
          Dst:             mailbox_list_iter_deinit
    - functionName:    mailbox_list_join_refpattern
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1359
      functionLinenumberEnd: 1369
      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:
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:1366,13'
          Dst:             t_strconcat
    - functionName:    mailbox_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_default_get_root_path
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1345
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          305
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
        - mailbox_list_default_get_root_path
        - strcmp
        - t_strconcat
      functionUses:    8
      BranchProfiles:
        - Branch String:   'mailbox-list.c:1272,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list.c:1280,11'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1291,11'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1301,8'
          Dst:             strcmp
        - Src:             'mailbox-list.c:1320,10'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list.c:1329,9'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list.c:1331,5'
          Dst:             i_unreached
        - Src:             'mailbox-list.c:1332,11'
          Dst:             t_strconcat
        - Src:             'mailbox-list.c:1336,10'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list.c:1339,3'
          Dst:             i_unreached
    - functionName:    mailbox_list_get_mail_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 769
      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:    mailbox_list_get_default_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_namespace_get_default_storage
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:754,13'
          Dst:             mail_namespace_get_default_storage
    - functionName:    mailbox_list_get_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_get_storage_driver
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 712
      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:
        - i_memcpy
        - mail_storage_create
        - mailbox_list_set_critical
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:697,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list.c:698,7'
          Dst:             strcmp
        - Src:             'mailbox-list.c:704,6'
          Dst:             mail_storage_create
        - Src:             'mailbox-list.c:706,3'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_default_get_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - event_unref
        - mail_namespace_get_default_storage
        - mail_storage_mailbox_create_event
        - mailbox_list_get_storage_driver
        - mailbox_list_set_critical
        - pool_unref
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:722,3'
          Dst:             mail_storage_mailbox_create_event
        - Src:             'mailbox-list.c:723,6'
          Dst:             settings_get
        - Src:             'mailbox-list.c:725,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list.c:726,3'
          Dst:             event_unref
        - Src:             'mailbox-list.c:732,9'
          Dst:             mailbox_list_get_storage_driver
        - Src:             'mailbox-list.c:736,16'
          Dst:             mail_namespace_get_default_storage
        - Src:             'mailbox-list.c:739,2'
          Dst:             event_unref
        - Src:             'mailbox-list.c:740,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_get_user
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_get_event
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 680
      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:    mailbox_list_get_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 674
      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:    mailbox_list_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 668
      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:    mailbox_list_get_driver_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 663
      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:    mailbox_list_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          193
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_free_i
        - array_is_created_i
        - event_unref
        - hash_table_destroy
        - i_panic
        - mailbox_log_free
        - mailbox_tree_deinit
        - p_free_internal
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:636,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:637,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list.c:640,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list.c:641,3'
          Dst:             pool_unref
        - Src:             'mailbox-list.c:645,3'
          Dst:             mailbox_tree_deinit
        - Src:             'mailbox-list.c:647,3'
          Dst:             mailbox_log_free
        - Src:             'mailbox-list.c:649,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-list.c:650,3'
          Dst:             array_count_i
        - Src:             'mailbox-list.c:650,3'
          Dst:             i_panic
        - Src:             'mailbox-list.c:651,3'
          Dst:             array_free_i
        - Src:             'mailbox-list.c:655,2'
          Dst:             pool_unref
        - Src:             'mailbox-list.c:656,2'
          Dst:             pool_unref
        - Src:             'mailbox-list.c:658,2'
          Dst:             event_unref
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mailbox_list_default_get_vname_part
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          153
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - imap_utf7_to_utf8
        - imap_utf7_to_utf8_escaped
        - mail_namespace_get_sep
        - mailbox_list_name_escape
        - mailbox_list_unescape_name_params
        - mailbox_list_vname_handle_invalid_utf8
        - str_c
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:571,3'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list.c:576,11'
          Dst:             mailbox_list_unescape_name_params
        - Src:             'mailbox-list.c:583,29'
          Dst:             strlen
        - Src:             'mailbox-list.c:583,19'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:585,4'
          Dst:             imap_utf7_to_utf8_escaped
        - Src:             'mailbox-list.c:586,12'
          Dst:             str_c
        - Src:             'mailbox-list.c:587,14'
          Dst:             imap_utf7_to_utf8
        - Src:             'mailbox-list.c:588,12'
          Dst:             str_c
        - Src:             'mailbox-list.c:592,12'
          Dst:             mailbox_list_vname_handle_invalid_utf8
        - Src:             'mailbox-list.c:595,29'
          Dst:             strlen
        - Src:             'mailbox-list.c:595,19'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:596,3'
          Dst:             mailbox_list_name_escape
        - Src:             'mailbox-list.c:597,11'
          Dst:             str_c
        - Src:             'mailbox-list.c:601,11'
          Dst:             mailbox_list_vname_handle_invalid_utf8
    - functionName:    mailbox_list_unescape_name_params
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          218
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - str_append_c
        - str_c
        - strlen
        - t_str_new
        - toupper
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:467,29'
          Dst:             strlen
        - Src:             'mailbox-list.c:467,19'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:472,7'
          Dst:             __ctype_b_loc
        - Src:             'mailbox-list.c:472,29'
          Dst:             __ctype_b_loc
        - Src:             'mailbox-list.c:476,11'
          Dst:             toupper
        - Src:             'mailbox-list.c:481,12'
          Dst:             toupper
        - Src:             'mailbox-list.c:483,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:486,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:488,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:490,9'
          Dst:             str_c
    - functionName:    mailbox_list_name_escape
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_append_data
        - str_printfa
        - strchr
        - uni_utf8_get_char
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:534,13'
          Dst:             uni_utf8_get_char
        - Src:             'mailbox-list.c:535,18'
          Dst:             strchr
        - Src:             'mailbox-list.c:536,4'
          Dst:             str_append_data
        - Src:             'mailbox-list.c:539,4'
          Dst:             str_printfa
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    mailbox_list_storage_name_prepare
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          165
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - strcmp
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:500,6'
          Dst:             strcmp
        - Src:             'mailbox-list.c:507,6'
          Dst:             strcmp
        - Src:             'mailbox-list.c:521,5'
          Dst:             t_strndup
    - functionName:    mailbox_list_default_get_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          102
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mail_namespace_get_sep
        - mailbox_list_default_get_vname_part
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_storage_name_prepare
        - str_append
        - str_append_c
        - str_c
        - t_str_new
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:609,6'
          Dst:             mailbox_list_storage_name_prepare
        - Src:             'mailbox-list.c:612,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list.c:613,17'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list.c:614,29'
          Dst:             t_strsplit
        - Src:             'mailbox-list.c:615,20'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:616,2'
          Dst:             str_append
        - Src:             'mailbox-list.c:619,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:621,7'
          Dst:             mailbox_list_default_get_vname_part
        - Src:             'mailbox-list.c:620,3'
          Dst:             str_append
        - Src:             'mailbox-list.c:623,9'
          Dst:             str_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_try_migrate_legacy_escape
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - e_debug
        - event_send_abort
        - event_want_level
        - mailbox_list_set_critical
        - rename
        - strcmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:430,6'
          Dst:             strcmp
        - Src:             'mailbox-list.c:433,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:434,13'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:436,6'
          Dst:             rename
        - Src:             'mailbox-list.c:437,3'
          Dst:             event_want_level
        - Src:             'mailbox-list.c:437,3'
          Dst:             e_debug
        - Src:             'mailbox-list.c:437,3'
          Dst:             event_send_abort
        - Src:             'mailbox-list.c:442,6'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:446,6'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:446,25'
          Dst:             __errno_location
        - Src:             'mailbox-list.c:447,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list.c:458,2'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_get_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_vname_part_to_raw
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imap_escaped_utf8_to_utf7
        - mailbox_list_name_unescape
        - str_c
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:348,19'
          Dst:             strlen
        - Src:             'mailbox-list.c:348,9'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:349,7'
          Dst:             imap_escaped_utf8_to_utf7
        - Src:             'mailbox-list.c:352,4'
          Dst:             i_panic
        - Src:             'mailbox-list.c:353,10'
          Dst:             str_c
        - Src:             'mailbox-list.c:355,3'
          Dst:             mailbox_list_name_unescape
    - functionName:    mailbox_list_name_unescape
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imap_escaped_utf8_hex_to_char
        - str_append_c
        - str_append_data
        - str_c
        - strchr
        - strlen
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:266,11'
          Dst:             strchr
        - Src:             'mailbox-list.c:269,28'
          Dst:             strlen
        - Src:             'mailbox-list.c:269,18'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:270,2'
          Dst:             str_append_data
        - Src:             'mailbox-list.c:273,7'
          Dst:             imap_escaped_utf8_hex_to_char
        - Src:             'mailbox-list.c:274,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:277,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:280,11'
          Dst:             str_c
    - functionName:    mailbox_list_vname_prepare
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          326
      EdgeCount:       77
      CyclomaticComplexity: 23
      functionsReached:
        - mail_namespace_get_sep
        - str_begins
        - str_begins_builtin_success
        - strcasecmp
        - strlen
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:292,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list.c:298,7'
          Dst:             strncmp
        - Src:             'mailbox-list.c:300,8'
          Dst:             str_begins
        - Src:             'mailbox-list.c:300,8'
          Dst:             strncmp
        - Src:             'mailbox-list.c:300,8'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list.c:304,22'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list.c:309,17'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list.c:319,14'
          Dst:             strncmp
        - Src:             'mailbox-list.c:320,5'
          Dst:             strlen
        - Src:             'mailbox-list.c:321,37'
          Dst:             mail_namespace_get_sep
    - functionName:    mailbox_list_default_get_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          275
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - mail_namespace_get_sep
        - mailbox_list_escape_name_params
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_vname_part_to_raw
        - mailbox_list_vname_prepare
        - malloc_multiply_check
        - str_append
        - str_append_c
        - str_array_length
        - str_c
        - t_malloc0
        - t_str_new
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:365,24'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list.c:366,22'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list.c:368,6'
          Dst:             mailbox_list_vname_prepare
        - Src:             'mailbox-list.c:387,29'
          Dst:             t_strsplit
        - Src:             'mailbox-list.c:388,29'
          Dst:             str_array_length
        - Src:             'mailbox-list.c:389,27'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list.c:389,27'
          Dst:             t_malloc0
        - Src:             'mailbox-list.c:391,18'
          Dst:             mailbox_list_vname_part_to_raw
        - Src:             'mailbox-list.c:393,27'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:396,3'
          Dst:             str_append
        - Src:             'mailbox-list.c:397,3'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:401,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:403,4'
          Dst:             str_append
        - Src:             'mailbox-list.c:408,8'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list.c:406,8'
          Dst:             mailbox_list_escape_name_params
        - Src:             'mailbox-list.c:405,4'
          Dst:             str_append
        - Src:             'mailbox-list.c:414,9'
          Dst:             str_c
    - functionName:    mailbox_list_escape_name_params
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_escape_name_params_to_str
        - str_c
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:254,27'
          Dst:             t_str_new
        - Src:             'mailbox-list.c:255,2'
          Dst:             mailbox_list_escape_name_params_to_str
        - Src:             'mailbox-list.c:258,9'
          Dst:             str_c
    - functionName:    mailbox_list_escape_name_params_to_str
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          185
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - need_escape_dirstart
        - str_append_c
        - str_printfa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:220,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:228,3'
          Dst:             str_printfa
        - Src:             'mailbox-list.c:234,4'
          Dst:             str_append_c
        - Src:             'mailbox-list.c:239,6'
          Dst:             need_escape_dirstart
        - Src:             'mailbox-list.c:240,4'
          Dst:             str_printfa
        - Src:             'mailbox-list.c:243,4'
          Dst:             str_append_c
    - functionName:    need_escape_dirstart
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          177
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:205,7'
          Dst:             str_begins
        - Src:             'mailbox-list.c:205,7'
          Dst:             strlen
        - Src:             'mailbox-list.c:205,7'
          Dst:             strncmp
        - Src:             'mailbox-list.c:205,7'
          Dst:             strlen
        - Src:             'mailbox-list.c:205,7'
          Dst:             str_begins_builtin_success
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_create
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          349
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - array_create_i
        - e_debug
        - event_ref
        - event_send_abort
        - event_want_level
        - hook_mailbox_list_created
        - i_panic
        - mail_namespace_finish_list_init
        - mailbox_list_find_class
        - pool_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:115,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:118,15'
          Dst:             mailbox_list_find_class
        - Src:             'mailbox-list.c:134,2'
          Dst:             i_panic
        - Src:             'mailbox-list.c:138,2'
          Dst:             array_create_i
        - Src:             'mailbox-list.c:160,2'
          Dst:             event_ref
        - Src:             'mailbox-list.c:161,2'
          Dst:             pool_ref
        - Src:             'mailbox-list.c:163,2'
          Dst:             event_want_level
        - Src:             'mailbox-list.c:163,2'
          Dst:             e_debug
        - Src:             'mailbox-list.c:163,2'
          Dst:             event_send_abort
        - Src:             'mailbox-list.c:173,3'
          Dst:             mail_namespace_finish_list_init
        - Src:             'mailbox-list.c:177,2'
          Dst:             hook_mailbox_list_created
    - functionName:    mailbox_list_find_class
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - mailbox_list_driver_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:101,7'
          Dst:             mailbox_list_driver_find
        - Src:             'mailbox-list.c:104,9'
          Dst:             array_idx_i
    - functionName:    mailbox_list_driver_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:63,12'
          Dst:             array_get_i
        - Src:             'mailbox-list.c:65,7'
          Dst:             strcasecmp
    - functionName:    mailbox_list_unregister
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          32
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_delete_i
        - i_fatal
        - mailbox_list_driver_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:89,7'
          Dst:             mailbox_list_driver_find
        - Src:             'mailbox-list.c:90,3'
          Dst:             i_fatal
        - Src:             'mailbox-list.c:93,2'
          Dst:             array_delete_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_list_register
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - i_fatal
        - mailbox_list_driver_find
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list.c:77,6'
          Dst:             mailbox_list_driver_find
        - Src:             'mailbox-list.c:78,3'
          Dst:             i_fatal
        - Src:             'mailbox-list.c:82,2'
          Dst:             array_append_i
    - functionName:    mailbox_lists_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 56
      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:             'mailbox-list.c:55,2'
          Dst:             array_free_i
    - functionName:    mailbox_lists_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      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:             'mailbox-list.c:50,2'
          Dst:             array_create_i
    - functionName:    mailbox_log_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_close_fd_path
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:289,2'
          Dst:             i_close_fd_path
        - Src:             'mailbox-log.c:290,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mailbox_log_iter_next
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          197
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - i_unlink
        - mailbox_log_iter_next
        - mailbox_log_iter_open_next
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:249,9'
          Dst:             pread
        - Src:             'mailbox-log.c:252,4'
          Dst:             e_error
        - Src:             'mailbox-log.c:258,9'
          Dst:             mailbox_log_iter_open_next
        - Src:             'mailbox-log.c:262,11'
          Dst:             mailbox_log_iter_next
        - Src:             'mailbox-log.c:273,3'
          Dst:             e_error
        - Src:             'mailbox-log.c:276,3'
          Dst:             i_unlink
    - functionName:    mailbox_log_iter_open_next
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - e_error
        - i_close_fd_path
        - mailbox_log_iter_open_next
        - open
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:206,2'
          Dst:             i_close_fd_path
        - Src:             'mailbox-log.c:214,13'
          Dst:             open
        - Src:             'mailbox-log.c:217,11'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:219,11'
          Dst:             mailbox_log_iter_open_next
        - Src:             'mailbox-log.c:221,3'
          Dst:             e_error
    - functionName:    mailbox_log_iter_init
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_log_iter_open_next
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:231,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-log.c:231,9'
          Dst:             p_malloc
        - Src:             'mailbox-log.c:234,8'
          Dst:             mailbox_log_iter_open_next
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mailbox_log_rotate_if_needed
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_error
        - fstat
        - rename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:134,6'
          Dst:             fstat
        - Src:             'mailbox-log.c:135,3'
          Dst:             e_error
        - Src:             'mailbox-log.c:142,6'
          Dst:             rename
        - Src:             'mailbox-log.c:142,51'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:143,3'
          Dst:             e_error
    - functionName:    mailbox_log_open
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          197
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - eperm_error_get_chgrp
        - fchown
        - i_panic
        - open
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:95,2'
          Dst:             i_panic
        - Src:             'mailbox-log.c:98,12'
          Dst:             open
        - Src:             'mailbox-log.c:103,13'
          Dst:             umask
        - Src:             'mailbox-log.c:104,12'
          Dst:             open
        - Src:             'mailbox-log.c:105,2'
          Dst:             umask
        - Src:             'mailbox-log.c:108,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:108,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:108,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:109,4'
          Dst:             e_error
        - Src:             'mailbox-log.c:112,4'
          Dst:             eacces_error_get
        - Src:             'mailbox-log.c:112,4'
          Dst:             e_error
        - Src:             'mailbox-log.c:116,6'
          Dst:             fchown
        - Src:             'mailbox-log.c:117,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:117,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:117,8'
          Dst:             __errno_location
        - Src:             'mailbox-log.c:118,4'
          Dst:             e_error
        - Src:             'mailbox-log.c:121,4'
          Dst:             eperm_error_get_chgrp
        - Src:             'mailbox-log.c:121,4'
          Dst:             e_error
    - functionName:    mailbox_log_append
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          164
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - fstat
        - ftruncate
        - i_panic
        - mailbox_log_close
        - mailbox_log_open
        - mailbox_log_rotate_if_needed
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:173,3'
          Dst:             mailbox_log_close
        - Src:             'mailbox-log.c:175,7'
          Dst:             mailbox_log_open
        - Src:             'mailbox-log.c:177,3'
          Dst:             i_panic
        - Src:             'mailbox-log.c:184,8'
          Dst:             write
        - Src:             'mailbox-log.c:186,3'
          Dst:             e_error
        - Src:             'mailbox-log.c:189,3'
          Dst:             e_error
        - Src:             'mailbox-log.c:191,7'
          Dst:             fstat
        - Src:             'mailbox-log.c:192,8'
          Dst:             ftruncate
        - Src:             'mailbox-log.c:193,5'
          Dst:             e_error
        - Src:             'mailbox-log.c:200,8'
          Dst:             mailbox_log_rotate_if_needed
    - functionName:    mailbox_log_close
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_close_fd_path
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:79,2'
          Dst:             i_close_fd_path
    - functionName:    be32_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_log_record_get_timestamp
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be32_to_cpu_unaligned
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:158,18'
          Dst:             be32_to_cpu_unaligned
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu32_to_be_unaligned
      functionSourceFile: '/src/dovecot/src/lib-index/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_log_record_set_timestamp
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu32_to_be_unaligned
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:153,24'
          Dst:             time_to_uint32_trunc
        - Src:             'mailbox-log.c:153,2'
          Dst:             cpu32_to_be_unaligned
    - functionName:    mailbox_log_set_permissions
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          45
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:87,2'
          Dst:             p_free_internal
        - Src:             'mailbox-log.c:88,20'
          Dst:             i_strdup
    - functionName:    mailbox_log_free
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - mailbox_log_close
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:69,2'
          Dst:             mailbox_log_close
        - Src:             'mailbox-log.c:70,2'
          Dst:             event_unref
        - Src:             'mailbox-log.c:71,2'
          Dst:             p_free_internal
        - Src:             'mailbox-log.c:72,2'
          Dst:             p_free_internal
        - Src:             'mailbox-log.c:73,2'
          Dst:             p_free_internal
        - Src:             'mailbox-log.c:74,2'
          Dst:             p_free_internal
    - functionName:    mailbox_log_alloc
      functionSourceFile: '/src/dovecot/src/lib-index/mailbox-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - i_strconcat
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-log.c:53,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-log.c:53,8'
          Dst:             p_malloc
        - Src:             'mailbox-log.c:54,15'
          Dst:             event_create
        - Src:             'mailbox-log.c:55,18'
          Dst:             i_strdup
        - Src:             'mailbox-log.c:56,19'
          Dst:             i_strconcat
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_recent_flags_expunge_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - seq_range_array_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:105,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-recent-flags.c:106,7'
          Dst:             seq_range_array_remove
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_recent_flags_expunge_seqs
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - mail_index_lookup_uid
        - seq_range_array_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:93,7'
          Dst:             array_is_created_i
        - Src:             'mailbox-recent-flags.c:97,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-recent-flags.c:98,7'
          Dst:             seq_range_array_remove
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mailbox_recent_flags_count
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          127
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_is_created_i
        - mail_index_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:65,7'
          Dst:             array_is_created_i
        - Src:             'mailbox-recent-flags.c:68,8'
          Dst:             mail_index_get_header
        - Src:             'mailbox-recent-flags.c:70,10'
          Dst:             array_get_i
    - functionName:    mailbox_recent_flags_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_clear_i
        - array_is_created_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:53,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-recent-flags.c:54,3'
          Dst:             array_clear_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mailbox_recent_flags_set_seqs
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_lookup_uid
        - mailbox_recent_flags_set_uid
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:40,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-recent-flags.c:41,3'
          Dst:             mailbox_recent_flags_set_uid
    - functionName:    mailbox_recent_flags_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_clear_i
        - mailbox_recent_flags_set_uid_forced
        - mailbox_set_critical
        - seq_range_exists
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:10,7'
          Dst:             seq_range_exists
        - Src:             'mailbox-recent-flags.c:13,3'
          Dst:             mailbox_set_critical
        - Src:             'mailbox-recent-flags.c:14,3'
          Dst:             array_clear_i
        - Src:             'mailbox-recent-flags.c:17,2'
          Dst:             mailbox_recent_flags_set_uid_forced
    - functionName:    mailbox_recent_flags_set_uid_forced
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_recent_flags_have_uid
        - seq_range_array_add_with_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:27,7'
          Dst:             mailbox_recent_flags_have_uid
        - Src:             'mailbox-recent-flags.c:28,3'
          Dst:             seq_range_array_add_with_init
    - functionName:    mailbox_recent_flags_have_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-recent-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_is_created_i
        - seq_range_exists
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-recent-flags.c:47,9'
          Dst:             array_is_created_i
        - Src:             'mailbox-recent-flags.c:48,3'
          Dst:             seq_range_exists
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mailbox_search_result_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_array_i
        - array_clear_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:186,2'
          Dst:             array_clear_i
        - Src:             'mailbox-search-result.c:187,2'
          Dst:             array_clear_i
        - Src:             'mailbox-search-result.c:189,2'
          Dst:             array_append_array_i
        - Src:             'mailbox-search-result.c:190,2'
          Dst:             array_append_array_i
        - Src:             'mailbox-search-result.c:192,2'
          Dst:             array_clear_i
        - Src:             'mailbox-search-result.c:193,2'
          Dst:             array_clear_i
    - functionName:    mailbox_search_result_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_search_results_never
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - mailbox_search_result_never
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:169,3'
          Dst:             mailbox_search_result_never
        - Src:             'mailbox-search-result.c:171,12'
          Dst:             array_get_i
        - Src:             'mailbox-search-result.c:173,3'
          Dst:             mailbox_search_result_never
    - functionName:    mailbox_search_result_never
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_range_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:159,2'
          Dst:             seq_range_array_add
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mailbox_search_results_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - mailbox_search_result_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:151,12'
          Dst:             array_get_i
        - Src:             'mailbox-search-result.c:153,3'
          Dst:             mailbox_search_result_remove
    - functionName:    mailbox_search_result_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - seq_range_array_add
        - seq_range_array_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:128,6'
          Dst:             seq_range_array_remove
        - Src:             'mailbox-search-result.c:129,7'
          Dst:             array_is_created_i
        - Src:             'mailbox-search-result.c:130,4'
          Dst:             seq_range_array_add
        - Src:             'mailbox-search-result.c:131,4'
          Dst:             seq_range_array_remove
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_search_results_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - mailbox_search_result_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:141,12'
          Dst:             array_get_i
        - Src:             'mailbox-search-result.c:143,3'
          Dst:             mailbox_search_result_add
    - functionName:    mailbox_search_result_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - i_panic
        - seq_range_array_add
        - seq_range_array_remove
        - seq_range_exists
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:113,2'
          Dst:             i_panic
        - Src:             'mailbox-search-result.c:115,6'
          Dst:             seq_range_exists
        - Src:             'mailbox-search-result.c:118,2'
          Dst:             seq_range_array_add
        - Src:             'mailbox-search-result.c:119,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-search-result.c:120,3'
          Dst:             seq_range_array_add
        - Src:             'mailbox-search-result.c:121,3'
          Dst:             seq_range_array_remove
    - functionName:    mailbox_search_results_initial_done
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - mailbox_search_result_initial_done
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:106,12'
          Dst:             array_get_i
        - Src:             'mailbox-search-result.c:108,3'
          Dst:             mailbox_search_result_initial_done
    - functionName:    mailbox_search_result_initial_done
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - mail_search_args_seq2uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:95,3'
          Dst:             array_create_i
        - Src:             'mailbox-search-result.c:96,3'
          Dst:             array_create_i
        - Src:             'mailbox-search-result.c:98,2'
          Dst:             mail_search_args_seq2uid
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_search_result_save
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - mailbox_search_result_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:86,11'
          Dst:             mailbox_search_result_alloc
        - Src:             'mailbox-search-result.c:88,2'
          Dst:             array_append_i
    - functionName:    mailbox_search_result_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - mail_search_args_ref
        - mailbox_search_result_analyze_args
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:41,11'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-search-result.c:41,11'
          Dst:             p_malloc
        - Src:             'mailbox-search-result.c:44,2'
          Dst:             array_create_i
        - Src:             'mailbox-search-result.c:45,2'
          Dst:             array_create_i
        - Src:             'mailbox-search-result.c:49,3'
          Dst:             mail_search_args_ref
        - Src:             'mailbox-search-result.c:50,3'
          Dst:             mailbox_search_result_analyze_args
        - Src:             'mailbox-search-result.c:53,2'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_search_result_analyze_args
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_search_result_analyze_args
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mailbox-search-result.c:14,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-search-result.c:17,4'
          Dst:             mailbox_search_result_analyze_args
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_search_result_free
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_delete_i
        - array_free_i
        - array_is_created_i
        - array_lsearch_ptr_idx_i
        - i_unreached
        - mail_search_args_unref
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-search-result.c:64,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'mailbox-search-result.c:65,3'
          Dst:             i_unreached
        - Src:             'mailbox-search-result.c:66,2'
          Dst:             array_delete_i
        - Src:             'mailbox-search-result.c:69,3'
          Dst:             mail_search_args_unref
        - Src:             'mailbox-search-result.c:71,2'
          Dst:             array_free_i
        - Src:             'mailbox-search-result.c:72,2'
          Dst:             array_free_i
        - Src:             'mailbox-search-result.c:73,6'
          Dst:             array_is_created_i
        - Src:             'mailbox-search-result.c:74,3'
          Dst:             array_free_i
        - Src:             'mailbox-search-result.c:75,3'
          Dst:             array_free_i
        - Src:             'mailbox-search-result.c:77,2'
          Dst:             p_free_internal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_node_name_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:312,9'
          Dst:             strcmp
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_sort_branch
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_sort_i
        - i_memcpy
        - mailbox_node_name_cmp
        - mailbox_tree_sort_branch
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:324,2'
          Dst:             array_clear_i
        - Src:             'mailbox-tree.c:326,3'
          Dst:             array_append_i
        - Src:             'mailbox-tree.c:327,2'
          Dst:             array_sort_i
        - Src:             'mailbox-tree.c:327,2'
          Dst:             mailbox_node_name_cmp
        - Src:             'mailbox-tree.c:331,2'
          Dst:             i_memcpy
        - Src:             'mailbox-tree.c:339,3'
          Dst:             mailbox_tree_sort_branch
    - functionName:    mailbox_tree_sort
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - i_panic
        - mailbox_tree_sort_branch
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:348,2'
          Dst:             t_push
        - Src:             'mailbox-tree.c:351,3'
          Dst:             pool_datastack_create
        - Src:             'mailbox-tree.c:351,3'
          Dst:             array_create_i
        - Src:             'mailbox-tree.c:352,3'
          Dst:             mailbox_tree_sort_branch
        - Src:             'mailbox-tree.c:353,4'
          Dst:             t_pop
        - Src:             'mailbox-tree.c:353,4'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_dup_branch
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          82
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_tree_dup_branch
        - p_malloc
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:285,18'
          Dst:             p_malloc
        - Src:             'mailbox-tree.c:286,16'
          Dst:             p_strdup
        - Src:             'mailbox-tree.c:290,20'
          Dst:             mailbox_tree_dup_branch
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_tree_dup_branch
        - mailbox_tree_init_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:302,2'
          Dst:             i_panic
        - Src:             'mailbox-tree.c:304,9'
          Dst:             mailbox_tree_init_size
        - Src:             'mailbox-tree.c:305,16'
          Dst:             mailbox_tree_dup_branch
    - functionName:    mailbox_tree_init_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:41,2'
          Dst:             i_panic
        - Src:             'mailbox-tree.c:43,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-tree.c:43,9'
          Dst:             p_malloc
        - Src:             'mailbox-tree.c:44,15'
          Dst:             pool_alloconly_create
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - p_free_internal
        - str_free
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:272,2'
          Dst:             str_free
        - Src:             'mailbox-tree.c:273,2'
          Dst:             array_free_i
        - Src:             'mailbox-tree.c:274,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_iterate_set_next_node
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          186
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_delete_i
        - array_get_i
        - i_panic
        - str_len
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:207,3'
          Dst:             array_append_i
        - Src:             'mailbox-tree.c:208,21'
          Dst:             str_len
        - Src:             'mailbox-tree.c:214,11'
          Dst:             array_get_i
        - Src:             'mailbox-tree.c:217,17'
          Dst:             strlen
        - Src:             'mailbox-tree.c:219,4'
          Dst:             i_panic
        - Src:             'mailbox-tree.c:231,3'
          Dst:             array_delete_i
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_iterate_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_tree_iterate_set_next_node
        - str_append
        - str_append_c
        - str_c
        - str_truncate
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:248,3'
          Dst:             str_truncate
        - Src:             'mailbox-tree.c:252,5'
          Dst:             str_append_c
        - Src:             'mailbox-tree.c:256,3'
          Dst:             str_append
        - Src:             'mailbox-tree.c:258,3'
          Dst:             mailbox_tree_iterate_set_next_node
        - Src:             'mailbox-tree.c:261,12'
          Dst:             str_c
    - functionName:    mailbox_tree_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - str_new
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:188,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-tree.c:188,8'
          Dst:             p_malloc
        - Src:             'mailbox-tree.c:192,18'
          Dst:             str_new
        - Src:             'mailbox-tree.c:193,2'
          Dst:             array_create_i
    - functionName:    mailbox_tree_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_tree_traverse
        - t_pop
        - t_push
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:174,2'
          Dst:             i_panic
        - Src:             'mailbox-tree.c:176,2'
          Dst:             t_push
        - Src:             'mailbox-tree.c:177,10'
          Dst:             mailbox_tree_traverse
        - Src:             'mailbox-tree.c:178,4'
          Dst:             t_pop
        - Src:             'mailbox-tree.c:178,4'
          Dst:             i_panic
    - functionName:    mailbox_tree_traverse
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          287
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - p_malloc
        - p_strdup
        - str_append_data
        - str_begins_builtin_success
        - str_begins_icase
        - str_c
        - str_truncate
        - strcmp
        - strlen
        - strncasecmp
        - t_str_new
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:101,6'
          Dst:             str_begins_icase
        - Src:             'mailbox-tree.c:101,6'
          Dst:             strncasecmp
        - Src:             'mailbox-tree.c:101,6'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-tree.c:103,10'
          Dst:             t_strdup_printf
        - Src:             'mailbox-tree.c:108,18'
          Dst:             strlen
        - Src:             'mailbox-tree.c:108,8'
          Dst:             t_str_new
        - Src:             'mailbox-tree.c:113,3'
          Dst:             str_truncate
        - Src:             'mailbox-tree.c:114,3'
          Dst:             str_append_data
        - Src:             'mailbox-tree.c:115,10'
          Dst:             str_c
        - Src:             'mailbox-tree.c:119,8'
          Dst:             strcmp
        - Src:             'mailbox-tree.c:130,12'
          Dst:             p_malloc
        - Src:             'mailbox-tree.c:132,20'
          Dst:             p_strdup
    - functionName:    mailbox_tree_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_tree_traverse
        - t_pop
        - t_push
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:158,2'
          Dst:             t_push
        - Src:             'mailbox-tree.c:159,10'
          Dst:             mailbox_tree_traverse
        - Src:             'mailbox-tree.c:160,4'
          Dst:             t_pop
        - Src:             'mailbox-tree.c:160,4'
          Dst:             i_panic
    - functionName:    mailbox_tree_get_root
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      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:    mailbox_tree_get_pool
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      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:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    mailbox_tree_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:74,2'
          Dst:             p_clear
    - functionName:    mailbox_tree_set_parents_nonexistent
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_tree_set_separator
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_tree_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:57,2'
          Dst:             pool_unref
        - Src:             'mailbox-tree.c:58,2'
          Dst:             p_free_internal
    - functionName:    mailbox_tree_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_tree_init_size
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-tree.c:33,9'
          Dst:             mailbox_tree_init_size
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    notify_delay_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:24,2'
          Dst:             timeout_remove
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_watch_extract_notify_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     externalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          181
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - i_memcpy
        - io_add_notify
        - io_loop_create
        - io_loop_destroy
        - io_loop_extract_notify_fd
        - io_remove
        - notify_extract_callback
        - pool_datastack_create
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-watch.c:123,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-watch.c:119,11'
          Dst:             io_loop_create
        - Src:             'mailbox-watch.c:121,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-watch.c:121,2'
          Dst:             array_create_i
        - Src:             'mailbox-watch.c:123,11'
          Dst:             io_add_notify
        - Src:             'mailbox-watch.c:123,11'
          Dst:             notify_extract_callback
        - Src:             'mailbox-watch.c:125,4'
          Dst:             array_append_i
        - Src:             'mailbox-watch.c:128,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-watch.c:140,11'
          Dst:             array_count_i
        - Src:             'mailbox-watch.c:144,9'
          Dst:             io_loop_extract_notify_fd
        - Src:             'mailbox-watch.c:148,2'
          Dst:             i_memcpy
        - Src:             'mailbox-watch.c:149,3'
          Dst:             io_remove
        - Src:             'mailbox-watch.c:150,2'
          Dst:             io_loop_destroy
    - functionName:    notify_extract_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:106,2'
          Dst:             i_unreached
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_watch_remove_all
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - io_remove
        - p_free_internal
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:95,3'
          Dst:             io_remove
        - Src:             'mailbox-watch.c:96,17'
          Dst:             p_free_internal
        - Src:             'mailbox-watch.c:97,3'
          Dst:             p_free_internal
        - Src:             'mailbox-watch.c:100,2'
          Dst:             timeout_remove
        - Src:             'mailbox-watch.c:101,2'
          Dst:             timeout_remove
    - functionName:    notify_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - notify_delay_callback
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:35,7'
          Dst:             stat
        - Src:             'mailbox-watch.c:43,3'
          Dst:             notify_delay_callback
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    notify_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - notify_delay_callback
        - timeout_add_short
        - timeout_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:48,2'
          Dst:             timeout_reset
        - Src:             'mailbox-watch.c:52,4'
          Dst:             timeout_add_short
        - Src:             'mailbox-watch.c:52,4'
          Dst:             notify_delay_callback
    - functionName:    mailbox_watch_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-watch.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          151
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_strdup
        - io_add_notify
        - malloc_multiply_check
        - notify_callback
        - notify_timeout
        - p_malloc
        - stat
        - timeout_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-watch.c:64,2'
          Dst:             i_panic
        - Src:             'mailbox-watch.c:66,8'
          Dst:             io_add_notify
        - Src:             'mailbox-watch.c:66,8'
          Dst:             notify_callback
        - Src:             'mailbox-watch.c:68,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-watch.c:68,9'
          Dst:             p_malloc
        - Src:             'mailbox-watch.c:69,15'
          Dst:             i_strdup
        - Src:             'mailbox-watch.c:70,6'
          Dst:             stat
        - Src:             'mailbox-watch.c:82,4'
          Dst:             timeout_add
        - Src:             'mailbox-watch.c:82,4'
          Dst:             notify_timeout
    - functionName:    raw_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 224
      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:    raw_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:217,2'
          Dst:             mail_storage_set_error
    - functionName:    raw_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:208,2'
          Dst:             mail_storage_set_error
    - functionName:    raw_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          145
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_stream_create_fd_autoclose
        - i_stream_set_init_buffer_size
        - i_stream_set_name
        - index_storage_mailbox_open
        - mail_storage_set_error
        - mail_storage_set_error_from_errno
        - mailbox_set_critical
        - open
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:181,10'
          Dst:             index_storage_mailbox_open
        - Src:             'raw-storage.c:186,7'
          Dst:             open
        - Src:             'raw-storage.c:188,7'
          Dst:             __errno_location
        - Src:             'raw-storage.c:188,7'
          Dst:             __errno_location
        - Src:             'raw-storage.c:188,7'
          Dst:             __errno_location
        - Src:             'raw-storage.c:188,7'
          Dst:             __errno_location
        - Src:             'raw-storage.c:191,5'
          Dst:             t_strdup_printf
        - Src:             'raw-storage.c:189,4'
          Dst:             mail_storage_set_error
        - Src:             'raw-storage.c:192,15'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'raw-storage.c:193,4'
          Dst:             mailbox_set_critical
        - Src:             'raw-storage.c:197,15'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'raw-storage.c:198,2'
          Dst:             i_stream_set_name
        - Src:             'raw-storage.c:199,2'
          Dst:             i_stream_set_init_buffer_size
        - Src:             'raw-storage.c:200,9'
          Dst:             index_storage_mailbox_open
    - functionName:    raw_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          75
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:157,9'
          Dst:             pool_alloconly_create
        - Src:             'raw-storage.c:158,9'
          Dst:             malloc_multiply_check
        - Src:             'raw-storage.c:158,9'
          Dst:             p_malloc
        - Src:             'raw-storage.c:165,2'
          Dst:             index_storage_mailbox_alloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    raw_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:141,9'
          Dst:             pool_alloconly_create
        - Src:             'raw-storage.c:142,12'
          Dst:             malloc_multiply_check
        - Src:             'raw-storage.c:142,12'
          Dst:             p_malloc
    - functionName:    raw_mailbox_alloc_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - raw_mailbox_alloc_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:132,9'
          Dst:             raw_mailbox_alloc_common
    - functionName:    raw_mailbox_alloc_common
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_name
        - mailbox_alloc
        - mailbox_open
        - mailbox_open_stream
        - mailbox_sync
        - p_strdup
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:100,31'
          Dst:             i_stream_get_name
        - Src:             'raw-storage.c:101,17'
          Dst:             mailbox_alloc
        - Src:             'raw-storage.c:104,7'
          Dst:             mailbox_open_stream
        - Src:             'raw-storage.c:107,7'
          Dst:             mailbox_open
        - Src:             'raw-storage.c:110,6'
          Dst:             mailbox_sync
        - Src:             'raw-storage.c:113,2'
          Dst:             strcmp
        - Src:             'raw-storage.c:113,2'
          Dst:             i_panic
        - Src:             'raw-storage.c:115,29'
          Dst:             p_strdup
    - functionName:    raw_mailbox_alloc_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - raw_mailbox_alloc_common
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:124,9'
          Dst:             raw_mailbox_alloc_common
    - functionName:    raw_storage_create_from_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          173
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_create
        - event_disable_callbacks
        - event_unref
        - i_fatal
        - io_loop_context_switch
        - io_loop_get_current_context
        - mail_namespaces_init_empty
        - mail_namespaces_init_finish
        - mail_storage_create
        - mail_storage_service_io_deactivate_user
        - mail_storage_service_lookup_next
        - malloc_multiply_check
        - master_service_get_service_settings
        - p_malloc
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-storage.c:30,3'
          Dst:             io_loop_get_current_context
        - Src:             'raw-storage.c:32,10'
          Dst:             event_create
        - Src:             'raw-storage.c:35,2'
          Dst:             event_disable_callbacks
        - Src:             'raw-storage.c:38,3'
          Dst:             master_service_get_service_settings
        - Src:             'raw-storage.c:43,3'
          Dst:             t_strdup_printf
        - Src:             'raw-storage.c:62,6'
          Dst:             mail_storage_service_lookup_next
        - Src:             'raw-storage.c:64,3'
          Dst:             i_fatal
        - Src:             'raw-storage.c:65,2'
          Dst:             event_unref
        - Src:             'raw-storage.c:67,11'
          Dst:             malloc_multiply_check
        - Src:             'raw-storage.c:67,11'
          Dst:             p_malloc
        - Src:             'raw-storage.c:71,7'
          Dst:             mail_namespaces_init_empty
        - Src:             'raw-storage.c:78,6'
          Dst:             mail_storage_create
        - Src:             'raw-storage.c:79,3'
          Dst:             i_fatal
        - Src:             'raw-storage.c:80,6'
          Dst:             mail_namespaces_init_finish
        - Src:             'raw-storage.c:81,3'
          Dst:             i_fatal
        - Src:             'raw-storage.c:84,3'
          Dst:             io_loop_context_switch
        - Src:             'raw-storage.c:86,3'
          Dst:             mail_storage_service_io_deactivate_user
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    raw_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_storage_get_sync_flags
        - mail_index_append
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_next
        - mail_index_update_header
        - mail_index_view_get_messages_count
        - mailbox_recent_flags_set_uid
        - mailbox_set_index_error
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-sync.c:15,31'
          Dst:             time_to_uint32
        - Src:             'raw-sync.c:19,2'
          Dst:             i_panic
        - Src:             'raw-sync.c:21,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'raw-sync.c:25,6'
          Dst:             mail_index_view_get_messages_count
        - Src:             'raw-sync.c:31,8'
          Dst:             mail_index_sync_begin
        - Src:             'raw-sync.c:35,4'
          Dst:             mailbox_set_index_error
        - Src:             'raw-sync.c:40,2'
          Dst:             mail_index_update_header
        - Src:             'raw-sync.c:45,2'
          Dst:             mail_index_append
        - Src:             'raw-sync.c:46,2'
          Dst:             mailbox_recent_flags_set_uid
        - Src:             'raw-sync.c:48,9'
          Dst:             mail_index_sync_next
        - Src:             'raw-sync.c:49,6'
          Dst:             mail_index_sync_commit
        - Src:             'raw-sync.c:50,3'
          Dst:             mailbox_set_index_error
    - functionName:    raw_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mailbox_sync_init
        - raw_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-sync.c:64,9'
          Dst:             raw_sync
        - Src:             'raw-sync.c:66,9'
          Dst:             index_mailbox_sync_init
    - functionName:    shared_list_rename_get_ns
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_set_error
        - shared_storage_get_namespace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:254,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:255,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:258,3'
          Dst:             mailbox_list_set_error
    - functionName:    shared_list_copy_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_last_error
        - mailbox_list_set_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:35,8'
          Dst:             mailbox_list_get_last_error
        - Src:             'shared-list.c:36,2'
          Dst:             mailbox_list_set_error
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    shared_list_create_missing_namespaces
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          160
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - mail_namespace_get_sep
        - shared_storage_get_namespace
        - strncmp
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:113,13'
          Dst:             mail_namespace_get_sep
        - Src:             'shared-list.c:123,7'
          Dst:             strncmp
        - Src:             'shared-list.c:136,11'
          Dst:             t_strdup_until
        - Src:             'shared-list.c:137,10'
          Dst:             shared_storage_get_namespace
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    shared_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - shared_list_copy_error
        - shared_list_rename_get_ns
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:273,6'
          Dst:             shared_list_rename_get_ns
        - Src:             'shared-list.c:279,3'
          Dst:             shared_list_copy_error
    - functionName:    shared_list_delete_symlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_delete_symlink
        - shared_list_copy_error
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:238,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:240,8'
          Dst:             mailbox_list_delete_symlink
        - Src:             'shared-list.c:242,3'
          Dst:             shared_list_copy_error
    - functionName:    shared_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_delete_dir
        - shared_list_copy_error
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:224,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:226,8'
          Dst:             mailbox_list_delete_dir
        - Src:             'shared-list.c:228,3'
          Dst:             shared_list_copy_error
    - functionName:    shared_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - shared_list_copy_error
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:210,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:214,3'
          Dst:             shared_list_copy_error
    - functionName:    shared_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_set_subscribed
        - shared_list_copy_error
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:196,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:198,8'
          Dst:             mailbox_list_set_subscribed
        - Src:             'shared-list.c:200,3'
          Dst:             shared_list_copy_error
    - functionName:    shared_list_subscriptions_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_get_sep
        - mailbox_tree_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:184,9'
          Dst:             mail_namespace_get_sep
        - Src:             'shared-list.c:185,30'
          Dst:             mailbox_tree_init
    - functionName:    shared_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:173,2'
          Dst:             pool_unref
    - functionName:    shared_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 168
      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:    shared_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - i_panic
        - imap_match_init_multiple
        - mail_namespace_get_sep
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - shared_list_create_missing_namespaces
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:148,13'
          Dst:             mail_namespace_get_sep
        - Src:             'shared-list.c:150,9'
          Dst:             pool_alloconly_create
        - Src:             'shared-list.c:151,8'
          Dst:             malloc_multiply_check
        - Src:             'shared-list.c:151,8'
          Dst:             p_malloc
        - Src:             'shared-list.c:155,14'
          Dst:             imap_match_init_multiple
        - Src:             'shared-list.c:156,2'
          Dst:             array_create_i
        - Src:             'shared-list.c:159,59'
          Dst:             t_push
        - Src:             'shared-list.c:160,3'
          Dst:             shared_list_create_missing_namespaces
        - Src:             'shared-list.c:161,4'
          Dst:             t_pop
        - Src:             'shared-list.c:161,4'
          Dst:             i_panic
    - functionName:    shared_list_join_refpattern
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          144
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - mailbox_list_join_refpattern
        - shared_storage_get_namespace
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:95,23'
          Dst:             str_begins
        - Src:             'shared-list.c:95,23'
          Dst:             strlen
        - Src:             'shared-list.c:95,23'
          Dst:             strncmp
        - Src:             'shared-list.c:95,23'
          Dst:             strlen
        - Src:             'shared-list.c:95,23'
          Dst:             str_begins_builtin_success
        - Src:             'shared-list.c:99,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:100,10'
          Dst:             mailbox_list_join_refpattern
        - Src:             'shared-list.c:104,13'
          Dst:             t_strconcat
    - functionName:    shared_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_namespace_get_default_storage
        - mailbox_list_get_path
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:71,6'
          Dst:             mail_namespace_get_default_storage
        - Src:             'shared-list.c:73,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:78,9'
          Dst:             mailbox_list_get_path
    - functionName:    shared_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shared_get_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_get_storage
        - mailbox_list_get_storage_name
        - shared_storage_get_namespace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:47,9'
          Dst:             mailbox_list_get_storage_name
        - Src:             'shared-list.c:54,6'
          Dst:             shared_storage_get_namespace
        - Src:             'shared-list.c:57,9'
          Dst:             mailbox_list_get_storage
    - functionName:    shared_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:26,2'
          Dst:             pool_unref
    - functionName:    shared_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:17,9'
          Dst:             pool_alloconly_create
        - Src:             'shared-list.c:18,9'
          Dst:             malloc_multiply_check
        - Src:             'shared-list.c:18,9'
          Dst:             p_malloc
    - functionName:    shared_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-list.c:84,2'
          Dst:             i_panic
    - functionName:    shared_ns_prefix_validate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          248
      EdgeCount:       80
      CyclomaticComplexity: 24
      functionsReached:
        - __ctype_b_loc
        - mail_namespace_get_sep
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:37,14'
          Dst:             strchr
        - Src:             'shared-storage.c:38,7'
          Dst:             str_begins
        - Src:             'shared-storage.c:38,7'
          Dst:             strncmp
        - Src:             'shared-storage.c:38,7'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:39,7'
          Dst:             str_begins
        - Src:             'shared-storage.c:39,7'
          Dst:             strncmp
        - Src:             'shared-storage.c:39,7'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:41,13'
          Dst:             str_begins
        - Src:             'shared-storage.c:41,13'
          Dst:             strncmp
        - Src:             'shared-storage.c:41,13'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:43,7'
          Dst:             __ctype_b_loc
        - Src:             'shared-storage.c:54,35'
          Dst:             strlen
        - Src:             'shared-storage.c:55,15'
          Dst:             mail_namespace_get_sep
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    get_nonexistent_user_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:123,9'
          Dst:             t_strdup_printf
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shared_mail_user_var_home
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_user_get_home
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:325,12'
          Dst:             mail_user_get_home
        - Src:             'shared-storage.c:327,14'
          Dst:             t_strdup_printf
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    shared_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          216
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - mail_user_get_storage_class
        - p_strdup
        - pool_unref
        - settings_get
        - shared_ns_prefix_validate
        - strchr
        - strcmp
        - strlen
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:72,6'
          Dst:             settings_get
        - Src:             'shared-storage.c:79,3'
          Dst:             pool_unref
        - Src:             'shared-storage.c:83,3'
          Dst:             p_strdup
        - Src:             'shared-storage.c:85,6'
          Dst:             mail_user_get_storage_class
        - Src:             'shared-storage.c:87,6'
          Dst:             strcmp
        - Src:             'shared-storage.c:88,14'
          Dst:             t_strconcat
        - Src:             'shared-storage.c:90,3'
          Dst:             pool_unref
        - Src:             'shared-storage.c:93,2'
          Dst:             pool_unref
        - Src:             'shared-storage.c:95,14'
          Dst:             strchr
        - Src:             'shared-storage.c:104,31'
          Dst:             p_strdup
        - Src:             'shared-storage.c:106,6'
          Dst:             shared_ns_prefix_validate
        - Src:             'shared-storage.c:112,19'
          Dst:             strlen
    - functionName:    shared_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:23,9'
          Dst:             pool_alloconly_create
        - Src:             'shared-storage.c:24,12'
          Dst:             malloc_multiply_check
        - Src:             'shared-storage.c:24,12'
          Dst:             p_malloc
    - functionName:    shared_mail_user_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          453
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - array_create_i
        - e_debug
        - e_error
        - event_add_str
        - event_create
        - event_send_abort
        - event_set_ptr
        - event_unref
        - event_want_level
        - get_nonexistent_user_path
        - i_strdup
        - mail_namespace_destroy
        - mail_namespace_get_default_storage
        - mail_namespace_get_sep
        - mail_namespaces_init_location
        - mail_storage_create
        - mail_storage_service_user_get_settings_instance
        - mail_user_deinit
        - mail_user_get_home
        - mailbox_list_set_critical
        - malloc_multiply_check
        - p_malloc
        - p_memdup
        - p_strdup
        - p_strdup_printf
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get
        - settings_instance_dup
        - settings_override
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:350,8'
          Dst:             mail_user_get_home
        - Src:             'shared-storage.c:353,3'
          Dst:             malloc_multiply_check
        - Src:             'shared-storage.c:353,3'
          Dst:             p_malloc
        - Src:             'shared-storage.c:358,3'
          Dst:             t_strdup_printf
        - Src:             'shared-storage.c:360,35'
          Dst:             p_strdup
        - Src:             'shared-storage.c:368,3'
          Dst:             p_memdup
        - Src:             'shared-storage.c:370,3'
          Dst:             malloc_multiply_check
        - Src:             'shared-storage.c:370,3'
          Dst:             p_malloc
        - Src:             'shared-storage.c:375,28'
          Dst:             event_create
        - Src:             'shared-storage.c:376,2'
          Dst:             event_add_str
        - Src:             'shared-storage.c:377,2'
          Dst:             event_set_ptr
        - Src:             'shared-storage.c:378,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'shared-storage.c:386,6'
          Dst:             settings_get
        - Src:             'shared-storage.c:388,3'
          Dst:             mailbox_list_set_critical
        - Src:             'shared-storage.c:390,3'
          Dst:             mail_user_deinit
        - Src:             'shared-storage.c:391,3'
          Dst:             event_unref
        - Src:             'shared-storage.c:394,2'
          Dst:             pool_unref
        - Src:             'shared-storage.c:397,34'
          Dst:             malloc_multiply_check
        - Src:             'shared-storage.c:397,34'
          Dst:             p_malloc
        - Src:             'shared-storage.c:401,19'
          Dst:             i_strdup
        - Src:             'shared-storage.c:406,2'
          Dst:             array_create_i
        - Src:             'shared-storage.c:410,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'shared-storage.c:412,27'
          Dst:             settings_instance_dup
        - Src:             'shared-storage.c:413,3'
          Dst:             event_set_ptr
        - Src:             'shared-storage.c:417,7'
          Dst:             get_nonexistent_user_path
        - Src:             'shared-storage.c:416,3'
          Dst:             settings_override
        - Src:             'shared-storage.c:420,3'
          Dst:             settings_override
        - Src:             'shared-storage.c:425,3'
          Dst:             event_want_level
        - Src:             'shared-storage.c:425,3'
          Dst:             e_debug
        - Src:             'shared-storage.c:425,3'
          Dst:             event_send_abort
        - Src:             'shared-storage.c:431,3'
          Dst:             malloc_multiply_check
        - Src:             'shared-storage.c:431,3'
          Dst:             p_malloc
        - Src:             'shared-storage.c:435,10'
          Dst:             mail_namespace_get_sep
        - Src:             'shared-storage.c:434,22'
          Dst:             p_strdup_printf
        - Src:             'shared-storage.c:443,6'
          Dst:             mail_namespaces_init_location
        - Src:             'shared-storage.c:444,3'
          Dst:             e_error
        - Src:             'shared-storage.c:448,3'
          Dst:             mail_namespace_destroy
        - Src:             'shared-storage.c:449,3'
          Dst:             event_unref
        - Src:             'shared-storage.c:457,6'
          Dst:             mail_storage_create
        - Src:             'shared-storage.c:459,3'
          Dst:             mailbox_list_set_critical
        - Src:             'shared-storage.c:462,3'
          Dst:             mail_namespace_destroy
        - Src:             'shared-storage.c:463,3'
          Dst:             event_unref
        - Src:             'shared-storage.c:472,4'
          Dst:             mail_namespace_get_default_storage
        - Src:             'shared-storage.c:474,2'
          Dst:             event_unref
    - functionName:    i_strchr_to_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    shared_storage_get_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         95
      ICount:          647
      EdgeCount:       128
      CyclomaticComplexity: 35
      functionsReached:
        - event_get_parent
        - i_strchr_to_next
        - i_unreached
        - io_loop_context_switch
        - io_loop_get_current_context
        - mail_namespace_find_prefix
        - mail_namespace_get_sep
        - mail_storage_service_lookup_next
        - mail_storage_service_user_get_event
        - mail_storage_service_user_get_service_ctx
        - mail_storage_service_user_get_settings_instance
        - mail_user_add_namespace
        - mail_user_deinit
        - mailbox_list_get_storage_name
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - shared_mail_user_init
        - shared_storage_ns_prefix_expand
        - str_append
        - str_begins
        - str_begins_builtin_success
        - str_c
        - strchr
        - strncmp
        - t_str_new
        - t_strconcat
        - t_strdup_printf
        - t_strdup_until
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:171,16'
          Dst:             mail_namespace_get_sep
        - Src:             'shared-storage.c:181,7'
          Dst:             str_begins
        - Src:             'shared-storage.c:181,7'
          Dst:             strncmp
        - Src:             'shared-storage.c:181,7'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:183,12'
          Dst:             str_begins
        - Src:             'shared-storage.c:183,12'
          Dst:             strncmp
        - Src:             'shared-storage.c:183,12'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:185,12'
          Dst:             str_begins
        - Src:             'shared-storage.c:185,12'
          Dst:             strncmp
        - Src:             'shared-storage.c:185,12'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:189,4'
          Dst:             i_unreached
        - Src:             'shared-storage.c:192,10'
          Dst:             strchr
        - Src:             'shared-storage.c:198,11'
          Dst:             t_strdup_until
        - Src:             'shared-storage.c:207,4'
          Dst:             mailbox_list_set_critical
        - Src:             'shared-storage.c:217,12'
          Dst:             strchr
        - Src:             'shared-storage.c:221,15'
          Dst:             t_strdup_until
        - Src:             'shared-storage.c:228,12'
          Dst:             t_strdup_printf
        - Src:             'shared-storage.c:227,3'
          Dst:             mailbox_list_set_error
        - Src:             'shared-storage.c:233,13'
          Dst:             i_strchr_to_next
        - Src:             'shared-storage.c:236,4'
          Dst:             t_strconcat
        - Src:             'shared-storage.c:239,3'
          Dst:             mailbox_list_set_error
        - Src:             'shared-storage.c:246,11'
          Dst:             t_str_new
        - Src:             'shared-storage.c:247,2'
          Dst:             str_append
        - Src:             'shared-storage.c:249,2'
          Dst:             shared_storage_ns_prefix_expand
        - Src:             'shared-storage.c:251,54'
          Dst:             str_c
        - Src:             'shared-storage.c:251,9'
          Dst:             mail_namespace_find_prefix
        - Src:             'shared-storage.c:254,5'
          Dst:             t_strconcat
        - Src:             'shared-storage.c:253,12'
          Dst:             mailbox_list_get_storage_name
        - Src:             'shared-storage.c:259,3'
          Dst:             io_loop_get_current_context
        - Src:             'shared-storage.c:261,3'
          Dst:             mail_storage_service_user_get_service_ctx
        - Src:             'shared-storage.c:263,3'
          Dst:             mail_storage_service_user_get_event
        - Src:             'shared-storage.c:265,3'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'shared-storage.c:267,19'
          Dst:             event_get_parent
        - Src:             'shared-storage.c:283,6'
          Dst:             mail_storage_service_lookup_next
        - Src:             'shared-storage.c:285,3'
          Dst:             mailbox_list_set_critical
        - Src:             'shared-storage.c:289,4'
          Dst:             mail_user_deinit
        - Src:             'shared-storage.c:290,3'
          Dst:             io_loop_context_switch
        - Src:             'shared-storage.c:297,6'
          Dst:             str_c
        - Src:             'shared-storage.c:295,12'
          Dst:             shared_mail_user_init
        - Src:             'shared-storage.c:301,5'
          Dst:             t_strconcat
        - Src:             'shared-storage.c:300,12'
          Dst:             mailbox_list_get_storage_name
        - Src:             'shared-storage.c:302,3'
          Dst:             mail_user_add_namespace
        - Src:             'shared-storage.c:304,2'
          Dst:             io_loop_context_switch
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    shared_storage_ns_prefix_expand
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/shared-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          193
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - i_unreached
        - str_append
        - str_append_data
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strncmp
        - t_strcut
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'shared-storage.c:139,14'
          Dst:             strchr
        - Src:             'shared-storage.c:140,3'
          Dst:             str_append_data
        - Src:             'shared-storage.c:142,7'
          Dst:             str_begins
        - Src:             'shared-storage.c:142,7'
          Dst:             strncmp
        - Src:             'shared-storage.c:142,7'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:143,21'
          Dst:             t_strcut
        - Src:             'shared-storage.c:143,4'
          Dst:             str_append
        - Src:             'shared-storage.c:144,12'
          Dst:             str_begins
        - Src:             'shared-storage.c:144,12'
          Dst:             strncmp
        - Src:             'shared-storage.c:144,12'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:145,4'
          Dst:             str_append
        - Src:             'shared-storage.c:146,12'
          Dst:             str_begins
        - Src:             'shared-storage.c:146,12'
          Dst:             strncmp
        - Src:             'shared-storage.c:146,12'
          Dst:             str_begins_builtin_success
        - Src:             'shared-storage.c:147,25'
          Dst:             strchr
        - Src:             'shared-storage.c:149,5'
          Dst:             str_append
        - Src:             'shared-storage.c:152,4'
          Dst:             i_unreached
        - Src:             'shared-storage.c:156,2'
          Dst:             str_append
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/shared/../../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    subsfile_list_unescaped
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_hierarchy_sep
        - str_append_c
        - str_append_tabunescaped
        - str_c
        - str_truncate
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:327,2'
          Dst:             str_truncate
        - Src:             'subscription-file.c:328,14'
          Dst:             strchr
        - Src:             'subscription-file.c:329,3'
          Dst:             str_append_tabunescaped
        - Src:             'subscription-file.c:330,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'subscription-file.c:330,3'
          Dst:             str_append_c
        - Src:             'subscription-file.c:333,43'
          Dst:             strlen
        - Src:             'subscription-file.c:333,2'
          Dst:             str_append_tabunescaped
        - Src:             'subscription-file.c:334,9'
          Dst:             str_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    subsfile_list_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          164
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_set_return_partial_line
        - next_line
        - nfs_safe_open
        - subsfile_list_unescaped
        - subsread_set_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:347,24'
          Dst:             next_line
        - Src:             'subscription-file.c:357,17'
          Dst:             i_stream_destroy
        - Src:             'subscription-file.c:359,22'
          Dst:             nfs_safe_open
        - Src:             'subscription-file.c:364,29'
          Dst:             __errno_location
        - Src:             'subscription-file.c:365,33'
          Dst:             subsread_set_syscall_error
        - Src:             'subscription-file.c:372,16'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'subscription-file.c:374,3'
          Dst:             i_stream_set_return_partial_line
        - Src:             'subscription-file.c:378,10'
          Dst:             subsfile_list_unescaped
    - functionName:    next_line
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_next_line
        - i_stream_read
        - mailbox_list_set_critical
        - subswrite_set_syscall_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   'subscription-file.c:93,17'
          Branch Sides:    []
      Callsites:
        - Src:             'subscription-file.c:92,17'
          Dst:             i_stream_next_line
        - Src:             'subscription-file.c:93,25'
          Dst:             i_stream_read
        - Src:             'subscription-file.c:97,33'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:104,4'
          Dst:             mailbox_list_set_critical
    - functionName:    subsread_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - event_want_log_level
        - mailbox_list_set_critical
        - mailbox_list_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:36,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:36,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:36,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:36,27'
          Dst:             event_want_log_level
        - Src:             'subscription-file.c:37,3'
          Dst:             mailbox_list_set_error
        - Src:             'subscription-file.c:40,3'
          Dst:             mailbox_list_set_critical
    - functionName:    subswrite_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - event_want_log_level
        - mailbox_list_set_critical
        - mailbox_list_set_error
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:49,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:49,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:49,6'
          Dst:             __errno_location
        - Src:             'subscription-file.c:49,27'
          Dst:             event_want_log_level
        - Src:             'subscription-file.c:50,3'
          Dst:             mailbox_list_set_error
        - Src:             'subscription-file.c:53,3'
          Dst:             mailbox_list_set_critical
    - functionName:    subsfile_list_fstat
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:314,6'
          Dst:             i_stream_stat
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    subsfile_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_destroy
        - p_free_internal
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:300,2'
          Dst:             i_stream_destroy
        - Src:             'subscription-file.c:301,2'
          Dst:             str_free
        - Src:             'subscription-file.c:302,2'
          Dst:             p_free_internal
        - Src:             'subscription-file.c:303,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    subsfile_list_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_strdup
        - i_stream_create_fd_autoclose
        - i_stream_set_return_partial_line
        - malloc_multiply_check
        - nfs_safe_open
        - p_malloc
        - str_new
        - subsfile_list_read_header
        - subsread_set_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:273,8'
          Dst:             malloc_multiply_check
        - Src:             'subscription-file.c:273,8'
          Dst:             p_malloc
        - Src:             'subscription-file.c:276,7'
          Dst:             nfs_safe_open
        - Src:             'subscription-file.c:278,7'
          Dst:             __errno_location
        - Src:             'subscription-file.c:279,4'
          Dst:             subsread_set_syscall_error
        - Src:             'subscription-file.c:283,16'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'subscription-file.c:285,3'
          Dst:             i_stream_set_return_partial_line
        - Src:             'subscription-file.c:286,3'
          Dst:             subsfile_list_read_header
        - Src:             'subscription-file.c:288,14'
          Dst:             i_strdup
        - Src:             'subscription-file.c:289,14'
          Dst:             str_new
    - functionName:    subsfile_list_read_header
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_read_bytes
        - i_stream_skip
        - memcmp
        - subswrite_set_syscall_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:70,8'
          Dst:             i_stream_read_bytes
        - Src:             'subscription-file.c:72,3'
          Dst:             i_panic
        - Src:             'subscription-file.c:74,48'
          Dst:             i_stream_get_name
        - Src:             'subscription-file.c:74,4'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:78,6'
          Dst:             memcmp
        - Src:             'subscription-file.c:80,3'
          Dst:             i_stream_skip
    - functionName:    subsfile_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/subscription-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          558
      EdgeCount:       122
      CyclomaticComplexity: 33
      functionsReached:
        - __errno_location
        - file_dotlock_delete
        - file_dotlock_open_group
        - file_dotlock_replace
        - fsync
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_set_return_partial_line
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_root_permissions
        - mailbox_list_mkdir_root
        - mailbox_list_set_error
        - next_line
        - nfs_safe_open
        - o_stream_abort
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_finish
        - o_stream_nsend
        - o_stream_nsend_str
        - str_append_c
        - str_append_tabescaped
        - str_c
        - strcasecmp
        - strcmp
        - strrchr
        - subsfile_list_read_header
        - subswrite_set_syscall_error
        - t_str_new
        - t_strconcat
        - t_strdup_until
        - t_strsplit
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'subscription-file.c:132,6'
          Dst:             strcasecmp
        - Src:             'subscription-file.c:142,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'subscription-file.c:143,11'
          Dst:             file_dotlock_open_group
        - Src:             'subscription-file.c:147,22'
          Dst:             __errno_location
        - Src:             'subscription-file.c:152,11'
          Dst:             strrchr
        - Src:             'subscription-file.c:154,10'
          Dst:             t_strdup_until
        - Src:             'subscription-file.c:155,8'
          Dst:             mailbox_list_mkdir_root
        - Src:             'subscription-file.c:158,12'
          Dst:             file_dotlock_open_group
        - Src:             'subscription-file.c:165,7'
          Dst:             __errno_location
        - Src:             'subscription-file.c:166,4'
          Dst:             mailbox_list_set_error
        - Src:             'subscription-file.c:169,4'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:175,10'
          Dst:             nfs_safe_open
        - Src:             'subscription-file.c:176,21'
          Dst:             __errno_location
        - Src:             'subscription-file.c:177,3'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:178,3'
          Dst:             file_dotlock_delete
        - Src:             'subscription-file.c:182,11'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'subscription-file.c:183,3'
          Dst:             i_stream_set_return_partial_line
        - Src:             'subscription-file.c:184,3'
          Dst:             subsfile_list_read_header
        - Src:             'subscription-file.c:188,11'
          Dst:             o_stream_create_fd_file
        - Src:             'subscription-file.c:189,2'
          Dst:             o_stream_cork
        - Src:             'subscription-file.c:191,3'
          Dst:             o_stream_nsend_str
        - Src:             'subscription-file.c:197,19'
          Dst:             t_str_new
        - Src:             'subscription-file.c:199,19'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'subscription-file.c:201,9'
          Dst:             t_strsplit
        - Src:             'subscription-file.c:202,3'
          Dst:             str_append_tabescaped
        - Src:             'subscription-file.c:204,4'
          Dst:             str_append_c
        - Src:             'subscription-file.c:205,4'
          Dst:             str_append_tabescaped
        - Src:             'subscription-file.c:207,18'
          Dst:             str_c
        - Src:             'subscription-file.c:210,18'
          Dst:             next_line
        - Src:             'subscription-file.c:212,8'
          Dst:             strcmp
        - Src:             'subscription-file.c:220,4'
          Dst:             o_stream_nsend_str
        - Src:             'subscription-file.c:221,4'
          Dst:             o_stream_nsend
        - Src:             'subscription-file.c:223,3'
          Dst:             i_stream_destroy
        - Src:             'subscription-file.c:228,10'
          Dst:             t_strconcat
        - Src:             'subscription-file.c:229,3'
          Dst:             o_stream_nsend_str
        - Src:             'subscription-file.c:234,7'
          Dst:             o_stream_finish
        - Src:             'subscription-file.c:235,4'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:238,8'
          Dst:             fsync
        - Src:             'subscription-file.c:239,5'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:245,3'
          Dst:             o_stream_abort
        - Src:             'subscription-file.c:247,2'
          Dst:             o_stream_destroy
        - Src:             'subscription-file.c:250,7'
          Dst:             file_dotlock_delete
        - Src:             'subscription-file.c:251,4'
          Dst:             subswrite_set_syscall_error
        - Src:             'subscription-file.c:258,7'
          Dst:             file_dotlock_replace
        - Src:             'subscription-file.c:259,4'
          Dst:             subswrite_set_syscall_error
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_metadata_transaction_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_get_last_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:310,2'
          Dst:             i_panic
        - Src:             'imap-metadata.c:311,9'
          Dst:             mailbox_get_last_error
    - functionName:    imap_metadata_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_metadata_transaction_finish
        - mailbox_transaction_rollback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:296,3'
          Dst:             mailbox_transaction_rollback
        - Src:             'imap-metadata.c:297,2'
          Dst:             imap_metadata_transaction_finish
    - functionName:    imap_metadata_transaction_finish
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_free
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:264,3'
          Dst:             mailbox_free
        - Src:             'imap-metadata.c:266,2'
          Dst:             p_free_internal
        - Src:             'imap-metadata.c:267,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/../../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:    imap_metadata_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imap_metadata_transaction_finish
        - mailbox_get_last_error
        - mailbox_transaction_commit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:280,9'
          Dst:             mailbox_transaction_commit
        - Src:             'imap-metadata.c:282,12'
          Dst:             mailbox_get_last_error
        - Src:             'imap-metadata.c:286,2'
          Dst:             imap_metadata_transaction_finish
    - functionName:    imap_metadata_transaction_validated_only
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_metadata_transaction_begin_server
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_metadata_transaction_begin
        - mail_namespace_find_inbox
        - mailbox_alloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:243,7'
          Dst:             mail_namespace_find_inbox
        - Src:             'imap-metadata.c:245,8'
          Dst:             mailbox_alloc
        - Src:             'imap-metadata.c:247,12'
          Dst:             imap_metadata_transaction_begin
    - functionName:    imap_metadata_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:231,12'
          Dst:             malloc_multiply_check
        - Src:             'imap-metadata.c:231,12'
          Dst:             p_malloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imap_metadata_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_attribute_iter_deinit
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:221,9'
          Dst:             mailbox_attribute_iter_deinit
        - Src:             'imap-metadata.c:222,2'
          Dst:             p_free_internal
    - functionName:    imap_metadata_iter_next
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_attribute_iter_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:208,9'
          Dst:             mailbox_attribute_iter_next
    - functionName:    imap_metadata_iter_init
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imap_metadata_entry2key
        - mailbox_attribute_iter_init
        - malloc_multiply_check
        - p_malloc
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:194,9'
          Dst:             malloc_multiply_check
        - Src:             'imap-metadata.c:194,9'
          Dst:             p_malloc
        - Src:             'imap-metadata.c:195,6'
          Dst:             imap_metadata_entry2key
        - Src:             'imap-metadata.c:197,26'
          Dst:             t_strconcat
        - Src:             'imap-metadata.c:198,16'
          Dst:             mailbox_attribute_iter_init
    - functionName:    imap_metadata_entry2key
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          231
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - i_unreached
        - str_begins
        - str_begins_builtin_success
        - str_begins_with
        - strncmp
        - t_str_lcase
        - t_strconcat
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:87,10'
          Dst:             t_str_lcase
        - Src:             'imap-metadata.c:89,6'
          Dst:             str_begins
        - Src:             'imap-metadata.c:89,6'
          Dst:             strncmp
        - Src:             'imap-metadata.c:89,6'
          Dst:             str_begins_builtin_success
        - Src:             'imap-metadata.c:91,11'
          Dst:             str_begins
        - Src:             'imap-metadata.c:91,11'
          Dst:             strncmp
        - Src:             'imap-metadata.c:91,11'
          Dst:             str_begins_builtin_success
        - Src:             'imap-metadata.c:94,3'
          Dst:             i_unreached
        - Src:             'imap-metadata.c:98,3'
          Dst:             i_panic
        - Src:             'imap-metadata.c:105,6'
          Dst:             strncmp
        - Src:             'imap-metadata.c:105,6'
          Dst:             str_begins_with
        - Src:             'imap-metadata.c:113,12'
          Dst:             t_strconcat
    - functionName:    imap_metadata_get_stream
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_metadata_entry2key
        - mailbox_attribute_get_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:177,7'
          Dst:             imap_metadata_entry2key
        - Src:             'imap-metadata.c:179,9'
          Dst:             mailbox_attribute_get_stream
    - functionName:    imap_metadata_get
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_metadata_entry2key
        - mailbox_attribute_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:165,7'
          Dst:             imap_metadata_entry2key
        - Src:             'imap-metadata.c:167,9'
          Dst:             mailbox_attribute_get
    - functionName:    imap_metadata_unset
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_metadata_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:155,9'
          Dst:             imap_metadata_set
    - functionName:    imap_metadata_set
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imap_metadata_entry2key
        - imap_metadata_get_mailbox_transaction
        - imap_metadata_transaction_set_error
        - mailbox_attribute_set
        - mailbox_attribute_unset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:136,7'
          Dst:             imap_metadata_entry2key
        - Src:             'imap-metadata.c:137,3'
          Dst:             imap_metadata_transaction_set_error
        - Src:             'imap-metadata.c:142,6'
          Dst:             imap_metadata_get_mailbox_transaction
        - Src:             'imap-metadata.c:145,3'
          Dst:             mailbox_attribute_unset
        - Src:             'imap-metadata.c:146,3'
          Dst:             mailbox_attribute_set
    - functionName:    imap_metadata_transaction_set_error
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:73,2'
          Dst:             p_free_internal
        - Src:             'imap-metadata.c:74,26'
          Dst:             i_strdup
    - functionName:    imap_metadata_get_mailbox_transaction
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_open
        - mailbox_transaction_begin
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-metadata.c:123,30'
          Dst:             mailbox_open
        - Src:             'imap-metadata.c:125,19'
          Dst:             mailbox_transaction_begin
    - functionName:    imap_metadata_verify_entry_name
      functionSourceFile: '/src/dovecot/src/lib-imap-storage/imap-metadata.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          223
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - strcasecmp
        - strchr
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    5
      BranchProfiles:
        - Branch String:   'imap-metadata.c:30,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-metadata.c:55,2'
          Dst:             t_push
        - Src:             'imap-metadata.c:56,28'
          Dst:             strchr
        - Src:             'imap-metadata.c:58,31'
          Dst:             t_strdup_until
        - Src:             'imap-metadata.c:59,8'
          Dst:             strcasecmp
        - Src:             'imap-metadata.c:60,4'
          Dst:             strcasecmp
        - Src:             'imap-metadata.c:61,4'
          Dst:             t_pop
        - Src:             'imap-metadata.c:61,4'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fail_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          80
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - mail_storage_mailbox_create_event
        - mailbox_list_get_storage_name
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:323,9'
          Dst:             pool_alloconly_create
        - Src:             'fail-mailbox.c:324,8'
          Dst:             malloc_multiply_check
        - Src:             'fail-mailbox.c:324,8'
          Dst:             p_malloc
        - Src:             'fail-mailbox.c:326,15'
          Dst:             p_strdup
        - Src:             'fail-mailbox.c:327,29'
          Dst:             mailbox_list_get_storage_name
        - Src:             'fail-mailbox.c:327,14'
          Dst:             p_strdup
        - Src:             'fail-mailbox.c:334,15'
          Dst:             mail_storage_mailbox_create_event
        - Src:             'fail-mailbox.c:336,2'
          Dst:             array_create_i
        - Src:             'fail-mailbox.c:337,2'
          Dst:             array_create_i
    - functionName:    fail_mailbox_is_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 13
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_enable
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:34,11'
          Dst:             t_strdup_printf
        - Src:             'fail-mailbox.c:33,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 40
      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:    fail_mailbox_free
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:44,2'
          Dst:             event_unref
    - functionName:    fail_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:52,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:61,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:68,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_rename
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:76,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:88,11'
          Dst:             t_strdup_printf
        - Src:             'fail-mailbox.c:87,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:98,11'
          Dst:             t_strdup_printf
        - Src:             'fail-mailbox.c:97,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:105,2'
          Dst:             mail_storage_set_error
    - functionName:    fail_mailbox_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:116,8'
          Dst:             malloc_multiply_check
        - Src:             'fail-mailbox.c:116,8'
          Dst:             p_malloc
    - functionName:    fail_mailbox_sync_next
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
        - p_free_internal
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:133,11'
          Dst:             t_strdup_printf
        - Src:             'fail-mailbox.c:132,2'
          Dst:             mail_storage_set_error
        - Src:             'fail-mailbox.c:134,2'
          Dst:             p_free_internal
    - functionName:    fail_mailbox_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 140
      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:    fail_mailbox_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:149,8'
          Dst:             malloc_multiply_check
        - Src:             'fail-mailbox.c:149,8'
          Dst:             p_malloc
        - Src:             'fail-mailbox.c:152,2'
          Dst:             array_create_i
    - functionName:    fail_mailbox_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fail_mailbox_transaction_rollback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:168,2'
          Dst:             fail_mailbox_transaction_rollback
    - functionName:    fail_mailbox_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          25
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:159,2'
          Dst:             array_free_i
        - Src:             'fail-mailbox.c:160,2'
          Dst:             p_free_internal
    - functionName:    fail_mailbox_search_init
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:181,8'
          Dst:             malloc_multiply_check
        - Src:             'fail-mailbox.c:181,8'
          Dst:             p_malloc
        - Src:             'fail-mailbox.c:185,2'
          Dst:             array_create_i
        - Src:             'fail-mailbox.c:186,2'
          Dst:             array_create_i
    - functionName:    fail_mailbox_search_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:192,2'
          Dst:             array_free_i
        - Src:             'fail-mailbox.c:193,2'
          Dst:             array_free_i
        - Src:             'fail-mailbox.c:194,2'
          Dst:             p_free_internal
    - functionName:    fail_mailbox_search_next_nonblock
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_search_next_update_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_search_next_match_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mailbox.c:225,8'
          Dst:             malloc_multiply_check
        - Src:             'fail-mailbox.c:225,8'
          Dst:             p_malloc
    - functionName:    fail_mailbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 252
      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:    fail_mailbox_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mailbox_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_list_write_special_use
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - str_append
        - str_append_c
        - str_c
        - str_len
        - str_new
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:773,22'
          Dst:             str_new
        - Src:             'imapc-list.c:774,2'
          Dst:             str_truncate
        - Src:             'imapc-list.c:779,4'
          Dst:             str_append
        - Src:             'imapc-list.c:780,4'
          Dst:             str_append_c
        - Src:             'imapc-list.c:784,6'
          Dst:             str_len
        - Src:             'imapc-list.c:785,34'
          Dst:             str_len
        - Src:             'imapc-list.c:785,3'
          Dst:             str_truncate
        - Src:             'imapc-list.c:786,27'
          Dst:             str_c
    - functionName:    imapc_list_is_ns_root
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_list_has_existing_children
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_list_has_existing_children
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:682,7'
          Dst:             imapc_list_has_existing_children
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_list_build_match_tree
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_list_has_existing_children
        - mailbox_list_iter_update
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:704,9'
          Dst:             mailbox_tree_iterate_init
        - Src:             'imapc-list.c:705,17'
          Dst:             mailbox_tree_iterate_next
        - Src:             'imapc-list.c:709,7'
          Dst:             imapc_list_has_existing_children
        - Src:             'imapc-list.c:713,3'
          Dst:             mailbox_list_iter_update
        - Src:             'imapc-list.c:715,2'
          Dst:             mailbox_tree_iterate_deinit
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    imapc_list_storage_to_fs_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_get_fs
        - imapc_list_storage_to_remote_name
        - mailbox_list_escape_name_params
        - mailbox_list_get_hierarchy_sep
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:513,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:519,16'
          Dst:             imapc_list_storage_to_remote_name
        - Src:             'imapc-list.c:521,19'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:520,9'
          Dst:             mailbox_list_escape_name_params
    - functionName:    imapc_list_get_fs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          243
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - event_create
        - event_set_ptr
        - event_unref
        - mail_storage_2nd_settings_reset
        - mail_storage_service_user_get_settings_instance
        - mailbox_list_create
        - pool_unref
        - settings_event_add_filter_name
        - settings_get
        - settings_instance_dup
        - settings_override
        - strcmp
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:451,11'
          Dst:             strcmp
        - Src:             'imapc-list.c:461,4'
          Dst:             mail_storage_service_user_get_settings_instance
        - Src:             'imapc-list.c:464,4'
          Dst:             settings_instance_dup
        - Src:             'imapc-list.c:465,3'
          Dst:             mail_storage_2nd_settings_reset
        - Src:             'imapc-list.c:468,3'
          Dst:             settings_override
        - Src:             'imapc-list.c:472,3'
          Dst:             settings_override
        - Src:             'imapc-list.c:476,3'
          Dst:             settings_override
        - Src:             'imapc-list.c:480,3'
          Dst:             settings_override
        - Src:             'imapc-list.c:486,25'
          Dst:             event_create
        - Src:             'imapc-list.c:487,3'
          Dst:             event_set_ptr
        - Src:             'imapc-list.c:489,3'
          Dst:             settings_event_add_filter_name
        - Src:             'imapc-list.c:491,7'
          Dst:             settings_get
        - Src:             'imapc-list.c:493,4'
          Dst:             e_error
        - Src:             'imapc-list.c:495,14'
          Dst:             mailbox_list_create
        - Src:             'imapc-list.c:498,4'
          Dst:             e_error
        - Src:             'imapc-list.c:503,3'
          Dst:             pool_unref
        - Src:             'imapc-list.c:504,3'
          Dst:             event_unref
    - functionName:    imapc_list_storage_to_remote_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_unescape_name_params
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:235,19'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:234,9'
          Dst:             mailbox_list_unescape_name_params
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_list_remote_to_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_list_remote_to_storage_name
        - mailbox_list_get_vname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:227,3'
          Dst:             imapc_list_remote_to_storage_name
        - Src:             'imapc-list.c:226,9'
          Dst:             mailbox_list_get_vname
    - functionName:    imapc_list_remote_to_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_escape_name_params
        - mailbox_list_get_hierarchy_sep
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:217,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:215,9'
          Dst:             mailbox_list_escape_name_params
    - functionName:    imap_list_flag_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:200,7'
          Dst:             strcasecmp
    - functionName:    imapc_list_update_tree
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          118
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - imap_arg_get_astring
        - imap_arg_get_atom
        - imap_arg_get_list
        - imap_list_flag_parse
        - imapc_list_remote_to_vname
        - mailbox_tree_get
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:250,7'
          Dst:             imap_arg_get_list
        - Src:             'imapc-list.c:252,7'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-list.c:255,9'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-list.c:256,7'
          Dst:             imap_list_flag_parse
        - Src:             'imapc-list.c:261,2'
          Dst:             t_push
        - Src:             'imapc-list.c:263,4'
          Dst:             imapc_list_remote_to_vname
        - Src:             'imapc-list.c:264,10'
          Dst:             mailbox_tree_get
        - Src:             'imapc-list.c:266,4'
          Dst:             t_pop
        - Src:             'imapc-list.c:266,4'
          Dst:             i_panic
    - functionName:    imapc_untagged_lsub
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_list_update_tree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:317,9'
          Dst:             imapc_list_update_tree
    - functionName:    imapc_untagged_list
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - imap_arg_get_astring
        - imap_arg_get_nstring
        - imapc_list_update_tree
        - mailbox_tree_set_separator
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:282,8'
          Dst:             imap_arg_get_nstring
        - Src:             'imapc-list.c:283,8'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-list.c:288,3'
          Dst:             mailbox_tree_set_separator
        - Src:             'imapc-list.c:291,4'
          Dst:             imapc_list_update_tree
        - Src:             'imapc-list.c:297,10'
          Dst:             imapc_list_update_tree
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_list_fs_to_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_get_fs
        - imapc_list_remote_to_storage_name
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_unescape_name_params
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:530,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:538,4'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:536,16'
          Dst:             mailbox_list_unescape_name_params
        - Src:             'imapc-list.c:540,9'
          Dst:             imapc_list_remote_to_storage_name
    - functionName:    imapc_list_simple_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_stop
        - imapc_list_copy_error_from_reply
        - imapc_storage_client_handle_auth_failure
        - mailbox_list_set_critical
        - mailbox_list_set_internal_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:178,3'
          Dst:             imapc_list_copy_error_from_reply
        - Src:             'imapc-list.c:181,13'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-list.c:184,3'
          Dst:             mailbox_list_set_internal_error
        - Src:             'imapc-list.c:187,3'
          Dst:             mailbox_list_set_critical
        - Src:             'imapc-list.c:191,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_list_copy_error_from_reply
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_resp_text_code_parse
        - mailbox_list_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:161,6'
          Dst:             imapc_resp_text_code_parse
        - Src:             'imapc-list.c:162,3'
          Dst:             mailbox_list_set_error
        - Src:             'imapc-list.c:165,3'
          Dst:             mailbox_list_set_error
    - functionName:    imapc_list_delete_unused_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imapc_list_fs_to_storage_name
        - imapc_list_get_fs
        - mailbox_list_get_storage_name
        - mailbox_list_get_vname
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - mailbox_tree_lookup
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:594,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:602,9'
          Dst:             mailbox_list_iter_init
        - Src:             'imapc-list.c:606,17'
          Dst:             mailbox_list_iter_next
        - Src:             'imapc-list.c:606,56'
          Dst:             t_push
        - Src:             'imapc-list.c:607,13'
          Dst:             mailbox_list_get_storage_name
        - Src:             'imapc-list.c:608,18'
          Dst:             imapc_list_fs_to_storage_name
        - Src:             'imapc-list.c:609,11'
          Dst:             mailbox_list_get_vname
        - Src:             'imapc-list.c:612,7'
          Dst:             mailbox_tree_lookup
        - Src:             'imapc-list.c:614,4'
          Dst:             t_pop
        - Src:             'imapc-list.c:614,4'
          Dst:             i_panic
        - Src:             'imapc-list.c:615,8'
          Dst:             mailbox_list_iter_deinit
    - functionName:    imapc_list_simple_context_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_cmd
        - imapc_list_simple_callback
        - imapc_simple_context_init
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:587,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-list.c:588,9'
          Dst:             imapc_client_cmd
        - Src:             'imapc-list.c:588,9'
          Dst:             imapc_list_simple_callback
    - functionName:    imapc_list_sep_verify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_set_critical
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:334,3'
          Dst:             mailbox_list_set_critical
        - Src:             'imapc-list.c:337,24'
          Dst:             strlen
        - Src:             'imapc-list.c:338,3'
          Dst:             mailbox_list_set_critical
    - functionName:    imapc_storage_sep_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_client_stop
        - imapc_list_copy_error_from_reply
        - imapc_list_sep_verify
        - imapc_storage_client_handle_auth_failure
        - mailbox_list_set_critical
        - mailbox_list_set_internal_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:350,3'
          Dst:             imapc_list_sep_verify
        - Src:             'imapc-list.c:352,3'
          Dst:             imapc_list_copy_error_from_reply
        - Src:             'imapc-list.c:353,11'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-list.c:356,3'
          Dst:             mailbox_list_set_internal_error
        - Src:             'imapc-list.c:358,3'
          Dst:             mailbox_list_set_critical
        - Src:             'imapc-list.c:361,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1021
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_command_sendf
        - imapc_list_get_fs
        - imapc_list_simple_context_init
        - imapc_list_storage_to_fs_name
        - imapc_list_storage_to_remote_name
        - imapc_simple_run
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:997,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:1002,3'
          Dst:             mailbox_list_set_error
        - Src:             'imapc-list.c:1007,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:1009,8'
          Dst:             imapc_list_storage_to_remote_name
        - Src:             'imapc-list.c:1010,8'
          Dst:             imapc_list_storage_to_remote_name
        - Src:             'imapc-list.c:1008,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:1011,2'
          Dst:             imapc_simple_run
        - Src:             'imapc-list.c:1014,4'
          Dst:             imapc_list_storage_to_fs_name
        - Src:             'imapc-list.c:1016,4'
          Dst:             imapc_list_storage_to_fs_name
    - functionName:    imapc_list_delete_symlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:988,2'
          Dst:             mailbox_list_set_error
    - functionName:    imapc_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_get_fs
        - imapc_list_storage_to_fs_name
        - mailbox_list_delete_dir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:975,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:978,25'
          Dst:             imapc_list_storage_to_fs_name
        - Src:             'imapc-list.c:979,9'
          Dst:             mailbox_list_delete_dir
    - functionName:    imapc_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 969
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - imapc_client_get_capabilities
        - imapc_command_abort
        - imapc_command_connection_is_selected
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_list_get_fs
        - imapc_list_simple_context_init
        - imapc_list_storage_to_fs_name
        - imapc_list_storage_to_remote_name
        - imapc_server_unselect
        - imapc_simple_run
        - imapc_storage_client_handle_auth_failure
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:942,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:947,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-list.c:949,6'
          Dst:             imapc_client_get_capabilities
        - Src:             'imapc-list.c:952,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:953,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:954,7'
          Dst:             imapc_command_connection_is_selected
        - Src:             'imapc-list.c:955,3'
          Dst:             imapc_command_abort
        - Src:             'imapc-list.c:956,11'
          Dst:             imapc_server_unselect
        - Src:             'imapc-list.c:959,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:960,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:961,40'
          Dst:             imapc_list_storage_to_remote_name
        - Src:             'imapc-list.c:961,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:962,2'
          Dst:             imapc_simple_run
        - Src:             'imapc-list.c:965,25'
          Dst:             imapc_list_storage_to_fs_name
    - functionName:    imapc_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 935
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_list_simple_context_init
        - imapc_list_storage_to_remote_name
        - imapc_simple_run
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:930,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:931,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:933,8'
          Dst:             imapc_list_storage_to_remote_name
        - Src:             'imapc-list.c:932,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:934,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_list_subscriptions_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          207
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - imapc_cmd_has_imap4rev2
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_list_simple_context_init
        - imapc_list_try_get_root_sep
        - imapc_simple_run
        - mail_namespace_get_sep
        - mailbox_tree_deinit
        - mailbox_tree_init
        - mailbox_tree_set_separator
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:879,28'
          Dst:             mail_namespace_get_sep
        - Src:             'imapc-list.c:881,2'
          Dst:             i_panic
        - Src:             'imapc-list.c:883,6'
          Dst:             imapc_list_try_get_root_sep
        - Src:             'imapc-list.c:889,31'
          Dst:             mailbox_tree_init
        - Src:             'imapc-list.c:894,21'
          Dst:             mail_namespace_get_sep
        - Src:             'imapc-list.c:894,3'
          Dst:             mailbox_tree_init
        - Src:             'imapc-list.c:896,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:900,13'
          Dst:             t_strdup_printf
        - Src:             'imapc-list.c:901,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:903,6'
          Dst:             imapc_cmd_has_imap4rev2
        - Src:             'imapc-list.c:904,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:906,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:907,2'
          Dst:             imapc_simple_run
        - Src:             'imapc-list.c:914,3'
          Dst:             mailbox_tree_deinit
        - Src:             'imapc-list.c:917,2'
          Dst:             mailbox_tree_set_separator
    - functionName:    imapc_list_try_get_root_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_run
        - imapc_list_send_hierarchy_sep_lookup
        - imapc_storage_client_handle_auth_failure
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:381,7'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-list.c:383,3'
          Dst:             imapc_list_send_hierarchy_sep_lookup
        - Src:             'imapc-list.c:385,4'
          Dst:             imapc_client_run
    - functionName:    imapc_list_send_hierarchy_sep_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_storage_sep_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:372,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-list.c:372,8'
          Dst:             imapc_storage_sep_callback
        - Src:             'imapc-list.c:374,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:375,2'
          Dst:             imapc_command_send
    - functionName:    imapc_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mailbox_tree_deinit
        - mailbox_tree_iterate_deinit
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:857,2'
          Dst:             i_panic
        - Src:             'imapc-list.c:864,2'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'imapc-list.c:865,2'
          Dst:             mailbox_tree_deinit
        - Src:             'imapc-list.c:866,2'
          Dst:             pool_unref
    - functionName:    imapc_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          228
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - imapc_list_is_ns_root
        - imapc_list_iter_next
        - imapc_list_write_special_use
        - mailbox_list_iter_default_next
        - mailbox_tree_iterate_next
        - strcasecmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:820,10'
          Dst:             mailbox_tree_iterate_next
        - Src:             'imapc-list.c:822,11'
          Dst:             mailbox_list_iter_default_next
        - Src:             'imapc-list.c:824,5'
          Dst:             imapc_list_is_ns_root
        - Src:             'imapc-list.c:825,6'
          Dst:             strcasecmp
        - Src:             'imapc-list.c:829,6'
          Dst:             strcasecmp
        - Src:             'imapc-list.c:830,6'
          Dst:             strncmp
        - Src:             'imapc-list.c:834,10'
          Dst:             imapc_list_iter_next
        - Src:             'imapc-list.c:842,3'
          Dst:             imapc_list_write_special_use
    - functionName:    imapc_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          205
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_create_i
        - imap_match_init_multiple
        - imapc_list_build_match_tree
        - imapc_list_refresh
        - mail_namespace_get_sep
        - mailbox_tree_init
        - mailbox_tree_iterate_init
        - mailbox_tree_lookup
        - mailbox_tree_set_parents_nonexistent
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - t_strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:731,9'
          Dst:             imapc_list_refresh
        - Src:             'imapc-list.c:737,27'
          Dst:             mail_namespace_get_sep
        - Src:             'imapc-list.c:739,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-list.c:740,8'
          Dst:             malloc_multiply_check
        - Src:             'imapc-list.c:740,8'
          Dst:             p_malloc
        - Src:             'imapc-list.c:744,18'
          Dst:             imap_match_init_multiple
        - Src:             'imapc-list.c:745,2'
          Dst:             array_create_i
        - Src:             'imapc-list.c:749,14'
          Dst:             mailbox_tree_init
        - Src:             'imapc-list.c:750,2'
          Dst:             mailbox_tree_set_parents_nonexistent
        - Src:             'imapc-list.c:752,3'
          Dst:             imapc_list_build_match_tree
        - Src:             'imapc-list.c:755,18'
          Dst:             t_strndup
        - Src:             'imapc-list.c:757,18'
          Dst:             mailbox_tree_lookup
        - Src:             'imapc-list.c:760,14'
          Dst:             mailbox_tree_iterate_init
    - functionName:    imapc_list_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          199
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_list_delete_unused_indexes
        - imapc_list_simple_context_init
        - imapc_list_try_get_root_sep
        - imapc_simple_run
        - mail_namespace_get_sep
        - mailbox_tree_deinit
        - mailbox_tree_get
        - mailbox_tree_init
        - mailbox_tree_set_parents_nonexistent
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:626,6'
          Dst:             imapc_list_try_get_root_sep
        - Src:             'imapc-list.c:642,13'
          Dst:             t_strdup_printf
        - Src:             'imapc-list.c:645,8'
          Dst:             imapc_list_simple_context_init
        - Src:             'imapc-list.c:646,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-list.c:647,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-list.c:648,2'
          Dst:             mailbox_tree_deinit
        - Src:             'imapc-list.c:649,38'
          Dst:             mail_namespace_get_sep
        - Src:             'imapc-list.c:649,20'
          Dst:             mailbox_tree_init
        - Src:             'imapc-list.c:650,2'
          Dst:             mailbox_tree_set_parents_nonexistent
        - Src:             'imapc-list.c:651,2'
          Dst:             imapc_simple_run
        - Src:             'imapc-list.c:658,10'
          Dst:             mailbox_tree_get
        - Src:             'imapc-list.c:672,3'
          Dst:             imapc_list_delete_unused_indexes
    - functionName:    imapc_list_join_refpattern
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:580,9'
          Dst:             t_strconcat
    - functionName:    imapc_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imapc_list_get_fs
        - mailbox_list_get_global_temp_prefix
        - mailbox_list_get_temp_prefix
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:564,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:568,4'
          Dst:             mailbox_list_get_global_temp_prefix
        - Src:             'imapc-list.c:569,4'
          Dst:             mailbox_list_get_temp_prefix
        - Src:             'imapc-list.c:571,3'
          Dst:             i_panic
    - functionName:    imapc_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_get_fs
        - imapc_list_storage_to_fs_name
        - mailbox_list_get_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:548,33'
          Dst:             imapc_list_get_fs
        - Src:             'imapc-list.c:552,13'
          Dst:             imapc_list_storage_to_fs_name
        - Src:             'imapc-list.c:553,10'
          Dst:             mailbox_list_get_path
    - functionName:    imapc_list_get_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_default_get_storage_name
        - mailbox_list_get_hierarchy_sep
        - strcasecmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:413,17'
          Dst:             mailbox_list_default_get_storage_name
        - Src:             'imapc-list.c:414,25'
          Dst:             strcasecmp
        - Src:             'imapc-list.c:417,4'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:416,4'
          Dst:             t_strdup_printf
    - functionName:    imapc_list_get_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          145
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - mailbox_list_default_get_vname
        - mailbox_list_get_hierarchy_sep
        - str_begins
        - str_begins_builtin_success
        - strcasecmp
        - strlen
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:431,32'
          Dst:             strcasecmp
        - Src:             'imapc-list.c:432,8'
          Dst:             str_begins
        - Src:             'imapc-list.c:432,8'
          Dst:             strlen
        - Src:             'imapc-list.c:432,8'
          Dst:             strncmp
        - Src:             'imapc-list.c:432,8'
          Dst:             strlen
        - Src:             'imapc-list.c:432,8'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-list.c:433,4'
          Dst:             i_unreached
        - Src:             'imapc-list.c:437,4'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-list.c:437,4'
          Dst:             i_panic
        - Src:             'imapc-list.c:442,9'
          Dst:             mailbox_list_default_get_vname
    - functionName:    imapc_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_try_get_root_sep
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:398,6'
          Dst:             imapc_list_try_get_root_sep
    - functionName:    imapc_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_client_logout
        - imapc_storage_client_unref
        - mailbox_list_destroy
        - mailbox_tree_deinit
        - pool_unref
        - settings_instance_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:142,3'
          Dst:             imapc_client_logout
        - Src:             'imapc-list.c:143,3'
          Dst:             imapc_storage_client_unref
        - Src:             'imapc-list.c:146,3'
          Dst:             mailbox_list_destroy
        - Src:             'imapc-list.c:147,2'
          Dst:             settings_instance_free
        - Src:             'imapc-list.c:148,2'
          Dst:             mailbox_tree_deinit
        - Src:             'imapc-list.c:150,3'
          Dst:             mailbox_tree_deinit
        - Src:             'imapc-list.c:151,2'
          Dst:             pool_unref
    - functionName:    imapc_list_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_list_send_hierarchy_sep_lookup
        - imapc_storage_client_create
        - imapc_storage_client_register_untagged
        - imapc_untagged_list
        - imapc_untagged_lsub
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:114,6'
          Dst:             imapc_storage_client_create
        - Src:             'imapc-list.c:126,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-list.c:126,2'
          Dst:             imapc_untagged_list
        - Src:             'imapc-list.c:128,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-list.c:128,2'
          Dst:             imapc_untagged_lsub
        - Src:             'imapc-list.c:130,2'
          Dst:             imapc_list_send_hierarchy_sep_lookup
    - functionName:    imapc_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_tree_init
        - mailbox_tree_set_parents_nonexistent
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:100,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-list.c:101,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-list.c:101,9'
          Dst:             p_malloc
        - Src:             'imapc-list.c:105,20'
          Dst:             mailbox_tree_init
        - Src:             'imapc-list.c:106,2'
          Dst:             mailbox_tree_set_parents_nonexistent
    - functionName:    imapc_list_get_mailbox_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-list.c'
      linkageType:     externalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1048
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - imapc_list_refresh
        - mailbox_list_get_vname
        - mailbox_tree_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-list.c:1030,10'
          Dst:             mailbox_list_get_vname
        - Src:             'imapc-list.c:1032,7'
          Dst:             imapc_list_refresh
        - Src:             'imapc-list.c:1034,3'
          Dst:             i_panic
        - Src:             'imapc-list.c:1042,9'
          Dst:             mailbox_tree_lookup
    - functionName:    imapc_noop_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1382
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_copy_error_from_reply
        - mail_storage_set_critical
        - mail_storage_set_internal_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1375,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-storage.c:1377,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-storage.c:1379,3'
          Dst:             mail_storage_set_critical
    - functionName:    imapc_copy_error_from_reply
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_resp_text_code_parse
        - mail_storage_set_error
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:143,6'
          Dst:             imapc_resp_text_code_parse
        - Src:             'imapc-storage.c:144,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-storage.c:147,3'
          Dst:             mail_storage_set_error
    - functionName:    imapc_resp_text_code_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:96,7'
          Dst:             strcmp
    - functionName:    imapc_idle_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1391
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_noop_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1388,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-storage.c:1388,8'
          Dst:             imapc_noop_callback
        - Src:             'imapc-storage.c:1390,2'
          Dst:             imapc_command_send
    - functionName:    imapc_idle_noop_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_idle
        - imapc_noop_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1399,2'
          Dst:             imapc_noop_callback
        - Src:             'imapc-storage.c:1401,3'
          Dst:             imapc_client_mailbox_idle
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    imapc_namespace_find_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - str_begins_with
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1323,9'
          Dst:             strlen
        - Src:             'imapc-storage.c:1324,7'
          Dst:             strlen
        - Src:             'imapc-storage.c:1324,7'
          Dst:             strncmp
        - Src:             'imapc-storage.c:1324,7'
          Dst:             str_begins_with
    - functionName:    imapc_mailbox_get_namespaces
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1313
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          92
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_mailbox_get_capabilities
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1295,6'
          Dst:             imapc_mailbox_get_capabilities
        - Src:             'imapc-storage.c:1302,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-storage.c:1303,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-storage.c:1303,8'
          Dst:             imapc_simple_callback
        - Src:             'imapc-storage.c:1305,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:1306,2'
          Dst:             imapc_command_send
        - Src:             'imapc-storage.c:1307,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_mailbox_get_capabilities
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_get_capabilities
        - imapc_storage_client_handle_auth_failure
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:751,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:754,9'
          Dst:             imapc_client_get_capabilities
    - functionName:    imapc_simple_context_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_simple_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_storage_client_handle_auth_failure
        - mail_storage_set_critical
        - mail_storage_set_internal_error
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:195,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-storage.c:198,13'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:201,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-storage.c:204,3'
          Dst:             mail_storage_set_critical
        - Src:             'imapc-storage.c:208,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_simple_run
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_logout
        - imapc_client_run
        - imapc_command_abort
        - imapc_storage_client_handle_auth_failure
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:163,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:164,3'
          Dst:             imapc_command_abort
        - Src:             'imapc-storage.c:165,3'
          Dst:             imapc_client_logout
        - Src:             'imapc-storage.c:170,3'
          Dst:             imapc_client_run
    - functionName:    imapc_storage_client_handle_auth_failure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_storage_set_error
        - mail_storage_set_internal_error
        - mailbox_list_set_error
        - mailbox_list_set_internal_error
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:293,4'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-storage.c:295,4'
          Dst:             mail_storage_set_error
        - Src:             'imapc-storage.c:301,4'
          Dst:             mailbox_list_set_internal_error
        - Src:             'imapc-storage.c:303,4'
          Dst:             mailbox_list_set_error
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imapc_mailbox_run_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1242
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          256
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - imapc_client_cmd
        - imapc_client_is_server_selected
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_mailbox_get_capabilities
        - imapc_mailbox_get_remote_name
        - imapc_mailbox_has_modseqs
        - imapc_server_unselect
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
        - mailbox_get_name
        - str_append
        - str_c
        - str_len
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1193,6'
          Dst:             imapc_mailbox_get_capabilities
        - Src:             'imapc-storage.c:1196,8'
          Dst:             t_str_new
        - Src:             'imapc-storage.c:1198,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1201,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1203,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1205,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1207,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1209,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1211,6'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-storage.c:1212,3'
          Dst:             str_append
        - Src:             'imapc-storage.c:1214,6'
          Dst:             str_len
        - Src:             'imapc-storage.c:1220,10'
          Dst:             mailbox_get_name
        - Src:             'imapc-storage.c:1219,6'
          Dst:             imapc_client_is_server_selected
        - Src:             'imapc-storage.c:1226,7'
          Dst:             imapc_server_unselect
        - Src:             'imapc-storage.c:1230,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-storage.c:1233,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-storage.c:1233,8'
          Dst:             imapc_simple_callback
        - Src:             'imapc-storage.c:1235,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:1237,8'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:1237,45'
          Dst:             str_c
        - Src:             'imapc-storage.c:1236,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:1238,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_mailbox_has_modseqs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_server_unselect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_cmd
        - imapc_client_get_capabilities
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1160,6'
          Dst:             imapc_client_get_capabilities
        - Src:             'imapc-storage.c:1164,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-storage.c:1166,30'
          Dst:             imapc_client_cmd
        - Src:             'imapc-storage.c:1166,30'
          Dst:             imapc_simple_callback
        - Src:             'imapc-storage.c:1170,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:1171,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:1176,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:1177,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:1180,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_mailbox_get_remote_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_list_storage_to_remote_name
        - strcmp
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:561,6'
          Dst:             strcmp
        - Src:             'imapc-storage.c:563,9'
          Dst:             imapc_list_storage_to_remote_name
    - functionName:    imapc_mailbox_get_selected_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_mailbox_has_modseqs
        - index_storage_get_open_status
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1130,2'
          Dst:             index_storage_get_open_status
        - Src:             'imapc-storage.c:1144,6'
          Dst:             imapc_mailbox_has_modseqs
    - functionName:    response_code_forward_alert
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_is_ssl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1089,9'
          Dst:             imapc_client_is_ssl
    - functionName:    imapc_parse_inprogress_start_time
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1041
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_find_command_by_tag
        - imapc_command_get_start_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1031,3'
          Dst:             imapc_client_find_command_by_tag
        - Src:             'imapc-storage.c:1035,30'
          Dst:             imapc_command_get_start_time
    - functionName:    imapc_parse_inprogress
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          136
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - imap_arg_get_astring
        - imap_arg_get_atom
        - imap_arg_get_list_full
        - imapc_parse_inprogress_start_time
        - str_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1051,7'
          Dst:             imap_arg_get_list_full
        - Src:             'imapc-storage.c:1055,7'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-storage.c:1056,6'
          Dst:             str_to_uint32
        - Src:             'imapc-storage.c:1060,7'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-storage.c:1061,6'
          Dst:             str_to_uint32
        - Src:             'imapc-storage.c:1065,34'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-storage.c:1066,3'
          Dst:             imapc_parse_inprogress_start_time
    - functionName:    imapc_untagged_respcodes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1094
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          219
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - imap_write_args
        - str_c
        - strcasecmp
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1100,46'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:1102,51'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:1104,52'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:1111,7'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:1115,21'
          Dst:             t_str_new
        - Src:             'imapc-storage.c:1116,4'
          Dst:             imap_write_args
        - Src:             'imapc-storage.c:1120,16'
          Dst:             str_c
    - functionName:    imapc_untagged_inprogress
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1073
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_parse_inprogress
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1077,6'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:1084,2'
          Dst:             imapc_parse_inprogress
    - functionName:    imapc_untagged_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          155
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - imap_arg_get_astring
        - imap_arg_get_list
        - imap_arg_get_nstring
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1004,2'
          Dst:             array_clear_i
        - Src:             'imapc-storage.c:1008,8'
          Dst:             imap_arg_get_list
        - Src:             'imapc-storage.c:1012,9'
          Dst:             imap_arg_get_list
        - Src:             'imapc-storage.c:1013,9'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-storage.c:1014,9'
          Dst:             imap_arg_get_nstring
        - Src:             'imapc-storage.c:1017,9'
          Dst:             array_append_space_i
        - Src:             'imapc-storage.c:1018,17'
          Dst:             p_strdup
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    imapc_untagged_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          257
      EdgeCount:       67
      CyclomaticComplexity: 19
      functionsReached:
        - imap_arg_get_astring
        - imap_arg_get_atom
        - imap_arg_get_list
        - imapc_mailbox_has_modseqs
        - imapc_mailbox_name_equals
        - str_to_uint32
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:951,7'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-storage.c:952,7'
          Dst:             imap_arg_get_list
        - Src:             'imapc-storage.c:958,7'
          Dst:             imapc_mailbox_name_equals
        - Src:             'imapc-storage.c:964,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-storage.c:965,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-storage.c:966,7'
          Dst:             str_to_uint32
        - Src:             'imapc-storage.c:969,7'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:971,12'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:976,14'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:978,12'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:980,12'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:982,12'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:984,12'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:985,5'
          Dst:             imapc_mailbox_has_modseqs
    - functionName:    imapc_mailbox_verify_select
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_mailbox_reopen_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imap_mailbox_select_finish
        - imapc_client_mailbox_reconnect
        - imapc_client_stop
        - imapc_mailbox_verify_select
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:636,2'
          Dst:             i_panic
        - Src:             'imapc-storage.c:641,11'
          Dst:             imapc_mailbox_verify_select
        - Src:             'imapc-storage.c:642,3'
          Dst:             imap_mailbox_select_finish
        - Src:             'imapc-storage.c:648,4'
          Dst:             t_strdup_printf
        - Src:             'imapc-storage.c:647,3'
          Dst:             imapc_client_mailbox_reconnect
        - Src:             'imapc-storage.c:652,2'
          Dst:             imapc_client_stop
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1443
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_client_mailbox_is_opened
        - mail_index_view_is_inconsistent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1438,6'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'imapc-storage.c:1442,4'
          Dst:             imapc_client_mailbox_is_opened
    - functionName:    imapc_mailbox_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_transaction_save_commit
        - index_transaction_commit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1469,12'
          Dst:             imapc_transaction_save_commit
        - Src:             'imapc-storage.c:1470,13'
          Dst:             index_transaction_commit
    - functionName:    imapc_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1405
      functionLinenumberEnd: 1431
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          134
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - imapc_client_is_running
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_idle_noop_callback
        - imapc_idle_timeout
        - timeout_add
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1411,3'
          Dst:             timeout_remove
        - Src:             'imapc-storage.c:1420,9'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-storage.c:1420,9'
          Dst:             imapc_idle_noop_callback
        - Src:             'imapc-storage.c:1422,3'
          Dst:             imapc_command_send
        - Src:             'imapc-storage.c:1426,3'
          Dst:             imapc_client_is_running
        - Src:             'imapc-storage.c:1426,3'
          Dst:             i_panic
        - Src:             'imapc-storage.c:1428,4'
          Dst:             timeout_add
        - Src:             'imapc-storage.c:1428,4'
          Dst:             imapc_idle_timeout
    - functionName:    imapc_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1337
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - imapc_mailbox_get_namespaces
        - imapc_mailbox_get_remote_name
        - imapc_namespace_find_mailbox
        - index_mailbox_get_metadata
        - mail_generate_guid_128_hash
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1344,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'imapc-storage.c:1348,7'
          Dst:             imapc_mailbox_get_namespaces
        - Src:             'imapc-storage.c:1351,29'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:1352,8'
          Dst:             imapc_namespace_find_mailbox
        - Src:             'imapc-storage.c:1360,7'
          Dst:             index_mailbox_get_metadata
    - functionName:    imapc_mailbox_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          205
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - imapc_mailbox_get_selected_status
        - imapc_mailbox_run_status
        - index_storage_get_status
        - mailbox_open
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1255,3'
          Dst:             imapc_mailbox_get_selected_status
        - Src:             'imapc-storage.c:1260,7'
          Dst:             mailbox_open
        - Src:             'imapc-storage.c:1262,3'
          Dst:             imapc_mailbox_get_selected_status
        - Src:             'imapc-storage.c:1264,7'
          Dst:             imapc_mailbox_run_status
        - Src:             'imapc-storage.c:1271,4'
          Dst:             index_storage_get_status
        - Src:             'imapc-storage.c:1280,7'
          Dst:             imapc_mailbox_run_status
    - functionName:    imapc_mailbox_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:1154,9'
          Dst:             index_storage_mailbox_delete
    - functionName:    imapc_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - guid_128_is_empty
        - index_storage_mailbox_update
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:931,7'
          Dst:             guid_128_is_empty
        - Src:             'imapc-storage.c:934,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-storage.c:937,9'
          Dst:             index_storage_mailbox_update
    - functionName:    imapc_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          95
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_cmd
        - imapc_command_sendf
        - imapc_mailbox_get_remote_name
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
        - mailbox_list_get_hierarchy_sep
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:907,28'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:911,11'
          Dst:             strcmp
        - Src:             'imapc-storage.c:914,17'
          Dst:             t_strdup_printf
        - Src:             'imapc-storage.c:918,4'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'imapc-storage.c:917,17'
          Dst:             t_strdup_printf
        - Src:             'imapc-storage.c:920,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-storage.c:921,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-storage.c:921,8'
          Dst:             imapc_simple_callback
        - Src:             'imapc-storage.c:923,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:924,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          125
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_free_i
        - array_is_created_i
        - i_memcpy
        - imapc_client_mailbox_close
        - imapc_mail_cache_free
        - imapc_mail_fetch_flush
        - imapc_mailbox_commit_delayed_trans
        - imapc_untagged_fetch_ctx_free
        - index_storage_mailbox_close
        - mail_index_view_close
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:876,8'
          Dst:             imapc_mailbox_commit_delayed_trans
        - Src:             'imapc-storage.c:877,2'
          Dst:             imapc_mail_fetch_flush
        - Src:             'imapc-storage.c:884,2'
          Dst:             i_memcpy
        - Src:             'imapc-storage.c:885,3'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-storage.c:886,2'
          Dst:             array_clear_i
        - Src:             'imapc-storage.c:889,3'
          Dst:             imapc_client_mailbox_close
        - Src:             'imapc-storage.c:890,6'
          Dst:             array_is_created_i
        - Src:             'imapc-storage.c:891,3'
          Dst:             array_free_i
        - Src:             'imapc-storage.c:892,2'
          Dst:             mail_index_view_close
        - Src:             'imapc-storage.c:893,2'
          Dst:             timeout_remove
        - Src:             'imapc-storage.c:894,2'
          Dst:             timeout_remove
        - Src:             'imapc-storage.c:895,2'
          Dst:             imapc_mail_cache_free
        - Src:             'imapc-storage.c:896,2'
          Dst:             index_storage_mailbox_close
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    imapc_mail_cache_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - i_close_fd_path
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:866,2'
          Dst:             i_close_fd_path
        - Src:             'imapc-storage.c:867,2'
          Dst:             buffer_free
    - functionName:    imapc_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          187
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - imapc_mailbox_select
        - index_storage_mailbox_open
        - mail_storage_set_error
        - mailbox_close
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:824,6'
          Dst:             index_storage_mailbox_open
        - Src:             'imapc-storage.c:836,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-storage.c:838,3'
          Dst:             mailbox_close
        - Src:             'imapc-storage.c:849,26'
          Dst:             t_strdup_printf
        - Src:             'imapc-storage.c:849,7'
          Dst:             strcmp
        - Src:             'imapc-storage.c:851,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-storage.c:853,3'
          Dst:             mailbox_close
        - Src:             'imapc-storage.c:857,6'
          Dst:             imapc_mailbox_select
        - Src:             'imapc-storage.c:858,3'
          Dst:             mailbox_close
    - functionName:    imapc_mailbox_select
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - array_clear_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - imapc_client_mailbox_cmd
        - imapc_client_mailbox_open
        - imapc_client_mailbox_set_reopen_cb
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_mailbox_get_capabilities
        - imapc_mailbox_get_extensions
        - imapc_mailbox_get_remote_name
        - imapc_mailbox_has_modseqs
        - imapc_mailbox_open_callback
        - imapc_mailbox_reopen
        - imapc_mailbox_run
        - imapc_mailbox_want_examine
        - mailbox_get_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:775,2'
          Dst:             i_panic
        - Src:             'imapc-storage.c:777,6'
          Dst:             imapc_mailbox_get_capabilities
        - Src:             'imapc-storage.c:780,6'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-storage.c:781,8'
          Dst:             array_is_created_i
        - Src:             'imapc-storage.c:782,4'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:784,4'
          Dst:             array_clear_i
        - Src:             'imapc-storage.c:789,8'
          Dst:             mailbox_get_name
        - Src:             'imapc-storage.c:788,3'
          Dst:             imapc_client_mailbox_open
        - Src:             'imapc-storage.c:790,2'
          Dst:             imapc_client_mailbox_set_reopen_cb
        - Src:             'imapc-storage.c:790,2'
          Dst:             imapc_mailbox_reopen
        - Src:             'imapc-storage.c:793,2'
          Dst:             imapc_mailbox_get_extensions
        - Src:             'imapc-storage.c:799,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-storage.c:799,8'
          Dst:             imapc_mailbox_open_callback
        - Src:             'imapc-storage.c:801,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:803,6'
          Dst:             imapc_mailbox_want_examine
        - Src:             'imapc-storage.c:805,4'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:804,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:808,4'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:807,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:812,3'
          Dst:             imapc_mailbox_run
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    9
      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:    imapc_mailbox_reopen
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          145
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imapc_client_mailbox_cmd
        - imapc_client_mailbox_get_msgmap
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_mailbox_get_remote_name
        - imapc_mailbox_reopen_callback
        - imapc_mailbox_want_examine
        - imapc_msgmap_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:663,21'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-storage.c:663,2'
          Dst:             imapc_msgmap_reset
        - Src:             'imapc-storage.c:669,3'
          Dst:             i_panic
        - Src:             'imapc-storage.c:687,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-storage.c:687,8'
          Dst:             imapc_mailbox_reopen_callback
        - Src:             'imapc-storage.c:689,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-storage.c:690,6'
          Dst:             imapc_mailbox_want_examine
        - Src:             'imapc-storage.c:692,9'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:691,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-storage.c:695,9'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-storage.c:694,3'
          Dst:             imapc_command_sendf
    - functionName:    imapc_mailbox_get_extensions
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_mailbox_open_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          161
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - imap_mailbox_select_finish
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_mailbox_verify_select
        - imapc_storage_client_handle_auth_failure
        - mail_storage_set_internal_error
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:709,8'
          Dst:             imapc_mailbox_verify_select
        - Src:             'imapc-storage.c:710,4'
          Dst:             mailbox_set_critical
        - Src:             'imapc-storage.c:714,4'
          Dst:             imap_mailbox_select_finish
        - Src:             'imapc-storage.c:732,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-storage.c:735,13'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:739,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-storage.c:741,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-storage.c:745,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_mailbox_want_examine
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_mailbox_run
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_mail_fetch_flush
        - imapc_mailbox_run_nofetch
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:175,2'
          Dst:             imapc_mail_fetch_flush
        - Src:             'imapc-storage.c:176,2'
          Dst:             imapc_mailbox_run_nofetch
    - functionName:    imapc_mailbox_run_nofetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_run
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:182,3'
          Dst:             imapc_client_run
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    imapc_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          147
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - imapc_list_get_mailbox_flags
        - imapc_storage_client_handle_auth_failure
        - mail_storage_copy_list_error
        - mailbox_is_autocreated
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:570,20'
          Dst:             mailbox_is_autocreated
        - Src:             'imapc-storage.c:575,6'
          Dst:             strcmp
        - Src:             'imapc-storage.c:587,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:588,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'imapc-storage.c:591,6'
          Dst:             imapc_list_get_mailbox_flags
        - Src:             'imapc-storage.c:592,3'
          Dst:             mail_storage_copy_list_error
    - functionName:    imapc_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          103
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - imapc_mailbox_register_callbacks
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:531,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-storage.c:532,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-storage.c:532,9'
          Dst:             p_malloc
        - Src:             'imapc-storage.c:539,2'
          Dst:             index_storage_mailbox_alloc
        - Src:             'imapc-storage.c:543,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:544,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:545,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:546,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:547,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:548,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:549,28'
          Dst:             str_new
        - Src:             'imapc-storage.c:550,27'
          Dst:             str_new
        - Src:             'imapc-storage.c:552,2'
          Dst:             imapc_mailbox_register_callbacks
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_logout
        - imapc_storage_client_unref
        - index_storage_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:491,2'
          Dst:             imapc_client_logout
        - Src:             'imapc-storage.c:493,2'
          Dst:             imapc_storage_client_unref
        - Src:             'imapc-storage.c:494,2'
          Dst:             index_storage_destroy
    - functionName:    imapc_storage_client_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - buffer_get_modifiable_data
        - i_panic
        - imapc_client_deinit
        - p_free_internal
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:410,2'
          Dst:             i_panic
        - Src:             'imapc-storage.c:413,2'
          Dst:             imapc_client_deinit
        - Src:             'imapc-storage.c:414,2'
          Dst:             pool_unref
        - Src:             'imapc-storage.c:415,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'imapc-storage.c:416,3'
          Dst:             p_free_internal
        - Src:             'imapc-storage.c:417,2'
          Dst:             array_free_i
        - Src:             'imapc-storage.c:418,2'
          Dst:             p_free_internal
        - Src:             'imapc-storage.c:419,2'
          Dst:             p_free_internal
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          230
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - imapc_storage_client_create
        - imapc_storage_client_register_untagged
        - imapc_untagged_inprogress
        - imapc_untagged_namespace
        - imapc_untagged_respcodes
        - imapc_untagged_status
        - p_array_const_string_join
        - p_strdup_printf
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:430,6'
          Dst:             strcmp
        - Src:             'imapc-storage.c:435,7'
          Dst:             imapc_storage_client_create
        - Src:             'imapc-storage.c:440,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:458,11'
          Dst:             p_array_const_string_join
        - Src:             'imapc-storage.c:460,11'
          Dst:             p_array_const_string_join
        - Src:             'imapc-storage.c:447,30'
          Dst:             p_strdup_printf
        - Src:             'imapc-storage.c:468,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:468,2'
          Dst:             imapc_untagged_status
        - Src:             'imapc-storage.c:470,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:470,2'
          Dst:             imapc_untagged_namespace
        - Src:             'imapc-storage.c:472,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:472,2'
          Dst:             imapc_untagged_inprogress
        - Src:             'imapc-storage.c:474,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:474,2'
          Dst:             imapc_untagged_respcodes
        - Src:             'imapc-storage.c:476,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:476,2'
          Dst:             imapc_untagged_respcodes
        - Src:             'imapc-storage.c:478,2'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-storage.c:478,2'
          Dst:             imapc_untagged_respcodes
    - functionName:    imapc_storage_client_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          383
      EdgeCount:       69
      CyclomaticComplexity: 18
      functionsReached:
        - array_create_i
        - array_is_created_i
        - dsasl_client_mech_find
        - dsasl_client_mech_uses_password
        - i_memcpy
        - imapc_client_init
        - imapc_client_register_untagged
        - imapc_client_set_login_callback
        - imapc_storage_client_login
        - imapc_storage_client_login_callback
        - imapc_storage_client_untagged_cb
        - mail_user_home_expand
        - mail_user_set_get_temp_prefix
        - malloc_multiply_check
        - p_malloc
        - pool_unref
        - settings_get
        - str_c
        - t_str_new
        - t_strconcat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:338,6'
          Dst:             settings_get
        - Src:             'imapc-storage.c:350,7'
          Dst:             array_is_created_i
        - Src:             'imapc-storage.c:352,3'
          Dst:             i_memcpy
        - Src:             'imapc-storage.c:354,5'
          Dst:             dsasl_client_mech_find
        - Src:             'imapc-storage.c:357,6'
          Dst:             t_strdup_printf
        - Src:             'imapc-storage.c:360,5'
          Dst:             pool_unref
        - Src:             'imapc-storage.c:362,15'
          Dst:             dsasl_client_mech_uses_password
        - Src:             'imapc-storage.c:365,5'
          Dst:             pool_unref
        - Src:             'imapc-storage.c:371,3'
          Dst:             t_strconcat
        - Src:             'imapc-storage.c:373,31'
          Dst:             mail_user_home_expand
        - Src:             'imapc-storage.c:379,8'
          Dst:             t_str_new
        - Src:             'imapc-storage.c:380,2'
          Dst:             mail_user_set_get_temp_prefix
        - Src:             'imapc-storage.c:381,28'
          Dst:             str_c
        - Src:             'imapc-storage.c:383,11'
          Dst:             malloc_multiply_check
        - Src:             'imapc-storage.c:383,11'
          Dst:             p_malloc
        - Src:             'imapc-storage.c:386,2'
          Dst:             array_create_i
        - Src:             'imapc-storage.c:387,19'
          Dst:             imapc_client_init
        - Src:             'imapc-storage.c:388,2'
          Dst:             imapc_client_register_untagged
        - Src:             'imapc-storage.c:388,2'
          Dst:             imapc_storage_client_untagged_cb
        - Src:             'imapc-storage.c:391,2'
          Dst:             imapc_client_set_login_callback
        - Src:             'imapc-storage.c:391,2'
          Dst:             imapc_storage_client_login_callback
        - Src:             'imapc-storage.c:396,3'
          Dst:             imapc_storage_client_login
    - functionName:    imapc_storage_client_register_untagged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - i_strdup
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:503,7'
          Dst:             array_append_space_i
        - Src:             'imapc-storage.c:504,13'
          Dst:             i_strdup
    - functionName:    imapc_storage_client_untagged_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          207
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:238,7'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:246,7'
          Dst:             strcasecmp
        - Src:             'imapc-storage.c:252,8'
          Dst:             strcasecmp
    - functionName:    imapc_storage_client_login_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_strdup
        - i_unreached
        - imapc_client_stop
        - imapc_storage_client_handle_auth_failure
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:265,2'
          Dst:             imapc_client_stop
        - Src:             'imapc-storage.c:277,31'
          Dst:             i_strdup
        - Src:             'imapc-storage.c:278,7'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:279,3'
          Dst:             i_unreached
    - functionName:    imapc_storage_client_login
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_client_login
        - imapc_client_run
        - imapc_storage_client_handle_auth_failure
        - p_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:313,2'
          Dst:             imapc_client_login
        - Src:             'imapc-storage.c:319,4'
          Dst:             imapc_client_run
        - Src:             'imapc-storage.c:320,7'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-storage.c:321,18'
          Dst:             p_strdup_printf
    - functionName:    imapc_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:129,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-storage.c:130,12'
          Dst:             malloc_multiply_check
        - Src:             'imapc-storage.c:130,12'
          Dst:             p_malloc
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_storage_client_unregister_untagged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          88
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - buffer_get_modifiable_data
        - i_unreached
        - p_free_internal
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:513,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'imapc-storage.c:514,7'
          Dst:             strcmp
        - Src:             'imapc-storage.c:516,5'
          Dst:             p_free_internal
        - Src:             'imapc-storage.c:517,5'
          Dst:             array_delete_i
        - Src:             'imapc-storage.c:521,2'
          Dst:             i_unreached
    - functionName:    imapc_mailbox_noop
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-storage.c:221,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-storage.c:222,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-storage.c:222,8'
          Dst:             imapc_simple_callback
        - Src:             'imapc-storage.c:224,2'
          Dst:             imapc_command_send
        - Src:             'imapc-storage.c:225,2'
          Dst:             imapc_simple_run
    - functionName:    imapc_mail_error_to_resp_text_code
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_untagged_fetch_uid_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_cmd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_sync_cmd_full
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:77,9'
          Dst:             imapc_sync_cmd_full
    - functionName:    imapc_sync_cmd_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_sync_callback
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:61,13'
          Dst:             malloc_multiply_check
        - Src:             'imapc-sync.c:61,13'
          Dst:             p_malloc
        - Src:             'imapc-sync.c:63,22'
          Dst:             i_strdup
        - Src:             'imapc-sync.c:67,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-sync.c:67,8'
          Dst:             imapc_sync_callback
        - Src:             'imapc-sync.c:69,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-sync.c:70,2'
          Dst:             imapc_command_send
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_sync_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          166
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - imapc_client_stop
        - mail_storage_set_internal_error
        - mailbox_set_critical
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:29,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:39,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-sync.c:42,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-sync.c:49,3'
          Dst:             imapc_client_stop
        - Src:             'imapc-sync.c:50,2'
          Dst:             p_free_internal
        - Src:             'imapc-sync.c:51,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_flags_sort
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strcasecmp_p
        - qsort
        - str_array_length
        - strchr
        - t_strarray_join
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:95,6'
          Dst:             strchr
        - Src:             'imapc-sync.c:98,21'
          Dst:             t_strsplit
        - Src:             'imapc-sync.c:99,2'
          Dst:             str_array_length
        - Src:             'imapc-sync.c:99,2'
          Dst:             qsort
        - Src:             'imapc-sync.c:99,2'
          Dst:             i_strcasecmp_p
        - Src:             'imapc-sync.c:101,9'
          Dst:             t_strarray_join
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    imapc_sync_store_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          103
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - hash_table_insert
        - hash_table_lookup
        - imapc_sync_flags_sort
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - seq_range_array_add_range
        - str_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:113,39'
          Dst:             str_c
        - Src:             'imapc-sync.c:113,17'
          Dst:             imapc_sync_flags_sort
        - Src:             'imapc-sync.c:118,10'
          Dst:             hash_table_lookup
        - Src:             'imapc-sync.c:120,11'
          Dst:             malloc_multiply_check
        - Src:             'imapc-sync.c:120,11'
          Dst:             p_malloc
        - Src:             'imapc-sync.c:122,18'
          Dst:             p_strdup
        - Src:             'imapc-sync.c:123,3'
          Dst:             array_create_i
        - Src:             'imapc-sync.c:124,3'
          Dst:             hash_table_insert
        - Src:             'imapc-sync.c:126,2'
          Dst:             seq_range_array_add_range
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_store_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:90,9'
          Dst:             strcmp
    - functionName:    imapc_sync_store_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:82,9'
          Dst:             str_hash
    - functionName:    imapc_sync_store
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - hash_table_create
        - imapc_sync_store_cmp
        - imapc_sync_store_flush
        - imapc_sync_store_hash
        - str_append
        - str_append_c
        - str_len
        - str_new
        - str_truncate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:135,21'
          Dst:             str_new
        - Src:             'imapc-sync.c:136,3'
          Dst:             hash_table_create
        - Src:             'imapc-sync.c:136,3'
          Dst:             imapc_sync_store_hash
        - Src:             'imapc-sync.c:136,3'
          Dst:             imapc_sync_store_cmp
        - Src:             'imapc-sync.c:142,3'
          Dst:             imapc_sync_store_flush
        - Src:             'imapc-sync.c:146,3'
          Dst:             str_truncate
        - Src:             'imapc-sync.c:148,6'
          Dst:             str_len
        - Src:             'imapc-sync.c:149,3'
          Dst:             str_append_c
        - Src:             'imapc-sync.c:150,2'
          Dst:             str_append
    - functionName:    imapc_initial_sync_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          235
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - imapc_client_mailbox_get_msgmap
        - imapc_initial_sync_check
        - imapc_mailbox_noop
        - imapc_mailbox_set_corrupted
        - imapc_msgmap_count
        - imapc_msgmap_rseq_to_uid
        - mail_index_get_header
        - mail_index_is_expunged
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - seq_range_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:297,3'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-sync.c:299,40'
          Dst:             mail_index_get_header
        - Src:             'imapc-sync.c:303,11'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-sync.c:304,11'
          Dst:             mail_index_view_get_messages_count
        - Src:             'imapc-sync.c:307,11'
          Dst:             imapc_msgmap_rseq_to_uid
        - Src:             'imapc-sync.c:311,4'
          Dst:             mail_index_lookup_uid
        - Src:             'imapc-sync.c:327,4'
          Dst:             mail_index_is_expunged
        - Src:             'imapc-sync.c:327,4'
          Dst:             seq_range_exists
        - Src:             'imapc-sync.c:327,4'
          Dst:             i_panic
        - Src:             'imapc-sync.c:341,5'
          Dst:             imapc_mailbox_noop
        - Src:             'imapc-sync.c:342,5'
          Dst:             imapc_initial_sync_check
        - Src:             'imapc-sync.c:346,4'
          Dst:             imapc_mailbox_set_corrupted
    - functionName:    imapc_sync_highestmodseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_mailbox_has_modseqs
        - mail_index_modseq_get_highest
        - mail_index_update_highest_modseq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:288,6'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-sync.c:289,6'
          Dst:             mail_index_modseq_get_highest
        - Src:             'imapc-sync.c:290,3'
          Dst:             mail_index_update_highest_modseq
    - functionName:    imapc_sync_uid_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_get_header
        - mail_index_update_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:278,8'
          Dst:             mail_index_get_header
        - Src:             'imapc-sync.c:280,3'
          Dst:             mail_index_update_header
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_expunge_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - imap_write_seq_range
        - imapc_sync_cmd
        - str_append
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:253,6'
          Dst:             array_count_i
        - Src:             'imapc-sync.c:258,3'
          Dst:             imapc_sync_cmd
        - Src:             'imapc-sync.c:263,8'
          Dst:             t_str_new
        - Src:             'imapc-sync.c:264,2'
          Dst:             str_append
        - Src:             'imapc-sync.c:265,2'
          Dst:             imap_write_seq_range
        - Src:             'imapc-sync.c:266,22'
          Dst:             str_c
        - Src:             'imapc-sync.c:266,2'
          Dst:             imapc_sync_cmd
    - functionName:    imapc_sync_send_commands
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_strdup
        - imapc_command_get_tag
        - imapc_sync_cmd
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:366,9'
          Dst:             imapc_sync_cmd
        - Src:             'imapc-sync.c:367,3'
          Dst:             p_free_internal
        - Src:             'imapc-sync.c:369,13'
          Dst:             imapc_command_get_tag
        - Src:             'imapc-sync.c:369,4'
          Dst:             i_strdup
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_finish_store
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_destroy
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - imap_write_seq_range
        - imapc_sync_cmd_full
        - imapc_sync_store_flush
        - str_append
        - str_c
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:158,18'
          Dst:             t_str_new
        - Src:             'imapc-sync.c:160,2'
          Dst:             imapc_sync_store_flush
        - Src:             'imapc-sync.c:165,9'
          Dst:             hash_table_iterate_init
        - Src:             'imapc-sync.c:166,9'
          Dst:             hash_table_iterate
        - Src:             'imapc-sync.c:167,3'
          Dst:             str_truncate
        - Src:             'imapc-sync.c:168,3'
          Dst:             str_append
        - Src:             'imapc-sync.c:169,3'
          Dst:             imap_write_seq_range
        - Src:             'imapc-sync.c:170,3'
          Dst:             str_printfa
        - Src:             'imapc-sync.c:173,28'
          Dst:             str_c
        - Src:             'imapc-sync.c:173,3'
          Dst:             imapc_sync_cmd_full
        - Src:             'imapc-sync.c:175,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'imapc-sync.c:176,2'
          Dst:             hash_table_destroy
    - functionName:    imapc_sync_index_keyword
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_i
        - i_unreached
        - imapc_sync_store
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-sync.c:233,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-sync.c:241,3'
          Dst:             i_unreached
        - Src:             'imapc-sync.c:244,11'
          Dst:             array_idx_i
        - Src:             'imapc-sync.c:245,2'
          Dst:             imapc_sync_store
    - functionName:    imapc_sync_index_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          143
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imap_write_flags
        - imapc_sync_store
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:205,18'
          Dst:             t_str_new
        - Src:             'imapc-sync.c:207,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:210,3'
          Dst:             i_panic
        - Src:             'imapc-sync.c:212,3'
          Dst:             imap_write_flags
        - Src:             'imapc-sync.c:214,22'
          Dst:             str_c
        - Src:             'imapc-sync.c:213,3'
          Dst:             imapc_sync_store
        - Src:             'imapc-sync.c:218,3'
          Dst:             i_panic
        - Src:             'imapc-sync.c:219,3'
          Dst:             str_truncate
        - Src:             'imapc-sync.c:220,3'
          Dst:             imap_write_flags
        - Src:             'imapc-sync.c:222,22'
          Dst:             str_c
        - Src:             'imapc-sync.c:221,3'
          Dst:             imapc_sync_store
    - functionName:    imapc_sync_add_missing_deleted_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_sync_store
        - mail_index_lookup
        - mail_index_lookup_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:189,9'
          Dst:             mail_index_lookup
        - Src:             'imapc-sync.c:195,3'
          Dst:             mail_index_lookup_uid
        - Src:             'imapc-sync.c:196,3'
          Dst:             mail_index_lookup_uid
        - Src:             'imapc-sync.c:198,3'
          Dst:             imapc_sync_store
    - functionName:    imapc_sync_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          239
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - array_create_i
        - array_free_i
        - i_panic
        - imapc_initial_sync_check
        - imapc_mailbox_run
        - imapc_sync_add_missing_deleted_flags
        - imapc_sync_expunge_finish
        - imapc_sync_finish_store
        - imapc_sync_highestmodseq
        - imapc_sync_index_flags
        - imapc_sync_index_keyword
        - imapc_sync_send_commands
        - imapc_sync_uid_next
        - mail_index_get_keywords
        - mail_index_lookup_seq_range
        - mail_index_sync_next
        - mailbox_sync_notify
        - pool_alloconly_create
        - pool_unref
        - seq_range_array_add_range
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-sync.c:388,10'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-sync.c:379,2'
          Dst:             array_create_i
        - Src:             'imapc-sync.c:380,18'
          Dst:             mail_index_get_keywords
        - Src:             'imapc-sync.c:381,14'
          Dst:             pool_alloconly_create
        - Src:             'imapc-sync.c:383,9'
          Dst:             mail_index_sync_next
        - Src:             'imapc-sync.c:383,63'
          Dst:             t_push
        - Src:             'imapc-sync.c:384,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'imapc-sync.c:390,4'
          Dst:             imapc_sync_add_missing_deleted_flags
        - Src:             'imapc-sync.c:391,4'
          Dst:             seq_range_array_add_range
        - Src:             'imapc-sync.c:395,4'
          Dst:             imapc_sync_index_flags
        - Src:             'imapc-sync.c:399,4'
          Dst:             imapc_sync_index_keyword
        - Src:             'imapc-sync.c:402,4'
          Dst:             t_pop
        - Src:             'imapc-sync.c:402,4'
          Dst:             i_panic
        - Src:             'imapc-sync.c:403,2'
          Dst:             imapc_sync_finish_store
        - Src:             'imapc-sync.c:404,2'
          Dst:             pool_unref
        - Src:             'imapc-sync.c:407,3'
          Dst:             imapc_sync_send_commands
        - Src:             'imapc-sync.c:409,2'
          Dst:             imapc_sync_expunge_finish
        - Src:             'imapc-sync.c:411,3'
          Dst:             imapc_mailbox_run
        - Src:             'imapc-sync.c:412,2'
          Dst:             array_free_i
        - Src:             'imapc-sync.c:421,2'
          Dst:             imapc_sync_uid_next
        - Src:             'imapc-sync.c:422,2'
          Dst:             imapc_sync_highestmodseq
        - Src:             'imapc-sync.c:424,2'
          Dst:             mailbox_sync_notify
        - Src:             'imapc-sync.c:431,3'
          Dst:             imapc_initial_sync_check
    - functionName:    imapc_sync_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          138
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_mailbox_commit_delayed_trans
        - mail_cache_view_close
        - mail_index_sync_commit
        - mailbox_set_critical
        - mailbox_set_index_error
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:510,6'
          Dst:             mail_index_sync_commit
        - Src:             'imapc-sync.c:511,3'
          Dst:             mailbox_set_index_error
        - Src:             'imapc-sync.c:515,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-sync.c:517,3'
          Dst:             p_free_internal
        - Src:             'imapc-sync.c:520,2'
          Dst:             mail_cache_view_close
        - Src:             'imapc-sync.c:528,6'
          Dst:             imapc_mailbox_commit_delayed_trans
        - Src:             'imapc-sync.c:531,2'
          Dst:             p_free_internal
    - functionName:    imapc_sync_handle_untagged_fetches
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          285
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - array_clear_i
        - array_count_i
        - array_sort_i
        - i_memcpy
        - i_panic
        - imapc_mailbox_get_sync_view
        - imapc_untagged_fetch_ctx_free
        - imapc_untagged_fetch_uid_cmp
        - imapc_untagged_fetch_update_flags
        - mail_index_append
        - mail_index_get_header
        - mail_index_lookup_seq
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_transaction_open_updated_view
        - mail_index_view_close
        - mailbox_set_index_error
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:548,2'
          Dst:             array_count_i
        - Src:             'imapc-sync.c:548,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:549,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:551,2'
          Dst:             array_sort_i
        - Src:             'imapc-sync.c:551,2'
          Dst:             imapc_untagged_fetch_uid_cmp
        - Src:             'imapc-sync.c:554,32'
          Dst:             imapc_mailbox_get_sync_view
        - Src:             'imapc-sync.c:554,3'
          Dst:             mail_index_transaction_begin
        - Src:             'imapc-sync.c:557,2'
          Dst:             i_memcpy
        - Src:             'imapc-sync.c:559,37'
          Dst:             mail_index_get_header
        - Src:             'imapc-sync.c:564,3'
          Dst:             mail_index_append
        - Src:             'imapc-sync.c:570,17'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'imapc-sync.c:572,2'
          Dst:             i_memcpy
        - Src:             'imapc-sync.c:574,4'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-sync.c:580,8'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-sync.c:584,4'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-sync.c:588,3'
          Dst:             t_push
        - Src:             'imapc-sync.c:589,4'
          Dst:             imapc_untagged_fetch_update_flags
        - Src:             'imapc-sync.c:592,5'
          Dst:             t_pop
        - Src:             'imapc-sync.c:592,5'
          Dst:             i_panic
        - Src:             'imapc-sync.c:593,3'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-sync.c:596,2'
          Dst:             mail_index_view_close
        - Src:             'imapc-sync.c:597,6'
          Dst:             mail_index_transaction_commit
        - Src:             'imapc-sync.c:598,3'
          Dst:             mailbox_set_index_error
        - Src:             'imapc-sync.c:599,2'
          Dst:             array_clear_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          294
      EdgeCount:       45
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - imapc_mailbox_fetch_state
        - imapc_mailbox_run
        - imapc_sync_index
        - index_storage_get_sync_flags
        - mail_cache_get_transaction
        - mail_cache_view_open
        - mail_index_get_header
        - mail_index_sync_begin
        - mail_index_transaction_open_updated_view
        - mail_index_view_close
        - mailbox_set_index_error
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:444,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:446,8'
          Dst:             malloc_multiply_check
        - Src:             'imapc-sync.c:446,8'
          Dst:             p_malloc
        - Src:             'imapc-sync.c:449,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'imapc-sync.c:454,8'
          Dst:             mail_index_sync_begin
        - Src:             'imapc-sync.c:459,4'
          Dst:             mailbox_set_index_error
        - Src:             'imapc-sync.c:460,3'
          Dst:             p_free_internal
        - Src:             'imapc-sync.c:465,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:466,2'
          Dst:             i_panic
        - Src:             'imapc-sync.c:469,3'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'imapc-sync.c:472,3'
          Dst:             mail_cache_view_open
        - Src:             'imapc-sync.c:474,3'
          Dst:             mail_cache_get_transaction
        - Src:             'imapc-sync.c:476,25'
          Dst:             mail_index_get_header
        - Src:             'imapc-sync.c:482,21'
          Dst:             imapc_mailbox_fetch_state
        - Src:             'imapc-sync.c:485,4'
          Dst:             imapc_mailbox_run
        - Src:             'imapc-sync.c:489,3'
          Dst:             imapc_sync_index
        - Src:             'imapc-sync.c:491,2'
          Dst:             mail_index_view_close
    - functionName:    imapc_mailbox_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_idle
        - index_mailbox_sync_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:713,8'
          Dst:             index_mailbox_sync_deinit
        - Src:             'imapc-sync.c:719,2'
          Dst:             imapc_client_mailbox_idle
    - functionName:    imapc_mailbox_need_initial_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_noop_if_needed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          63
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_mailbox_noop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:655,3'
          Dst:             imapc_mailbox_noop
    - functionName:    imapc_mailbox_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          187
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - imapc_mailbox_commit_delayed_trans
        - imapc_mailbox_need_initial_fetch
        - imapc_noop_if_needed
        - imapc_storage_client_handle_auth_failure
        - imapc_sync
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:688,2'
          Dst:             imapc_noop_if_needed
        - Src:             'imapc-sync.c:690,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-sync.c:693,4'
          Dst:             imapc_mailbox_need_initial_fetch
        - Src:             'imapc-sync.c:697,6'
          Dst:             imapc_mailbox_commit_delayed_trans
        - Src:             'imapc-sync.c:700,7'
          Dst:             index_mailbox_want_full_sync
        - Src:             'imapc-sync.c:702,9'
          Dst:             imapc_sync
        - Src:             'imapc-sync.c:704,9'
          Dst:             index_mailbox_sync_init
    - functionName:    imapc_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - array_is_created_i
        - imapc_sync_begin
        - imapc_sync_finish
        - imapc_sync_handle_untagged_fetches
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:612,6'
          Dst:             imapc_sync_begin
        - Src:             'imapc-sync.c:615,7'
          Dst:             array_is_created_i
        - Src:             'imapc-sync.c:616,3'
          Dst:             imapc_sync_handle_untagged_fetches
        - Src:             'imapc-sync.c:620,6'
          Dst:             imapc_sync_finish
    - functionName:    imapc_mailbox_flush_local_flag_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_mailbox_commit_delayed_trans
        - imapc_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-sync.c:636,6'
          Dst:             imapc_mailbox_commit_delayed_trans
        - Src:             'imapc-sync.c:638,9'
          Dst:             imapc_sync
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_attachment_stream_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          164
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - fs_file_init
        - fs_set_metadata
        - i_stream_create_fs_file
        - i_stream_get_name
        - i_stream_set_name
        - i_stream_unref
        - index_attachment_base64_decoded_size
        - index_attachment_parse_extrefs
        - istream_attachment_connector_abort
        - istream_attachment_connector_add
        - istream_attachment_connector_begin
        - istream_attachment_connector_finish
        - pool_datastack_create
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:419,2'
          Dst:             pool_datastack_create
        - Src:             'index-attachment.c:419,2'
          Dst:             array_create_i
        - Src:             'index-attachment.c:420,48'
          Dst:             pool_datastack_create
        - Src:             'index-attachment.c:420,7'
          Dst:             index_attachment_parse_extrefs
        - Src:             'index-attachment.c:425,9'
          Dst:             istream_attachment_connector_begin
        - Src:             'index-attachment.c:428,10'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:430,10'
          Dst:             fs_file_init
        - Src:             'index-attachment.c:434,15'
          Dst:             index_attachment_base64_decoded_size
        - Src:             'index-attachment.c:437,48'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:437,3'
          Dst:             fs_set_metadata
        - Src:             'index-attachment.c:438,11'
          Dst:             i_stream_create_fs_file
        - Src:             'index-attachment.c:440,9'
          Dst:             istream_attachment_connector_add
        - Src:             'index-attachment.c:444,3'
          Dst:             i_stream_unref
        - Src:             'index-attachment.c:446,4'
          Dst:             istream_attachment_connector_abort
        - Src:             'index-attachment.c:451,10'
          Dst:             istream_attachment_connector_finish
        - Src:             'index-attachment.c:453,32'
          Dst:             i_stream_get_name
        - Src:             'index-attachment.c:452,27'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:452,2'
          Dst:             i_stream_set_name
        - Src:             'index-attachment.c:454,2'
          Dst:             i_stream_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_attachment_parse_extrefs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          152
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - p_strdup
        - parse_extref_decode_options
        - str_array_length
        - str_to_uoff
        - t_strsplit
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:364,9'
          Dst:             t_strsplit
        - Src:             'index-attachment.c:365,8'
          Dst:             str_array_length
        - Src:             'index-attachment.c:377,7'
          Dst:             str_to_uoff
        - Src:             'index-attachment.c:378,7'
          Dst:             str_to_uoff
        - Src:             'index-attachment.c:380,8'
          Dst:             parse_extref_decode_options
        - Src:             'index-attachment.c:386,17'
          Dst:             p_strdup
        - Src:             'index-attachment.c:387,3'
          Dst:             array_append_i
    - functionName:    index_attachment_base64_decoded_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:400,2'
          Dst:             i_panic
    - functionName:    parse_extref_decode_options
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          131
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-attachment.c:333,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    index_attachment_append_extrefs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - str_append
        - str_append_c
        - str_len
        - str_printfa
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:302,4'
          Dst:             str_append_c
        - Src:             'index-attachment.c:303,3'
          Dst:             str_printfa
        - Src:             'index-attachment.c:306,14'
          Dst:             str_len
        - Src:             'index-attachment.c:308,4'
          Dst:             str_append_c
        - Src:             'index-attachment.c:310,4'
          Dst:             str_printfa
        - Src:             'index-attachment.c:314,19'
          Dst:             str_len
        - Src:             'index-attachment.c:316,4'
          Dst:             str_append_c
        - Src:             'index-attachment.c:318,3'
          Dst:             str_append_c
        - Src:             'index-attachment.c:319,3'
          Dst:             str_append
    - functionName:    index_attachment_delete_real
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_delete
        - fs_file_deinit
        - fs_file_init
        - fs_file_last_error
        - mail_storage_set_critical
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:272,9'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:273,9'
          Dst:             fs_file_init
        - Src:             'index-attachment.c:274,13'
          Dst:             fs_delete
        - Src:             'index-attachment.c:275,44'
          Dst:             fs_file_last_error
        - Src:             'index-attachment.c:275,3'
          Dst:             mail_storage_set_critical
        - Src:             'index-attachment.c:276,2'
          Dst:             fs_file_deinit
    - functionName:    index_attachment_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - index_attachment_delete_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:285,2'
          Dst:             t_push
        - Src:             'index-attachment.c:286,9'
          Dst:             index_attachment_delete_real
        - Src:             'index-attachment.c:287,4'
          Dst:             t_pop
        - Src:             'index-attachment.c:287,4'
          Dst:             i_panic
    - functionName:    index_attachment_save_get_extrefs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_attachment_save_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_unref
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:251,3'
          Dst:             i_stream_unref
        - Src:             'index-attachment.c:252,3'
          Dst:             pool_unref
    - functionName:    index_attachment_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:241,8'
          Dst:             i_stream_read
        - Src:             'index-attachment.c:242,2'
          Dst:             i_panic
    - functionName:    save_check_write_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_set_critical
        - mail_storage_set_error_from_errno
        - o_stream_get_error
        - o_stream_get_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:193,7'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'index-attachment.c:195,4'
          Dst:             o_stream_get_name
        - Src:             'index-attachment.c:195,31'
          Dst:             o_stream_get_error
        - Src:             'index-attachment.c:194,3'
          Dst:             mail_set_critical
    - functionName:    index_attachment_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          170
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_attachment_extractor_can_retry
        - i_stream_get_data
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read
        - i_stream_skip
        - index_mail_cache_parse_continue
        - mail_set_critical
        - o_stream_nsend
        - save_check_write_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:211,9'
          Dst:             i_stream_read
        - Src:             'index-attachment.c:213,11'
          Dst:             i_stream_get_data
        - Src:             'index-attachment.c:214,4'
          Dst:             o_stream_nsend
        - Src:             'index-attachment.c:215,4'
          Dst:             i_stream_skip
        - Src:             'index-attachment.c:217,3'
          Dst:             index_mail_cache_parse_continue
        - Src:             'index-attachment.c:218,20'
          Dst:             i_stream_attachment_extractor_can_retry
        - Src:             'index-attachment.c:226,8'
          Dst:             i_stream_get_name
        - Src:             'index-attachment.c:227,8'
          Dst:             i_stream_get_error
        - Src:             'index-attachment.c:225,3'
          Dst:             mail_set_critical
        - Src:             'index-attachment.c:231,7'
          Dst:             save_check_write_error
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_attachment_close_ostream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_delete_i
        - fs_file_deinit
        - fs_file_last_error
        - fs_file_path
        - fs_write_stream_abort_error
        - fs_write_stream_finish
        - i_panic
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:131,2'
          Dst:             i_panic
        - Src:             'index-attachment.c:134,3'
          Dst:             fs_write_stream_abort_error
        - Src:             'index-attachment.c:135,11'
          Dst:             fs_write_stream_finish
        - Src:             'index-attachment.c:137,7'
          Dst:             fs_file_path
        - Src:             'index-attachment.c:138,7'
          Dst:             fs_file_last_error
        - Src:             'index-attachment.c:136,12'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:141,2'
          Dst:             fs_file_deinit
        - Src:             'index-attachment.c:144,3'
          Dst:             array_count_i
        - Src:             'index-attachment.c:144,3'
          Dst:             array_delete_i
    - functionName:    index_attachment_open_ostream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          190
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - fs_file_init
        - fs_write_stream
        - guid_128_generate
        - guid_128_to_string
        - i_panic
        - p_strdup
        - strlen
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:91,2'
          Dst:             i_panic
        - Src:             'index-attachment.c:96,6'
          Dst:             strlen
        - Src:             'index-attachment.c:99,12'
          Dst:             t_strconcat
        - Src:             'index-attachment.c:102,2'
          Dst:             guid_128_generate
        - Src:             'index-attachment.c:107,11'
          Dst:             guid_128_to_string
        - Src:             'index-attachment.c:103,9'
          Dst:             t_strdup_printf
        - Src:             'index-attachment.c:108,21'
          Dst:             fs_file_init
        - Src:             'index-attachment.c:111,11'
          Dst:             array_append_space_i
        - Src:             'index-attachment.c:115,4'
          Dst:             strlen
        - Src:             'index-attachment.c:114,17'
          Dst:             p_strdup
        - Src:             'index-attachment.c:119,14'
          Dst:             fs_write_stream
    - functionName:    index_attachment_open_temp_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          84
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_close_fd_path
        - mail_user_set_get_temp_prefix
        - mailbox_set_critical
        - safe_mkstemp_hostpid
        - str_c
        - t_str_new
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:61,14'
          Dst:             t_str_new
        - Src:             'index-attachment.c:62,2'
          Dst:             mail_user_set_get_temp_prefix
        - Src:             'index-attachment.c:63,7'
          Dst:             safe_mkstemp_hostpid
        - Src:             'index-attachment.c:66,35'
          Dst:             str_c
        - Src:             'index-attachment.c:65,3'
          Dst:             mailbox_set_critical
        - Src:             'index-attachment.c:69,13'
          Dst:             str_c
        - Src:             'index-attachment.c:69,6'
          Dst:             unlink
        - Src:             'index-attachment.c:71,29'
          Dst:             str_c
        - Src:             'index-attachment.c:70,3'
          Dst:             mailbox_set_critical
        - Src:             'index-attachment.c:72,3'
          Dst:             i_close_fd_path
    - functionName:    index_attachment_want
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:51,4'
          Dst:             strncasecmp
    - functionName:    index_attachment_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          136
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - hash_format_init
        - i_panic
        - i_stream_create_attachment_extractor
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attachment.c:158,2'
          Dst:             i_panic
        - Src:             'index-attachment.c:165,6'
          Dst:             hash_format_init
        - Src:             'index-attachment.c:168,3'
          Dst:             i_panic
        - Src:             'index-attachment.c:176,9'
          Dst:             pool_alloconly_create
        - Src:             'index-attachment.c:177,11'
          Dst:             malloc_multiply_check
        - Src:             'index-attachment.c:177,11'
          Dst:             p_malloc
        - Src:             'index-attachment.c:180,18'
          Dst:             i_stream_create_attachment_extractor
        - Src:             'index-attachment.c:181,2'
          Dst:             array_create_i
    - functionName:    mail_user_find_attribute_namespace
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_namespace_find_inbox
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:22,7'
          Dst:             mail_namespace_find_inbox
    - functionName:    index_storage_get_user_dict
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          117
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - dict_init_auto
        - event_create
        - event_unref
        - mail_storage_set_critical
        - mail_storage_set_error
        - mail_storage_set_internal_error
        - mail_user_find_attribute_namespace
        - settings_event_add_filter_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:46,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'index-attribute.c:50,7'
          Dst:             mail_user_find_attribute_namespace
        - Src:             'index-attribute.c:53,3'
          Dst:             mail_storage_set_error
        - Src:             'index-attribute.c:58,24'
          Dst:             event_create
        - Src:             'index-attribute.c:59,2'
          Dst:             settings_event_add_filter_name
        - Src:             'index-attribute.c:60,8'
          Dst:             dict_init_auto
        - Src:             'index-attribute.c:61,2'
          Dst:             event_unref
        - Src:             'index-attribute.c:64,3'
          Dst:             mail_storage_set_critical
        - Src:             'index-attribute.c:71,3'
          Dst:             mail_storage_set_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_attribute_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - dict_iterate_deinit
        - mailbox_set_critical
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:328,14'
          Dst:             dict_iterate_deinit
        - Src:             'index-attribute.c:329,4'
          Dst:             mailbox_set_critical
        - Src:             'index-attribute.c:334,2'
          Dst:             p_free_internal
        - Src:             'index-attribute.c:335,2'
          Dst:             p_free_internal
    - functionName:    index_storage_attribute_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - dict_iterate
        - i_panic
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:310,30'
          Dst:             dict_iterate
        - Src:             'index-attribute.c:313,2'
          Dst:             strncmp
        - Src:             'index-attribute.c:313,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_attribute_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dict_iterate_init
        - i_strdup
        - index_storage_get_dict
        - key_get_prefixed
        - mail_storage_clear_error
        - mail_user_get_dict_op_settings
        - mailbox_get_last_mail_error
        - mailbox_list_get_user
        - malloc_multiply_check
        - p_malloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:283,9'
          Dst:             malloc_multiply_check
        - Src:             'index-attribute.c:283,9'
          Dst:             p_malloc
        - Src:             'index-attribute.c:285,6'
          Dst:             index_storage_get_dict
        - Src:             'index-attribute.c:286,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-attribute.c:287,4'
          Dst:             mail_storage_clear_error
        - Src:             'index-attribute.c:291,27'
          Dst:             key_get_prefixed
        - Src:             'index-attribute.c:291,18'
          Dst:             i_strdup
        - Src:             'index-attribute.c:293,22'
          Dst:             strlen
        - Src:             'index-attribute.c:294,28'
          Dst:             mailbox_list_get_user
        - Src:             'index-attribute.c:295,40'
          Dst:             mail_user_get_dict_op_settings
        - Src:             'index-attribute.c:296,17'
          Dst:             dict_iterate_init
    - functionName:    index_storage_get_dict
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          197
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - dict_init_auto
        - event_create
        - event_unref
        - guid_128_to_string
        - index_storage_get_user_dict
        - mail_storage_set_critical
        - mail_storage_set_error
        - mail_storage_set_internal_error
        - mailbox_get_metadata
        - mailbox_get_namespace
        - settings_event_add_filter_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:94,3'
          Dst:             mail_storage_set_error
        - Src:             'index-attribute.c:99,6'
          Dst:             mailbox_get_metadata
        - Src:             'index-attribute.c:101,22'
          Dst:             guid_128_to_string
        - Src:             'index-attribute.c:103,7'
          Dst:             mailbox_get_namespace
        - Src:             'index-attribute.c:106,10'
          Dst:             index_storage_get_user_dict
        - Src:             'index-attribute.c:110,10'
          Dst:             index_storage_get_user_dict
        - Src:             'index-attribute.c:114,10'
          Dst:             index_storage_get_user_dict
        - Src:             'index-attribute.c:124,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'index-attribute.c:128,24'
          Dst:             event_create
        - Src:             'index-attribute.c:129,2'
          Dst:             settings_event_add_filter_name
        - Src:             'index-attribute.c:130,8'
          Dst:             dict_init_auto
        - Src:             'index-attribute.c:131,2'
          Dst:             event_unref
        - Src:             'index-attribute.c:134,3'
          Dst:             mail_storage_set_critical
        - Src:             'index-attribute.c:141,3'
          Dst:             mail_storage_set_error
    - functionName:    key_get_prefixed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - i_unreached
        - t_strconcat
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-attribute.c:156,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-attribute.c:158,10'
          Dst:             t_strconcat
        - Src:             'index-attribute.c:161,10'
          Dst:             t_strconcat
        - Src:             'index-attribute.c:164,2'
          Dst:             i_unreached
    - functionName:    index_storage_attribute_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dict_lookup
        - index_storage_get_dict
        - key_get_prefixed
        - mail_user_get_dict_op_settings
        - mailbox_list_get_user
        - mailbox_set_critical
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:258,6'
          Dst:             index_storage_get_dict
        - Src:             'index-attribute.c:261,27'
          Dst:             mailbox_list_get_user
        - Src:             'index-attribute.c:262,39'
          Dst:             mail_user_get_dict_op_settings
        - Src:             'index-attribute.c:263,31'
          Dst:             pool_datastack_create
        - Src:             'index-attribute.c:264,6'
          Dst:             key_get_prefixed
        - Src:             'index-attribute.c:263,8'
          Dst:             dict_lookup
        - Src:             'index-attribute.c:267,3'
          Dst:             mailbox_set_critical
    - functionName:    index_storage_attribute_get_dict_trans
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          165
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - dict_transaction_begin
        - guid_128_to_string
        - i_panic
        - index_storage_get_dict
        - mail_user_get_dict_op_settings
        - mailbox_get_metadata
        - mailbox_list_get_user
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-attribute.c:178,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-attribute.c:186,2'
          Dst:             i_panic
        - Src:             'index-attribute.c:193,7'
          Dst:             mailbox_get_metadata
        - Src:             'index-attribute.c:196,23'
          Dst:             guid_128_to_string
        - Src:             'index-attribute.c:201,6'
          Dst:             index_storage_get_dict
        - Src:             'index-attribute.c:203,2'
          Dst:             i_panic
        - Src:             'index-attribute.c:205,27'
          Dst:             mailbox_list_get_user
        - Src:             'index-attribute.c:206,39'
          Dst:             mail_user_get_dict_op_settings
        - Src:             'index-attribute.c:207,25'
          Dst:             dict_transaction_begin
    - functionName:    index_storage_attribute_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - dict_set
        - dict_unset
        - i_panic
        - index_storage_attribute_get_dict_trans
        - key_get_prefixed
        - mail_index_attribute_set
        - mail_index_attribute_unset
        - mailbox_attribute_value_to_string
        - strlen
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-attribute.c:223,6'
          Dst:             index_storage_attribute_get_dict_trans
        - Src:             'index-attribute.c:227,2'
          Dst:             t_push
        - Src:             'index-attribute.c:229,4'
          Dst:             key_get_prefixed
        - Src:             'index-attribute.c:232,7'
          Dst:             mailbox_attribute_value_to_string
        - Src:             'index-attribute.c:236,4'
          Dst:             dict_set
        - Src:             'index-attribute.c:238,12'
          Dst:             strlen
        - Src:             'index-attribute.c:237,4'
          Dst:             mail_index_attribute_set
        - Src:             'index-attribute.c:240,4'
          Dst:             dict_unset
        - Src:             'index-attribute.c:241,4'
          Dst:             mail_index_attribute_unset
        - Src:             'index-attribute.c:243,4'
          Dst:             t_pop
        - Src:             'index-attribute.c:243,4'
          Dst:             i_panic
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    str_replace_nuls
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_c_modifiable
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:793,15'
          Dst:             str_c_modifiable
        - Src:             'index-mail-headers.c:794,18'
          Dst:             str_len
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unfold_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          205
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - i_memcpy
        - malloc_add_check
        - p_malloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:769,27'
          Dst:             strlen
        - Src:             'index-mail-headers.c:769,27'
          Dst:             malloc_add_check
        - Src:             'index-mail-headers.c:769,27'
          Dst:             malloc_add_check
        - Src:             'index-mail-headers.c:769,12'
          Dst:             p_malloc
        - Src:             'index-mail-headers.c:770,2'
          Dst:             i_memcpy
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    skip_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      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-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    get_header_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          130
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:585,2'
          Dst:             i_panic
    - functionName:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mail_get_parsed_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          180
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_get_i
        - array_idx_i
        - i_panic
        - message_header_strdup
        - skip_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:640,13'
          Dst:             array_idx_i
        - Src:             'index-mail-headers.c:641,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:644,2'
          Dst:             array_create_i
        - Src:             'index-mail-headers.c:647,10'
          Dst:             array_get_i
        - Src:             'index-mail-headers.c:655,7'
          Dst:             skip_header
        - Src:             'index-mail-headers.c:658,12'
          Dst:             message_header_strdup
        - Src:             'index-mail-headers.c:661,4'
          Dst:             array_append_i
        - Src:             'index-mail-headers.c:665,2'
          Dst:             array_append_space_i
        - Src:             'index-mail-headers.c:666,9'
          Dst:             array_idx_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_header_is_parsed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:603,10'
          Dst:             array_get_i
    - functionName:    header_line_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    header_cache_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_parse_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:919,2'
          Dst:             index_mail_parse_header
    - functionName:    index_mail_parse_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          427
      EdgeCount:       76
      CyclomaticComplexity: 15
      functionsReached:
        - array_append_i
        - array_get_modifiable_i
        - i_panic
        - index_mail_parse_finish_imap_envelope
        - index_mail_parse_header_finish
        - mail_cache_register_lookup
        - message_part_data_parse_from_header
        - message_part_envelope_parse_from_header
        - str_append
        - str_append_data
        - str_len
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:316,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:322,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:323,3'
          Dst:             message_part_data_parse_from_header
        - Src:             'index-mail-headers.c:327,3'
          Dst:             message_part_envelope_parse_from_header
        - Src:             'index-mail-headers.c:331,25'
          Dst:             index_mail_parse_finish_imap_envelope
        - Src:             'index-mail-headers.c:338,3'
          Dst:             t_push
        - Src:             'index-mail-headers.c:339,4'
          Dst:             index_mail_parse_header_finish
        - Src:             'index-mail-headers.c:340,5'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:340,5'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:342,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:349,3'
          Dst:             t_push
        - Src:             'index-mail-headers.c:351,5'
          Dst:             t_strconcat
        - Src:             'index-mail-headers.c:353,5'
          Dst:             mail_cache_register_lookup
        - Src:             'index-mail-headers.c:355,5'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:355,5'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:358,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-mail-headers.c:367,32'
          Dst:             str_len
        - Src:             'index-mail-headers.c:369,3'
          Dst:             str_append
        - Src:             'index-mail-headers.c:370,3'
          Dst:             str_append_data
        - Src:             'index-mail-headers.c:376,2'
          Dst:             str_append_data
        - Src:             'index-mail-headers.c:378,3'
          Dst:             str_append
        - Src:             'index-mail-headers.c:380,30'
          Dst:             str_len
        - Src:             'index-mail-headers.c:381,3'
          Dst:             array_append_i
    - functionName:    index_mail_parse_finish_imap_envelope
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_envelope_write
        - index_mail_cache_add_idx
        - mail_cache_field_can_add
        - str_c
        - str_data
        - str_len
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:293,8'
          Dst:             str_new
        - Src:             'index-mail-headers.c:296,2'
          Dst:             imap_envelope_write
        - Src:             'index-mail-headers.c:297,24'
          Dst:             str_c
        - Src:             'index-mail-headers.c:300,6'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail-headers.c:303,7'
          Dst:             str_data
        - Src:             'index-mail-headers.c:303,22'
          Dst:             str_len
        - Src:             'index-mail-headers.c:302,3'
          Dst:             index_mail_cache_add_idx
    - functionName:    index_mail_parse_header_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         68
      ICount:          525
      EdgeCount:       85
      CyclomaticComplexity: 19
      functionsReached:
        - array_get_i
        - array_idx_set_i
        - array_sort_i
        - buffer_append
        - buffer_append_zero
        - buffer_create_dynamic
        - buffer_set_used_size
        - header_line_cmp
        - i_panic
        - index_mail_cache_add_idx
        - index_mail_parse_header_deinit
        - mail_cache_field_can_add
        - pool_alloconly_create
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:54,2'
          Dst:             array_sort_i
        - Src:             'index-mail-headers.c:54,2'
          Dst:             header_line_cmp
        - Src:             'index-mail-headers.c:56,10'
          Dst:             array_get_i
        - Src:             'index-mail-headers.c:57,10'
          Dst:             array_get_i
        - Src:             'index-mail-headers.c:59,16'
          Dst:             pool_alloconly_create
        - Src:             'index-mail-headers.c:60,8'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail-headers.c:69,8'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail-headers.c:72,5'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:74,5'
          Dst:             index_mail_cache_add_idx
        - Src:             'index-mail-headers.c:82,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:84,4'
          Dst:             array_idx_set_i
        - Src:             'index-mail-headers.c:88,8'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail-headers.c:101,3'
          Dst:             buffer_set_used_size
        - Src:             'index-mail-headers.c:102,3'
          Dst:             buffer_append
        - Src:             'index-mail-headers.c:112,4'
          Dst:             buffer_append
        - Src:             'index-mail-headers.c:115,3'
          Dst:             buffer_append_zero
        - Src:             'index-mail-headers.c:119,5'
          Dst:             buffer_append
        - Src:             'index-mail-headers.c:125,4'
          Dst:             buffer_append
        - Src:             'index-mail-headers.c:129,3'
          Dst:             index_mail_cache_add_idx
        - Src:             'index-mail-headers.c:135,7'
          Dst:             mail_cache_field_can_add
        - Src:             'index-mail-headers.c:138,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:140,4'
          Dst:             index_mail_cache_add_idx
        - Src:             'index-mail-headers.c:145,2'
          Dst:             index_mail_parse_header_deinit
        - Src:             'index-mail-headers.c:146,2'
          Dst:             pool_unref
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_parse_header_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mail_get_header_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          282
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - header_cache_callback
        - i_panic
        - i_stream_create_from_data
        - i_stream_create_header_filter
        - index_mail_cache_reason
        - index_mail_filter_stream_destroy
        - index_mail_parse_header_init
        - index_mail_parse_headers
        - mail_cache_field_exists
        - mail_cache_lookup_headers
        - mail_get_hdr_stream_because
        - p_free_internal
        - str_append
        - str_data
        - str_len
        - str_new
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:951,2'
          Dst:             index_mail_filter_stream_destroy
        - Src:             'index-mail-headers.c:956,4'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail-headers.c:958,7'
          Dst:             index_mail_parse_headers
        - Src:             'index-mail-headers.c:962,9'
          Dst:             str_new
        - Src:             'index-mail-headers.c:963,6'
          Dst:             mail_cache_lookup_headers
        - Src:             'index-mail-headers.c:966,3'
          Dst:             str_append
        - Src:             'index-mail-headers.c:969,30'
          Dst:             str_data
        - Src:             'index-mail-headers.c:970,9'
          Dst:             str_len
        - Src:             'index-mail-headers.c:969,4'
          Dst:             i_stream_create_from_data
        - Src:             'index-mail-headers.c:975,2'
          Dst:             p_free_internal
        - Src:             'index-mail-headers.c:979,7'
          Dst:             mail_cache_field_exists
        - Src:             'index-mail-headers.c:990,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:991,43'
          Dst:             t_strdup_printf
        - Src:             'index-mail-headers.c:991,12'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail-headers.c:996,6'
          Dst:             mail_get_hdr_stream_because
        - Src:             'index-mail-headers.c:999,2'
          Dst:             index_mail_parse_header_init
        - Src:             'index-mail-headers.c:1001,3'
          Dst:             i_stream_create_header_filter
        - Src:             'index-mail-headers.c:1001,3'
          Dst:             header_cache_callback
    - functionName:    index_mail_filter_stream_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_destroy
        - i_stream_read_more
        - i_stream_skip
        - index_mail_parse_header_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:933,9'
          Dst:             i_stream_read_more
        - Src:             'index-mail-headers.c:934,3'
          Dst:             i_stream_skip
        - Src:             'index-mail-headers.c:937,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:938,3'
          Dst:             index_mail_parse_header_deinit
        - Src:             'index-mail-headers.c:940,2'
          Dst:             i_stream_destroy
    - functionName:    index_mail_parse_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_seek
        - index_mail_parse_headers_internal
        - mail_get_hdr_stream_because
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:512,6'
          Dst:             mail_get_hdr_stream_because
        - Src:             'index-mail-headers.c:515,12'
          Dst:             index_mail_parse_headers_internal
        - Src:             'index-mail-headers.c:516,2'
          Dst:             i_stream_seek
    - functionName:    index_mail_parse_header_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          398
      EdgeCount:       73
      CyclomaticComplexity: 15
      functionsReached:
        - array_clear_i
        - array_create_i
        - array_get_i
        - array_idx_set_i
        - buffer_create_dynamic
        - buffer_set_used_size
        - get_header_field_idx
        - i_panic
        - index_mail_filter_stream_destroy
        - index_mail_parse_header_register_all_wanted
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:210,2'
          Dst:             index_mail_filter_stream_destroy
        - Src:             'index-mail-headers.c:211,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:215,23'
          Dst:             buffer_create_dynamic
        - Src:             'index-mail-headers.c:216,3'
          Dst:             array_create_i
        - Src:             'index-mail-headers.c:217,3'
          Dst:             array_create_i
        - Src:             'index-mail-headers.c:218,3'
          Dst:             array_create_i
        - Src:             'index-mail-headers.c:221,3'
          Dst:             buffer_set_used_size
        - Src:             'index-mail-headers.c:222,3'
          Dst:             array_clear_i
        - Src:             'index-mail-headers.c:223,3'
          Dst:             array_clear_i
        - Src:             'index-mail-headers.c:225,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:231,4'
          Dst:             array_clear_i
        - Src:             'index-mail-headers.c:238,4'
          Dst:             array_idx_set_i
        - Src:             'index-mail-headers.c:251,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:258,4'
          Dst:             array_idx_set_i
        - Src:             'index-mail-headers.c:264,2'
          Dst:             t_push
        - Src:             'index-mail-headers.c:265,3'
          Dst:             index_mail_parse_header_register_all_wanted
        - Src:             'index-mail-headers.c:266,4'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:266,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:272,14'
          Dst:             get_header_field_idx
        - Src:             'index-mail-headers.c:273,10'
          Dst:             array_get_i
        - Src:             'index-mail-headers.c:281,3'
          Dst:             array_idx_set_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    index_mail_parse_header_register_all_wanted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_idx_set_i
        - mail_cache_field_want_add
        - mail_cache_register_get_list
        - pool_unref
        - str_begins_icase_with
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:188,3'
          Dst:             mail_cache_register_get_list
        - Src:             'index-mail-headers.c:190,8'
          Dst:             strncasecmp
        - Src:             'index-mail-headers.c:190,8'
          Dst:             str_begins_icase_with
        - Src:             'index-mail-headers.c:192,8'
          Dst:             mail_cache_field_want_add
        - Src:             'index-mail-headers.c:196,3'
          Dst:             array_idx_set_i
        - Src:             'index-mail-headers.c:199,2'
          Dst:             pool_unref
    - functionName:    get_header_field_idx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_cache_register_fields
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:160,2'
          Dst:             t_push
        - Src:             'index-mail-headers.c:161,23'
          Dst:             t_strconcat
        - Src:             'index-mail-headers.c:162,3'
          Dst:             mail_cache_register_fields
        - Src:             'index-mail-headers.c:164,4'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:164,4'
          Dst:             i_panic
    - functionName:    index_mail_parse_headers_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          179
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mail_init_parser
        - index_mail_parse_header_cb
        - index_mail_parse_header_deinit
        - index_mail_parse_header_init
        - index_mail_parse_part_header_cb
        - index_mail_stream_check_failure
        - message_parse_header
        - message_parser_parse_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:472,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:474,2'
          Dst:             index_mail_parse_header_init
        - Src:             'index-mail-headers.c:480,3'
          Dst:             index_mail_init_parser
        - Src:             'index-mail-headers.c:481,3'
          Dst:             message_parser_parse_header
        - Src:             'index-mail-headers.c:481,3'
          Dst:             index_mail_parse_part_header_cb
        - Src:             'index-mail-headers.c:486,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:488,3'
          Dst:             message_parse_header
        - Src:             'index-mail-headers.c:488,3'
          Dst:             index_mail_parse_header_cb
        - Src:             'index-mail-headers.c:492,6'
          Dst:             index_mail_stream_check_failure
        - Src:             'index-mail-headers.c:493,3'
          Dst:             index_mail_parse_header_deinit
        - Src:             'index-mail-headers.c:496,2'
          Dst:             i_panic
    - functionName:    index_mail_init_parser
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          128
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_seek
        - index_mail_parts_reset
        - index_mail_set_message_parts_corrupted
        - message_parser_deinit_from_parts
        - message_parser_init
        - message_parser_init_from_parts
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:440,7'
          Dst:             message_parser_deinit_from_parts
        - Src:             'index-mail-headers.c:441,4'
          Dst:             index_mail_set_message_parts_corrupted
        - Src:             'index-mail-headers.c:442,4'
          Dst:             index_mail_parts_reset
        - Src:             'index-mail-headers.c:453,2'
          Dst:             i_stream_seek
        - Src:             'index-mail-headers.c:456,22'
          Dst:             message_parser_init
        - Src:             'index-mail-headers.c:461,4'
          Dst:             message_parser_init_from_parts
    - functionName:    index_mail_parse_part_header_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_parse_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:390,2'
          Dst:             index_mail_parse_header
    - functionName:    index_mail_parse_header_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_parse_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:397,2'
          Dst:             index_mail_parse_header
    - functionName:    index_mail_get_first_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mail_get_raw_headers
        - index_mail_headers_decode
        - mail_set_mail_cache_corrupted
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:886,7'
          Dst:             index_mail_get_raw_headers
        - Src:             'index-mail-headers.c:893,3'
          Dst:             t_push
        - Src:             'index-mail-headers.c:894,10'
          Dst:             index_mail_headers_decode
        - Src:             'index-mail-headers.c:895,5'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:895,5'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:898,4'
          Dst:             mail_set_mail_cache_corrupted
        - Src:             'index-mail-headers.c:906,3'
          Dst:             i_panic
    - functionName:    index_mail_get_raw_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          377
      EdgeCount:       62
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - buffer_get_data
        - get_header_field_idx
        - get_header_size
        - i_panic
        - index_mail_cache_reason
        - index_mail_get_parsed_header
        - index_mail_header_is_parsed
        - index_mail_parse_headers
        - mail_cache_lookup_headers
        - mail_set_aborted
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - malloc_multiply_check
        - message_header_strdup
        - p_free_internal
        - p_malloc
        - str_new
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:683,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:685,14'
          Dst:             get_header_field_idx
        - Src:             'index-mail-headers.c:687,9'
          Dst:             str_new
        - Src:             'index-mail-headers.c:688,6'
          Dst:             mail_cache_lookup_headers
        - Src:             'index-mail-headers.c:691,3'
          Dst:             p_free_internal
        - Src:             'index-mail-headers.c:696,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:697,4'
          Dst:             mail_set_aborted
        - Src:             'index-mail-headers.c:701,7'
          Dst:             index_mail_header_is_parsed
        - Src:             'index-mail-headers.c:704,5'
          Dst:             t_strdup_printf
        - Src:             'index-mail-headers.c:703,25'
          Dst:             index_mail_cache_reason
        - Src:             'index-mail-headers.c:706,18'
          Dst:             mailbox_header_lookup_init
        - Src:             'index-mail-headers.c:708,10'
          Dst:             index_mail_parse_headers
        - Src:             'index-mail-headers.c:709,4'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail-headers.c:714,14'
          Dst:             index_mail_header_is_parsed
        - Src:             'index-mail-headers.c:716,4'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:717,15'
          Dst:             malloc_multiply_check
        - Src:             'index-mail-headers.c:717,15'
          Dst:             p_malloc
        - Src:             'index-mail-headers.c:720,14'
          Dst:             index_mail_get_parsed_header
        - Src:             'index-mail-headers.c:724,9'
          Dst:             buffer_get_data
        - Src:             'index-mail-headers.c:728,14'
          Dst:             malloc_multiply_check
        - Src:             'index-mail-headers.c:728,14'
          Dst:             p_malloc
        - Src:             'index-mail-headers.c:732,2'
          Dst:             array_create_i
        - Src:             'index-mail-headers.c:741,11'
          Dst:             get_header_size
        - Src:             'index-mail-headers.c:742,12'
          Dst:             message_header_strdup
        - Src:             'index-mail-headers.c:746,4'
          Dst:             array_append_i
        - Src:             'index-mail-headers.c:750,2'
          Dst:             array_append_space_i
        - Src:             'index-mail-headers.c:751,13'
          Dst:             array_idx_i
    - functionName:    index_mail_headers_decode
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          155
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - malloc_multiply_check
        - message_header_decode_utf8
        - p_malloc
        - p_strdup
        - str_array_length
        - str_c
        - str_free
        - str_len
        - str_new
        - str_replace_nuls
        - str_truncate
        - strcmp
        - strlen
        - unfold_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:811,10'
          Dst:             str_array_length
        - Src:             'index-mail-headers.c:814,17'
          Dst:             malloc_multiply_check
        - Src:             'index-mail-headers.c:814,17'
          Dst:             p_malloc
        - Src:             'index-mail-headers.c:816,8'
          Dst:             str_new
        - Src:             'index-mail-headers.c:818,3'
          Dst:             str_truncate
        - Src:             'index-mail-headers.c:821,7'
          Dst:             unfold_header
        - Src:             'index-mail-headers.c:822,4'
          Dst:             str_free
        - Src:             'index-mail-headers.c:828,9'
          Dst:             strlen
        - Src:             'index-mail-headers.c:827,3'
          Dst:             message_header_decode_utf8
        - Src:             'index-mail-headers.c:829,14'
          Dst:             str_c
        - Src:             'index-mail-headers.c:829,7'
          Dst:             strcmp
        - Src:             'index-mail-headers.c:830,15'
          Dst:             str_c
        - Src:             'index-mail-headers.c:830,8'
          Dst:             strlen
        - Src:             'index-mail-headers.c:830,30'
          Dst:             str_len
        - Src:             'index-mail-headers.c:832,5'
          Dst:             str_replace_nuls
        - Src:             'index-mail-headers.c:834,43'
          Dst:             str_c
        - Src:             'index-mail-headers.c:834,12'
          Dst:             p_strdup
        - Src:             'index-mail-headers.c:838,2'
          Dst:             str_free
    - functionName:    index_mail_get_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          129
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mail_get_raw_headers
        - index_mail_headers_decode
        - mail_set_mail_cache_corrupted
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:851,7'
          Dst:             index_mail_get_raw_headers
        - Src:             'index-mail-headers.c:858,3'
          Dst:             t_push
        - Src:             'index-mail-headers.c:859,10'
          Dst:             index_mail_headers_decode
        - Src:             'index-mail-headers.c:860,5'
          Dst:             t_pop
        - Src:             'index-mail-headers.c:860,5'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:863,4'
          Dst:             mail_set_mail_cache_corrupted
        - Src:             'index-mail-headers.c:870,3'
          Dst:             i_panic
    - functionName:    imap_envelope_parse_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_parse_finish_imap_envelope
        - message_part_envelope_parse_from_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:524,2'
          Dst:             message_part_envelope_parse_from_header
        - Src:             'index-mail-headers.c:528,3'
          Dst:             index_mail_parse_finish_imap_envelope
    - functionName:    index_mail_headers_get_envelope
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          177
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_seek
        - imap_envelope_parse_callback
        - index_mail_cache_lookup_field
        - index_mail_stream_log_failure_for
        - mail_get_header_stream
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - message_parse_header
        - str_c
        - str_free
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:540,8'
          Dst:             str_new
        - Src:             'index-mail-headers.c:541,6'
          Dst:             index_mail_cache_lookup_field
        - Src:             'index-mail-headers.c:543,25'
          Dst:             str_c
        - Src:             'index-mail-headers.c:546,2'
          Dst:             str_free
        - Src:             'index-mail-headers.c:555,15'
          Dst:             mailbox_header_lookup_init
        - Src:             'index-mail-headers.c:557,6'
          Dst:             mail_get_header_stream
        - Src:             'index-mail-headers.c:558,3'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail-headers.c:561,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-mail-headers.c:566,3'
          Dst:             message_parse_header
        - Src:             'index-mail-headers.c:566,3'
          Dst:             imap_envelope_parse_callback
        - Src:             'index-mail-headers.c:569,4'
          Dst:             index_mail_stream_log_failure_for
        - Src:             'index-mail-headers.c:572,3'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:576,3'
          Dst:             i_stream_seek
    - functionName:    index_mail_cache_parse_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          135
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_unref
        - index_mail_parse_header_init
        - index_mail_want_cache
        - message_parser_init
        - tee_i_stream_create
        - tee_i_stream_create_child
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mail-headers.c:406,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:407,2'
          Dst:             i_panic
        - Src:             'index-mail-headers.c:416,6'
          Dst:             index_mail_want_cache
        - Src:             'index-mail-headers.c:419,26'
          Dst:             tee_i_stream_create
        - Src:             'index-mail-headers.c:420,10'
          Dst:             tee_i_stream_create_child
        - Src:             'index-mail-headers.c:421,11'
          Dst:             tee_i_stream_create_child
        - Src:             'index-mail-headers.c:423,2'
          Dst:             index_mail_parse_header_init
        - Src:             'index-mail-headers.c:426,3'
          Dst:             message_parser_init
        - Src:             'index-mail-headers.c:428,2'
          Dst:             i_stream_unref
    - functionName:    index_mail_want_parse_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mail-headers.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mailbox_vsize_finish_bg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:276,2'
          Dst:             mail_storage_set_error
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    index_mailbox_vsize_update_write_to_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_ext_resize_hdr
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:176,10'
          Dst:             mail_index_transaction_begin
        - Src:             'index-mailbox-size.c:179,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'index-mailbox-size.c:181,2'
          Dst:             mail_index_update_header_ext
        - Src:             'index-mailbox-size.c:184,8'
          Dst:             mail_index_transaction_commit
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mailbox_vsize_check_rebuild
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_lookup_seq_range
        - mailbox_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:92,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-mailbox-size.c:99,4'
          Dst:             mailbox_set_critical
    - functionName:    index_mailbox_vsize_update_appends
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          102
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - index_mailbox_vsize_check_rebuild
        - index_mailbox_vsize_hdr_add_missing
        - index_mailbox_vsize_update_deinit
        - index_mailbox_vsize_update_init
        - index_mailbox_vsize_update_try_lock
        - index_mailbox_vsize_want_updates
        - mailbox_get_open_status
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:484,11'
          Dst:             index_mailbox_vsize_update_init
        - Src:             'index-mailbox-size.c:491,2'
          Dst:             index_mailbox_vsize_check_rebuild
        - Src:             'index-mailbox-size.c:492,6'
          Dst:             index_mailbox_vsize_want_updates
        - Src:             'index-mailbox-size.c:497,3'
          Dst:             mailbox_get_open_status
        - Src:             'index-mailbox-size.c:500,7'
          Dst:             index_mailbox_vsize_update_try_lock
        - Src:             'index-mailbox-size.c:502,5'
          Dst:             event_reason_begin
        - Src:             'index-mailbox-size.c:503,10'
          Dst:             index_mailbox_vsize_hdr_add_missing
        - Src:             'index-mailbox-size.c:504,4'
          Dst:             event_reason_end
        - Src:             'index-mailbox-size.c:507,2'
          Dst:             index_mailbox_vsize_update_deinit
    - functionName:    index_mailbox_vsize_update_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - vsize_header_refresh
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:116,2'
          Dst:             i_panic
        - Src:             'index-mailbox-size.c:118,11'
          Dst:             malloc_multiply_check
        - Src:             'index-mailbox-size.c:118,11'
          Dst:             p_malloc
        - Src:             'index-mailbox-size.c:121,2'
          Dst:             vsize_header_refresh
    - functionName:    index_mailbox_vsize_want_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_mailbox_vsize_update_try_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vsize_update_lock_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:157,9'
          Dst:             vsize_update_lock_full
    - functionName:    index_mailbox_vsize_hdr_add_missing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          353
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - index_mailbox_vsize_finish_bg
        - index_mailbox_vsize_update_write_to_index
        - mail_get_virtual_size
        - mail_index_lookup_seq_range
        - mail_index_map_get_ext_idx
        - mail_search_args_unref
        - mail_search_build_add_seqset
        - mail_search_build_init
        - mailbox_get_last_mail_error
        - mailbox_get_open_status
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_transaction_begin
        - mailbox_transaction_commit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:297,2'
          Dst:             mailbox_get_open_status
        - Src:             'index-mailbox-size.c:308,16'
          Dst:             mail_search_build_init
        - Src:             'index-mailbox-size.c:309,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-mailbox-size.c:314,3'
          Dst:             mail_search_args_unref
        - Src:             'index-mailbox-size.c:317,2'
          Dst:             mail_search_build_add_seqset
        - Src:             'index-mailbox-size.c:319,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'index-mailbox-size.c:324,3'
          Dst:             index_mailbox_vsize_update_write_to_index
        - Src:             'index-mailbox-size.c:327,10'
          Dst:             mailbox_transaction_begin
        - Src:             'index-mailbox-size.c:328,15'
          Dst:             mailbox_search_init
        - Src:             'index-mailbox-size.c:335,9'
          Dst:             mailbox_search_next
        - Src:             'index-mailbox-size.c:340,5'
          Dst:             index_mailbox_vsize_finish_bg
        - Src:             'index-mailbox-size.c:350,9'
          Dst:             mail_get_virtual_size
        - Src:             'index-mailbox-size.c:354,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-mailbox-size.c:356,4'
          Dst:             i_panic
        - Src:             'index-mailbox-size.c:357,4'
          Dst:             index_mailbox_vsize_finish_bg
        - Src:             'index-mailbox-size.c:363,4'
          Dst:             i_panic
        - Src:             'index-mailbox-size.c:377,6'
          Dst:             mailbox_search_deinit
        - Src:             'index-mailbox-size.c:379,2'
          Dst:             mail_search_args_unref
        - Src:             'index-mailbox-size.c:387,8'
          Dst:             mailbox_transaction_commit
    - functionName:    index_mailbox_vsize_update_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - file_lock_free
        - index_mailbox_vsize_notify_indexer
        - index_mailbox_vsize_update_write
        - mail_index_view_close
        - p_free_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:240,3'
          Dst:             index_mailbox_vsize_update_write
        - Src:             'index-mailbox-size.c:241,2'
          Dst:             file_lock_free
        - Src:             'index-mailbox-size.c:243,3'
          Dst:             index_mailbox_vsize_notify_indexer
        - Src:             'index-mailbox-size.c:245,2'
          Dst:             mail_index_view_close
        - Src:             'index-mailbox-size.c:246,2'
          Dst:             p_free_internal
    - functionName:    index_mailbox_vsize_update_write
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_vsize_update_write_to_index
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:195,6'
          Dst:             memcmp
        - Src:             'index-mailbox-size.c:200,2'
          Dst:             index_mailbox_vsize_update_write_to_index
    - functionName:    index_mailbox_vsize_notify_indexer
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_close_fd_path
        - mailbox_set_critical
        - net_connect_unix
        - str_append
        - str_append_c
        - str_append_tabescaped
        - str_data
        - str_len
        - t_str_new
        - t_strconcat
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:205,18'
          Dst:             t_str_new
        - Src:             'index-mailbox-size.c:209,9'
          Dst:             t_strconcat
        - Src:             'index-mailbox-size.c:211,7'
          Dst:             net_connect_unix
        - Src:             'index-mailbox-size.c:213,3'
          Dst:             mailbox_set_critical
        - Src:             'index-mailbox-size.c:218,2'
          Dst:             str_append
        - Src:             'index-mailbox-size.c:219,2'
          Dst:             str_append
        - Src:             'index-mailbox-size.c:220,2'
          Dst:             str_append_tabescaped
        - Src:             'index-mailbox-size.c:221,2'
          Dst:             str_append_c
        - Src:             'index-mailbox-size.c:222,2'
          Dst:             str_append_tabescaped
        - Src:             'index-mailbox-size.c:223,2'
          Dst:             str_append_c
        - Src:             'index-mailbox-size.c:225,21'
          Dst:             str_data
        - Src:             'index-mailbox-size.c:225,36'
          Dst:             str_len
        - Src:             'index-mailbox-size.c:225,6'
          Dst:             write_full
        - Src:             'index-mailbox-size.c:226,3'
          Dst:             mailbox_set_critical
        - Src:             'index-mailbox-size.c:230,2'
          Dst:             i_close_fd_path
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    vsize_update_lock_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - index_mailbox_vsize_check_rebuild
        - mailbox_lock_file_create
        - mailbox_set_critical
        - vsize_header_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:139,8'
          Dst:             mailbox_lock_file_create
        - Src:             'index-mailbox-size.c:145,4'
          Dst:             mailbox_set_critical
        - Src:             'index-mailbox-size.c:150,2'
          Dst:             vsize_header_refresh
        - Src:             'index-mailbox-size.c:151,2'
          Dst:             index_mailbox_vsize_check_rebuild
    - functionName:    vsize_header_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:61,2'
          Dst:             mail_index_view_close
        - Src:             'index-mailbox-size.c:62,8'
          Dst:             mail_index_refresh
        - Src:             'index-mailbox-size.c:63,17'
          Dst:             mail_index_view_open
        - Src:             'index-mailbox-size.c:65,2'
          Dst:             mail_index_get_header_ext
        - Src:             'index-mailbox-size.c:68,3'
          Dst:             i_memcpy
        - Src:             'index-mailbox-size.c:72,3'
          Dst:             i_memcpy
        - Src:             'index-mailbox-size.c:75,4'
          Dst:             mailbox_set_critical
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mailbox_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          151
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - index_mailbox_get_virtual_size
        - mail_event
        - mail_get_physical_size
        - mail_search_args_unref
        - mail_search_build_add_all
        - mail_search_build_init
        - mailbox_get_last_internal_error
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_sync
        - mailbox_transaction_begin
        - mailbox_transaction_commit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:435,7'
          Dst:             index_mailbox_get_virtual_size
        - Src:             'index-mailbox-size.c:442,6'
          Dst:             mailbox_sync
        - Src:             'index-mailbox-size.c:445,10'
          Dst:             mailbox_transaction_begin
        - Src:             'index-mailbox-size.c:447,16'
          Dst:             mail_search_build_init
        - Src:             'index-mailbox-size.c:448,2'
          Dst:             mail_search_build_add_all
        - Src:             'index-mailbox-size.c:449,8'
          Dst:             mailbox_search_init
        - Src:             'index-mailbox-size.c:451,2'
          Dst:             mail_search_args_unref
        - Src:             'index-mailbox-size.c:454,9'
          Dst:             mailbox_search_next
        - Src:             'index-mailbox-size.c:455,7'
          Dst:             mail_get_physical_size
        - Src:             'index-mailbox-size.c:461,13'
          Dst:             mailbox_get_last_internal_error
        - Src:             'index-mailbox-size.c:463,5'
          Dst:             mail_event
        - Src:             'index-mailbox-size.c:463,5'
          Dst:             e_error
        - Src:             'index-mailbox-size.c:470,6'
          Dst:             mailbox_search_deinit
        - Src:             'index-mailbox-size.c:471,3'
          Dst:             mail_event
        - Src:             'index-mailbox-size.c:471,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'index-mailbox-size.c:471,3'
          Dst:             e_error
        - Src:             'index-mailbox-size.c:475,8'
          Dst:             mailbox_transaction_commit
    - functionName:    index_mailbox_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - index_mailbox_vsize_hdr_add_missing
        - index_mailbox_vsize_update_deinit
        - index_mailbox_vsize_update_init
        - index_mailbox_vsize_update_wait_lock
        - mailbox_get_open_status
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:398,2'
          Dst:             mailbox_get_open_status
        - Src:             'index-mailbox-size.c:399,11'
          Dst:             index_mailbox_vsize_update_init
        - Src:             'index-mailbox-size.c:405,3'
          Dst:             index_mailbox_vsize_update_deinit
        - Src:             'index-mailbox-size.c:411,8'
          Dst:             index_mailbox_vsize_update_wait_lock
        - Src:             'index-mailbox-size.c:413,32'
          Dst:             event_reason_begin
        - Src:             'index-mailbox-size.c:414,8'
          Dst:             index_mailbox_vsize_hdr_add_missing
        - Src:             'index-mailbox-size.c:415,2'
          Dst:             event_reason_end
        - Src:             'index-mailbox-size.c:417,2'
          Dst:             index_mailbox_vsize_update_deinit
    - functionName:    index_mailbox_vsize_update_wait_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vsize_update_lock_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:162,9'
          Dst:             vsize_update_lock_full
    - functionName:    index_mailbox_vsize_hdr_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-mailbox-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mailbox_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-mailbox-size.c:252,2'
          Dst:             i_panic
        - Src:             'index-mailbox-size.c:257,3'
          Dst:             mailbox_set_critical
        - Src:             'index-mailbox-size.c:264,3'
          Dst:             mailbox_set_critical
    - functionName:    index_pop3_uidl_update_exists_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-pop3-uidl.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          142
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - index_pop3_uidl_set_max_uid
        - mail_index_get_header_ext
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_get_messages_count
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-pop3-uidl.c:68,2'
          Dst:             mail_index_get_header_ext
        - Src:             'index-pop3-uidl.c:79,6'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-pop3-uidl.c:88,9'
          Dst:             mail_index_view_open
        - Src:             'index-pop3-uidl.c:89,18'
          Dst:             mail_index_refresh
        - Src:             'index-pop3-uidl.c:91,3'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-pop3-uidl.c:92,2'
          Dst:             mail_index_view_close
        - Src:             'index-pop3-uidl.c:98,3'
          Dst:             i_memcpy
        - Src:             'index-pop3-uidl.c:102,2'
          Dst:             index_pop3_uidl_set_max_uid
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_pop3_uidl_set_max_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-pop3-uidl.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_update_header_ext
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-pop3-uidl.c:17,2'
          Dst:             mail_index_update_header_ext
    - functionName:    index_pop3_uidl_update_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-pop3-uidl.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_pop3_uidl_can_exist
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-pop3-uidl.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-pop3-uidl.c:33,2'
          Dst:             mail_index_get_header_ext
        - Src:             'index-pop3-uidl.c:40,2'
          Dst:             i_memcpy
    - functionName:    search_arg_match_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          120
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - array_get_i
        - mail_index_lookup_keywords
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:174,2'
          Dst:             pool_datastack_create
        - Src:             'index-search.c:174,2'
          Dst:             array_create_i
        - Src:             'index-search.c:175,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'index-search.c:177,20'
          Dst:             array_get_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_search_get_pvt
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_transaction_init_pvt
        - mail_index_lookup_seq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:194,2'
          Dst:             index_transaction_init_pvt
        - Src:             'index-search.c:199,9'
          Dst:             mail_index_lookup_seq
    - functionName:    search_arg_match_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          243
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - index_search_get_pvt
        - mail_index_lookup
        - mail_index_modseq_lookup
        - mailbox_get_private_flags_mask
        - mailbox_recent_flags_have_uid
        - search_arg_match_keywords
        - seq_range_exists
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:212,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:215,10'
          Dst:             seq_range_exists
        - Src:             'index-search.c:221,7'
          Dst:             mailbox_recent_flags_have_uid
        - Src:             'index-search.c:227,21'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-search.c:229,8'
          Dst:             index_search_get_pvt
        - Src:             'index-search.c:230,11'
          Dst:             mail_index_lookup
        - Src:             'index-search.c:237,3'
          Dst:             t_push
        - Src:             'index-search.c:238,10'
          Dst:             search_arg_match_keywords
        - Src:             'index-search.c:239,5'
          Dst:             t_pop
        - Src:             'index-search.c:239,5'
          Dst:             i_panic
        - Src:             'index-search.c:242,12'
          Dst:             mail_index_modseq_lookup
    - functionName:    search_get_cost
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1449
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    search_would_block
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1623
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          151
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - i_gettimeofday
        - timeval_diff_usecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1591,2'
          Dst:             i_gettimeofday
        - Src:             'index-search.c:1593,10'
          Dst:             timeval_diff_usecs
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    search_more_with_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1675
      functionLinenumberEnd: 1717
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          176
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_search_args_reset
        - mail_set_seq
        - search_get_cost
        - search_would_block
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1681,6'
          Dst:             search_would_block
        - Src:             'index-search.c:1687,2'
          Dst:             mail_search_args_reset
        - Src:             'index-search.c:1689,10'
          Dst:             search_get_cost
        - Src:             'index-search.c:1693,3'
          Dst:             t_push
        - Src:             'index-search.c:1695,5'
          Dst:             t_pop
        - Src:             'index-search.c:1695,5'
          Dst:             i_panic
        - Src:             'index-search.c:1698,3'
          Dst:             mail_set_seq
        - Src:             'index-search.c:1700,3'
          Dst:             t_push
        - Src:             'index-search.c:1702,5'
          Dst:             t_pop
        - Src:             'index-search.c:1702,5'
          Dst:             i_panic
        - Src:             'index-search.c:1706,11'
          Dst:             search_get_cost
        - Src:             'index-search.c:1710,7'
          Dst:             search_would_block
        - Src:             'index-search.c:1714,10'
          Dst:             search_get_cost
    - functionName:    search_finish_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_args_result_deserialize
        - search_match_finish
        - search_match_once
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1806,2'
          Dst:             i_panic
        - Src:             'index-search.c:1810,2'
          Dst:             mail_search_args_result_deserialize
        - Src:             'index-search.c:1813,2'
          Dst:             t_push
        - Src:             'index-search.c:1814,9'
          Dst:             search_match_once
        - Src:             'index-search.c:1815,3'
          Dst:             search_match_finish
        - Src:             'index-search.c:1816,4'
          Dst:             t_pop
        - Src:             'index-search.c:1816,4'
          Dst:             i_panic
    - functionName:    search_match_once
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_search_mime_arg_match
        - mail_search_args_foreach
        - search_arg_match_text
        - search_cached_arg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1462,8'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1462,8'
          Dst:             search_cached_arg
        - Src:             'index-search.c:1465,9'
          Dst:             search_arg_match_text
        - Src:             'index-search.c:1467,9'
          Dst:             index_search_mime_arg_match
    - functionName:    search_match_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1543
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_search_results_never
        - search_has_static_nonmatches
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1537,6'
          Dst:             search_has_static_nonmatches
        - Src:             'index-search.c:1540,3'
          Dst:             mailbox_search_results_never
    - functionName:    search_has_static_nonmatches
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1532
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          55
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - search_arg_is_static
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1528,27'
          Dst:             search_arg_is_static
    - functionName:    search_arg_is_static
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1515
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          166
      EdgeCount:       42
      CyclomaticComplexity: 3
      functionsReached:
        - search_arg_is_static
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-search.c:1475,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1481,9'
          Dst:             search_arg_is_static
    - functionName:    search_cached_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - search_arg_match_cached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:431,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:431,10'
          Dst:             search_arg_match_cached
    - functionName:    search_arg_match_text
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          447
      EdgeCount:       94
      CyclomaticComplexity: 24
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_seek
        - index_mail_parse_header_init
        - index_mail_want_parse_headers
        - mail_get_backend_mail
        - mail_get_hdr_stream_because
        - mail_get_header_stream
        - mail_get_parts
        - mail_get_stream_because
        - mail_search_args_analyze
        - mail_search_args_foreach
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - mailbox_set_critical
        - message_parse_header
        - search_body
        - search_cur_mail_failed
        - search_header
        - search_none
        - search_set_failed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:761,12'
          Dst:             mail_search_args_analyze
        - Src:             'index-search.c:769,6'
          Dst:             mail_get_backend_mail
        - Src:             'index-search.c:770,3'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:778,3'
          Dst:             mailbox_header_lookup_init
        - Src:             'index-search.c:783,3'
          Dst:             i_panic
        - Src:             'index-search.c:785,7'
          Dst:             mail_get_header_stream
        - Src:             'index-search.c:787,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:790,4'
          Dst:             message_parse_header
        - Src:             'index-search.c:790,4'
          Dst:             search_header
        - Src:             'index-search.c:797,4'
          Dst:             mail_get_stream_because
        - Src:             'index-search.c:798,4'
          Dst:             mail_get_hdr_stream_because
        - Src:             'index-search.c:800,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:814,5'
          Dst:             index_mail_want_parse_headers
        - Src:             'index-search.c:816,5'
          Dst:             index_mail_parse_header_init
        - Src:             'index-search.c:819,4'
          Dst:             message_parse_header
        - Src:             'index-search.c:819,4'
          Dst:             search_header
        - Src:             'index-search.c:824,6'
          Dst:             i_stream_get_name
        - Src:             'index-search.c:825,6'
          Dst:             i_stream_get_error
        - Src:             'index-search.c:822,5'
          Dst:             mailbox_set_critical
        - Src:             'index-search.c:827,5'
          Dst:             search_set_failed
        - Src:             'index-search.c:831,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-search.c:845,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:845,9'
          Dst:             search_none
        - Src:             'index-search.c:850,2'
          Dst:             i_panic
        - Src:             'index-search.c:861,7'
          Dst:             mail_get_stream_because
        - Src:             'index-search.c:862,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:865,3'
          Dst:             i_stream_seek
        - Src:             'index-search.c:874,8'
          Dst:             mail_get_parts
        - Src:             'index-search.c:877,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:877,9'
          Dst:             search_body
    - functionName:    search_cur_mail_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_get_last_mail_error
        - search_set_failed
      functionUses:    13
      BranchProfiles:
        - Branch String:   'index-search.c:85,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:85,10'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-search.c:93,3'
          Dst:             search_set_failed
    - functionName:    search_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - index_mail_parse_header
        - mail_search_args_foreach
        - search_header_arg
        - search_header_unmatch
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:684,3'
          Dst:             index_mail_parse_header
        - Src:             'index-search.c:688,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:688,9'
          Dst:             search_header_unmatch
        - Src:             'index-search.c:696,28'
          Dst:             strcasecmp
        - Src:             'index-search.c:701,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:701,9'
          Dst:             search_header_arg
    - functionName:    search_set_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_last_error_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:79,2'
          Dst:             mail_storage_last_error_push
    - functionName:    search_none
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    search_body
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          217
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_seek
        - index_mail_set_message_parts_corrupted
        - mailbox_set_critical
        - message_search_msg
        - msg_search_arg_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:712,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:720,19'
          Dst:             msg_search_arg_context
        - Src:             'index-search.c:726,2'
          Dst:             i_stream_seek
        - Src:             'index-search.c:727,8'
          Dst:             message_search_msg
        - Src:             'index-search.c:730,3'
          Dst:             index_mail_set_message_parts_corrupted
        - Src:             'index-search.c:732,3'
          Dst:             i_stream_seek
        - Src:             'index-search.c:733,9'
          Dst:             message_search_msg
        - Src:             'index-search.c:734,3'
          Dst:             i_panic
        - Src:             'index-search.c:738,27'
          Dst:             i_stream_get_name
        - Src:             'index-search.c:739,4'
          Dst:             i_stream_get_error
        - Src:             'index-search.c:737,3'
          Dst:             mailbox_set_critical
    - functionName:    msg_search_arg_context
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - message_search_init
        - str_c
        - str_len
        - strlen
        - t_pop
        - t_push
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:479,28'
          Dst:             t_push
        - Src:             'index-search.c:480,19'
          Dst:             t_str_new
        - Src:             'index-search.c:483,11'
          Dst:             strlen
        - Src:             'index-search.c:484,4'
          Dst:             i_panic
        - Src:             'index-search.c:491,7'
          Dst:             str_len
        - Src:             'index-search.c:493,25'
          Dst:             str_c
        - Src:             'index-search.c:493,5'
          Dst:             message_search_init
        - Src:             'index-search.c:497,4'
          Dst:             t_pop
        - Src:             'index-search.c:497,4'
          Dst:             i_panic
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    search_header_unmatch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:657,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    search_header_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          431
      EdgeCount:       65
      CyclomaticComplexity: 10
      functionsReached:
        - compress_lwsp
        - i_panic
        - i_unreached
        - message_address_parse
        - message_address_write
        - message_search_more_decoded
        - message_search_more_get_decoded
        - msg_search_arg_context
        - search_context_temp_pool
        - search_sent
        - str_data
        - str_len
        - str_new
        - strcasecmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:546,2'
          Branch Sides:    []
        - Branch String:   'index-search.c:606,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:554,7'
          Dst:             strcasecmp
        - Src:             'index-search.c:559,10'
          Dst:             search_sent
        - Src:             'index-search.c:571,7'
          Dst:             strcasecmp
        - Src:             'index-search.c:598,19'
          Dst:             msg_search_arg_context
        - Src:             'index-search.c:602,33'
          Dst:             t_push
        - Src:             'index-search.c:612,18'
          Dst:             search_context_temp_pool
        - Src:             'index-search.c:614,11'
          Dst:             message_address_parse
        - Src:             'index-search.c:619,10'
          Dst:             str_new
        - Src:             'index-search.c:620,4'
          Dst:             message_address_write
        - Src:             'index-search.c:621,33'
          Dst:             str_data
        - Src:             'index-search.c:622,41'
          Dst:             str_len
        - Src:             'index-search.c:627,18'
          Dst:             search_context_temp_pool
        - Src:             'index-search.c:629,10'
          Dst:             str_new
        - Src:             'index-search.c:630,4'
          Dst:             compress_lwsp
        - Src:             'index-search.c:631,33'
          Dst:             str_data
        - Src:             'index-search.c:632,41'
          Dst:             str_len
        - Src:             'index-search.c:636,4'
          Dst:             i_unreached
        - Src:             'index-search.c:638,9'
          Dst:             message_search_more_get_decoded
        - Src:             'index-search.c:641,4'
          Dst:             t_pop
        - Src:             'index-search.c:641,4'
          Dst:             i_panic
        - Src:             'index-search.c:645,9'
          Dst:             message_search_more_decoded
    - functionName:    search_sent
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - message_date_parse
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:460,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:455,7'
          Dst:             message_date_parse
        - Src:             'index-search.c:469,17'
          Dst:             i_unreached
    - functionName:    search_context_temp_pool
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - p_clear
        - pool_alloconly_create
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:524,3'
          Dst:             p_clear
        - Src:             'index-search.c:529,10'
          Dst:             pool_datastack_create
        - Src:             'index-search.c:533,19'
          Dst:             pool_alloconly_create
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compress_lwsp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:511,5'
          Dst:             str_append_c
        - Src:             'index-search.c:515,4'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    search_arg_match_cached
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          356
      EdgeCount:       56
      CyclomaticComplexity: 9
      functionsReached:
        - i_unreached
        - localtime
        - mail_get_backend_mail
        - mail_get_date
        - mail_get_received_date
        - mail_get_save_date
        - mail_get_special
        - mail_get_virtual_size
        - search_cur_mail_failed
        - seq_range_exists
        - strcmp
        - utc_offset
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:337,2'
          Branch Sides:    []
        - Branch String:   'index-search.c:343,3'
          Branch Sides:    []
        - Branch String:   'index-search.c:374,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:345,8'
          Dst:             mail_get_date
        - Src:             'index-search.c:346,5'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:352,8'
          Dst:             mail_get_received_date
        - Src:             'index-search.c:353,5'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:358,8'
          Dst:             mail_get_save_date
        - Src:             'index-search.c:359,5'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:368,10'
          Dst:             localtime
        - Src:             'index-search.c:369,17'
          Dst:             utc_offset
        - Src:             'index-search.c:383,4'
          Dst:             i_unreached
        - Src:             'index-search.c:388,9'
          Dst:             mail_get_save_date
        - Src:             'index-search.c:390,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:398,7'
          Dst:             mail_get_virtual_size
        - Src:             'index-search.c:399,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:409,7'
          Dst:             mail_get_special
        - Src:             'index-search.c:410,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:413,10'
          Dst:             strcmp
        - Src:             'index-search.c:417,7'
          Dst:             mail_get_backend_mail
        - Src:             'index-search.c:418,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:421,10'
          Dst:             seq_range_exists
    - functionName:    search_more_with_prefetching
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1745
      functionLinenumberEnd: 1799
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          264
      EdgeCount:       60
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_delete_i
        - array_get_i
        - i_panic
        - index_mail_update_access_parts_post
        - index_search_get_mail
        - mail_prefetch
        - search_more_with_mail
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1750,17'
          Dst:             index_search_get_mail
        - Src:             'index-search.c:1751,3'
          Dst:             t_push
        - Src:             'index-search.c:1752,10'
          Dst:             search_more_with_mail
        - Src:             'index-search.c:1753,5'
          Dst:             t_pop
        - Src:             'index-search.c:1753,5'
          Dst:             i_panic
        - Src:             'index-search.c:1760,4'
          Dst:             i_panic
        - Src:             'index-search.c:1764,7'
          Dst:             mail_prefetch
        - Src:             'index-search.c:1777,3'
          Dst:             i_panic
        - Src:             'index-search.c:1787,2'
          Dst:             i_panic
        - Src:             'index-search.c:1789,10'
          Dst:             array_get_i
        - Src:             'index-search.c:1792,3'
          Dst:             array_delete_i
        - Src:             'index-search.c:1793,3'
          Dst:             array_append_i
        - Src:             'index-search.c:1795,2'
          Dst:             t_push
        - Src:             'index-search.c:1796,3'
          Dst:             index_mail_update_access_parts_post
        - Src:             'index-search.c:1797,4'
          Dst:             t_pop
        - Src:             'index-search.c:1797,4'
          Dst:             i_panic
    - functionName:    index_search_get_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1720
      functionLinenumberEnd: 1741
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          105
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_get_i
        - mail_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1728,10'
          Dst:             array_get_i
        - Src:             'index-search.c:1732,9'
          Dst:             mail_alloc
        - Src:             'index-search.c:1739,2'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    search_arg_match_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          145
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - imap_match
        - mail_get_special
        - search_cur_mail_failed
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:276,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:284,7'
          Dst:             strcmp
        - Src:             'index-search.c:286,7'
          Dst:             mail_get_special
        - Src:             'index-search.c:288,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:292,7'
          Dst:             strcasecmp
        - Src:             'index-search.c:293,11'
          Dst:             strcasecmp
        - Src:             'index-search.c:294,10'
          Dst:             strcmp
        - Src:             'index-search.c:296,7'
          Dst:             imap_match
        - Src:             'index-search.c:298,7'
          Dst:             mail_get_special
        - Src:             'index-search.c:300,4'
          Dst:             search_cur_mail_failed
        - Src:             'index-search.c:303,10'
          Dst:             imap_match
    - functionName:    search_mailbox_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - search_arg_match_mailbox
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:312,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:312,10'
          Dst:             search_arg_match_mailbox
    - functionName:    search_limit_lowwater
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1041
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_seq_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1037,8'
          Dst:             mail_index_lookup_seq_range
    - functionName:    search_view_have_stale_hdr_counters
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_map_get_modseq_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1059,20'
          Dst:             mail_index_map_get_modseq_header
        - Src:             'index-search.c:1060,20'
          Dst:             mail_index_map_get_modseq_header
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    search_msgset_fix_limits
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          147
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_get_modifiable_i
        - i_panic
        - seq_range_array_add
        - seq_range_array_remove_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:887,2'
          Dst:             i_panic
        - Src:             'index-search.c:889,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-search.c:891,3'
          Dst:             i_panic
        - Src:             'index-search.c:895,4'
          Dst:             seq_range_array_add
        - Src:             'index-search.c:898,3'
          Dst:             seq_range_array_remove_range
        - Src:             'index-search.c:902,10'
          Dst:             array_count_i
        - Src:             'index-search.c:905,11'
          Dst:             array_get_modifiable_i
    - functionName:    search_msgset_fix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          188
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - array_get_i
        - search_msgset_fix_limits
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:920,7'
          Dst:             search_msgset_fix_limits
        - Src:             'index-search.c:926,10'
          Dst:             array_get_i
    - functionName:    search_or_parse_msgset_args
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          219
      EdgeCount:       44
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - search_msgset_fix
        - search_or_parse_msgset_args
        - search_parse_msgset_args
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-search.c:960,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:962,4'
          Dst:             i_panic
        - Src:             'index-search.c:963,4'
          Dst:             search_parse_msgset_args
        - Src:             'index-search.c:968,4'
          Dst:             i_panic
        - Src:             'index-search.c:969,4'
          Dst:             search_or_parse_msgset_args
        - Src:             'index-search.c:974,4'
          Dst:             search_msgset_fix
        - Src:             'index-search.c:991,2'
          Dst:             i_panic
    - functionName:    search_parse_msgset_args
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - search_msgset_fix
        - search_or_parse_msgset_args
        - search_parse_msgset_args
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-search.c:1004,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1006,4'
          Dst:             i_panic
        - Src:             'index-search.c:1007,4'
          Dst:             search_parse_msgset_args
        - Src:             'index-search.c:1014,4'
          Dst:             i_panic
        - Src:             'index-search.c:1015,4'
          Dst:             search_or_parse_msgset_args
        - Src:             'index-search.c:1020,4'
          Dst:             search_msgset_fix
    - functionName:    search_limit_by_hdr
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1147
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          321
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - mail_index_get_header
        - mail_index_modseq_get_highest
        - mailbox_get_private_flags_mask
        - search_limit_lowwater
        - search_view_have_stale_hdr_counters
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:1093,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1074,6'
          Dst:             search_view_have_stale_hdr_counters
        - Src:             'index-search.c:1086,8'
          Dst:             mail_index_get_header
        - Src:             'index-search.c:1090,3'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-search.c:1102,21'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-search.c:1123,5'
          Dst:             search_limit_lowwater
        - Src:             'index-search.c:1140,5'
          Dst:             search_limit_lowwater
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    search_build_subthread
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_thread_iterate_deinit
        - mail_thread_iterate_next
        - search_build_subthread
        - seq_range_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1192,17'
          Dst:             mail_thread_iterate_next
        - Src:             'index-search.c:1194,8'
          Dst:             search_build_subthread
        - Src:             'index-search.c:1197,3'
          Dst:             seq_range_array_add
        - Src:             'index-search.c:1199,6'
          Dst:             mail_thread_iterate_deinit
    - functionName:    search_build_inthread_result
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1206
      functionLinenumberEnd: 1253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          175
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - array_clear_i
        - array_count_i
        - array_create_i
        - i_panic
        - mail_thread_iterate_deinit
        - mail_thread_iterate_init
        - mail_thread_iterate_next
        - mailbox_search_result_build
        - mailbox_search_result_get
        - pool_datastack_create
        - search_build_subthread
        - seq_range_array_add
        - seq_range_array_have_common
        - seq_range_array_merge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1214,2'
          Dst:             i_panic
        - Src:             'index-search.c:1216,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1217,6'
          Dst:             mailbox_search_result_build
        - Src:             'index-search.c:1228,16'
          Dst:             mailbox_search_result_get
        - Src:             'index-search.c:1229,6'
          Dst:             array_count_i
        - Src:             'index-search.c:1234,2'
          Dst:             pool_datastack_create
        - Src:             'index-search.c:1234,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1235,9'
          Dst:             mail_thread_iterate_init
        - Src:             'index-search.c:1237,17'
          Dst:             mail_thread_iterate_next
        - Src:             'index-search.c:1238,3'
          Dst:             seq_range_array_add
        - Src:             'index-search.c:1240,8'
          Dst:             search_build_subthread
        - Src:             'index-search.c:1244,7'
          Dst:             seq_range_array_have_common
        - Src:             'index-search.c:1246,4'
          Dst:             seq_range_array_merge
        - Src:             'index-search.c:1248,3'
          Dst:             array_clear_i
        - Src:             'index-search.c:1250,6'
          Dst:             mail_thread_iterate_deinit
    - functionName:    search_set_static_matches
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1518
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          43
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - search_arg_is_static
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1520,7'
          Dst:             search_arg_is_static
    - functionName:    index_storage_search_next_update_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1941
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          286
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - mail_index_lookup_uid
        - mail_search_args_foreach
        - mail_search_args_reset
        - search_index_arg
        - search_seqset_arg
        - search_set_static_matches
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1962,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1962,9'
          Dst:             search_seqset_arg
        - Src:             'index-search.c:1967,10'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1967,10'
          Dst:             search_index_arg
        - Src:             'index-search.c:1972,4'
          Dst:             mail_index_lookup_uid
        - Src:             'index-search.c:1973,8'
          Dst:             seq_range_exists
        - Src:             'index-search.c:1982,3'
          Dst:             mail_search_args_reset
        - Src:             'index-search.c:1986,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-search.c:1987,7'
          Dst:             seq_range_exists
        - Src:             'index-search.c:1990,4'
          Dst:             search_set_static_matches
    - functionName:    search_seqset_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - seq_range_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:154,7'
          Dst:             seq_range_exists
    - functionName:    search_index_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - mail_index_lookup
        - search_arg_match_index
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-search.c:256,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:255,8'
          Dst:             mail_index_lookup
        - Src:             'index-search.c:256,10'
          Dst:             search_arg_match_index
    - functionName:    index_storage_search_match_index_args
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1937
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_args_foreach
        - search_index_arg
        - search_seqset_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1932,8'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1932,8'
          Dst:             search_seqset_arg
        - Src:             'index-search.c:1934,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1934,9'
          Dst:             search_index_arg
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    search_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1824
      functionLinenumberEnd: 1843
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_search_notify
        - search_finish_prefetch
        - search_more_with_prefetching
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1828,16'
          Dst:             search_more_with_prefetching
        - Src:             'index-search.c:1834,7'
          Dst:             search_finish_prefetch
        - Src:             'index-search.c:1841,3'
          Dst:             mailbox_search_notify
    - functionName:    index_storage_search_is_interrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1848
      functionLinenumberEnd: 1868
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_gettimeofday
        - i_panic
        - mail_storage_set_error
        - master_service_get_kill_time
        - master_service_is_killed
        - search_set_failed
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1849,7'
          Dst:             master_service_is_killed
        - Src:             'index-search.c:1853,2'
          Dst:             i_gettimeofday
        - Src:             'index-search.c:1856,3'
          Dst:             master_service_get_kill_time
        - Src:             'index-search.c:1858,3'
          Dst:             i_panic
        - Src:             'index-search.c:1859,13'
          Dst:             timeval_diff_msecs
        - Src:             'index-search.c:1861,3'
          Dst:             mail_storage_set_error
        - Src:             'index-search.c:1864,3'
          Dst:             search_set_failed
    - functionName:    index_storage_search_next_nonblock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1872
      functionLinenumberEnd: 1921
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          178
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_idx_i
        - i_panic
        - index_mail_update_access_parts_post
        - index_mail_update_access_parts_pre
        - index_sort_list_add
        - index_sort_list_finish
        - index_sort_list_next
        - index_storage_search_is_interrupted
        - mail_set_seq
        - search_more
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1880,6'
          Dst:             index_storage_search_is_interrupted
        - Src:             'index-search.c:1884,9'
          Dst:             search_more
        - Src:             'index-search.c:1896,17'
          Dst:             search_more
        - Src:             'index-search.c:1896,47'
          Dst:             t_push
        - Src:             'index-search.c:1897,4'
          Dst:             index_sort_list_add
        - Src:             'index-search.c:1898,5'
          Dst:             t_pop
        - Src:             'index-search.c:1898,5'
          Dst:             i_panic
        - Src:             'index-search.c:1907,3'
          Dst:             index_sort_list_finish
        - Src:             'index-search.c:1912,7'
          Dst:             index_sort_list_next
        - Src:             'index-search.c:1915,10'
          Dst:             array_idx_i
        - Src:             'index-search.c:1916,2'
          Dst:             mail_set_seq
        - Src:             'index-search.c:1917,2'
          Dst:             index_mail_update_access_parts_pre
        - Src:             'index-search.c:1918,2'
          Dst:             index_mail_update_access_parts_post
    - functionName:    search_match_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1546
      functionLinenumberEnd: 1578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          154
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_search_args_foreach
        - search_mailbox_arg
        - search_match_finish
        - search_match_once
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1558,9'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1558,9'
          Dst:             search_mailbox_arg
        - Src:             'index-search.c:1569,2'
          Dst:             i_panic
        - Src:             'index-search.c:1572,3'
          Dst:             t_push
        - Src:             'index-search.c:1573,10'
          Dst:             search_match_once
        - Src:             'index-search.c:1574,5'
          Dst:             t_pop
        - Src:             'index-search.c:1574,5'
          Dst:             i_panic
        - Src:             'index-search.c:1577,2'
          Dst:             search_match_finish
    - functionName:    index_storage_search_next_match_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          152
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_create_dynamic
        - i_panic
        - index_mail_update_access_parts_pre
        - mail_search_args_reset
        - mail_search_args_result_serialize
        - search_match_next
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1638,2'
          Dst:             t_push
        - Src:             'index-search.c:1639,11'
          Dst:             search_match_next
        - Src:             'index-search.c:1640,4'
          Dst:             t_pop
        - Src:             'index-search.c:1640,4'
          Dst:             i_panic
        - Src:             'index-search.c:1644,2'
          Dst:             i_panic
        - Src:             'index-search.c:1649,4'
          Dst:             buffer_create_dynamic
        - Src:             'index-search.c:1650,3'
          Dst:             mail_search_args_result_serialize
        - Src:             'index-search.c:1654,2'
          Dst:             mail_search_args_reset
        - Src:             'index-search.c:1663,3'
          Dst:             index_mail_update_access_parts_pre
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    search_arg_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - index_search_mime_arg_deinit
        - message_search_deinit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:1397,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1399,3'
          Dst:             index_search_mime_arg_deinit
        - Src:             'index-search.c:1404,4'
          Dst:             message_search_deinit
    - functionName:    index_storage_search_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1444
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          202
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_free_i
        - i_memcpy
        - index_sort_program_deinit
        - mail_free
        - mail_search_args_foreach
        - mail_search_args_reset
        - mail_storage_last_error_pop
        - mail_thread_deinit
        - mailbox_header_lookup_unref
        - p_free_internal
        - pool_unref
        - search_arg_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1418,2'
          Dst:             mail_search_args_reset
        - Src:             'index-search.c:1419,8'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1419,8'
          Dst:             search_arg_deinit
        - Src:             'index-search.c:1422,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-search.c:1424,7'
          Dst:             index_sort_program_deinit
        - Src:             'index-search.c:1428,3'
          Dst:             mail_thread_deinit
        - Src:             'index-search.c:1429,2'
          Dst:             array_free_i
        - Src:             'index-search.c:1430,2'
          Dst:             array_free_i
        - Src:             'index-search.c:1432,2'
          Dst:             i_memcpy
        - Src:             'index-search.c:1436,3'
          Dst:             mail_free
        - Src:             'index-search.c:1440,3'
          Dst:             mail_storage_last_error_pop
        - Src:             'index-search.c:1441,2'
          Dst:             array_free_i
        - Src:             'index-search.c:1442,2'
          Dst:             pool_unref
        - Src:             'index-search.c:1443,2'
          Dst:             p_free_internal
    - functionName:    search_init_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          194
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - guid_128_to_string
        - mail_index_modseq_enable
        - mailbox_get_metadata
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:104,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:114,4'
          Dst:             mail_index_modseq_enable
        - Src:             'index-search.c:118,7'
          Dst:             mailbox_get_metadata
        - Src:             'index-search.c:124,18'
          Dst:             guid_128_to_string
        - Src:             'index-search.c:124,11'
          Dst:             strcmp
    - functionName:    search_get_seqset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          101
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - search_limit_by_hdr
        - search_parse_msgset_args
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1165,2'
          Dst:             search_parse_msgset_args
        - Src:             'index-search.c:1178,7'
          Dst:             search_limit_by_hdr
    - functionName:    wanted_sort_fields_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1333
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          173
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - mailbox_header_lookup_init
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search.c:1296,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1292,2'
          Dst:             pool_datastack_create
        - Src:             'index-search.c:1292,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1320,4'
          Dst:             array_append_i
        - Src:             'index-search.c:1325,4'
          Dst:             array_append_i
        - Src:             'index-search.c:1328,6'
          Dst:             array_count_i
        - Src:             'index-search.c:1329,3'
          Dst:             array_append_space_i
        - Src:             'index-search.c:1331,8'
          Dst:             array_idx_i
        - Src:             'index-search.c:1330,20'
          Dst:             mailbox_header_lookup_init
    - functionName:    search_build_inthreads
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1275
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - search_build_inthread_result
        - search_build_inthreads
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-search.c:1261,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search.c:1264,8'
          Dst:             search_build_inthreads
        - Src:             'index-search.c:1268,8'
          Dst:             search_build_inthread_result
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_search_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1390
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          261
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_create_i
        - i_gettimeofday
        - index_sort_program_init
        - mail_search_args_foreach
        - mail_search_args_reset
        - mail_thread_init
        - mailbox_get_open_status
        - mailbox_header_lookup_ref
        - malloc_multiply_check
        - p_malloc
        - search_build_inthreads
        - search_get_seqset
        - search_init_arg
        - search_set_failed
        - wanted_sort_fields_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search.c:1345,8'
          Dst:             malloc_multiply_check
        - Src:             'index-search.c:1345,8'
          Dst:             p_malloc
        - Src:             'index-search.c:1351,31'
          Dst:             index_sort_program_init
        - Src:             'index-search.c:1357,2'
          Dst:             i_gettimeofday
        - Src:             'index-search.c:1359,2'
          Dst:             mailbox_get_open_status
        - Src:             'index-search.c:1362,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1363,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1365,2'
          Dst:             array_create_i
        - Src:             'index-search.c:1367,2'
          Dst:             mail_search_args_reset
        - Src:             'index-search.c:1369,7'
          Dst:             mail_thread_init
        - Src:             'index-search.c:1370,4'
          Dst:             search_set_failed
        - Src:             'index-search.c:1371,7'
          Dst:             search_build_inthreads
        - Src:             'index-search.c:1372,4'
          Dst:             search_set_failed
        - Src:             'index-search.c:1376,3'
          Dst:             wanted_sort_fields_get
        - Src:             'index-search.c:1381,3'
          Dst:             mailbox_header_lookup_ref
        - Src:             'index-search.c:1385,2'
          Dst:             search_get_seqset
        - Src:             'index-search.c:1386,8'
          Dst:             mail_search_args_foreach
        - Src:             'index-search.c:1386,8'
          Dst:             search_init_arg
        - Src:             'index-search.c:1389,2'
          Dst:             mail_search_args_reset
    - functionName:    get_first_addr
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_get_first_header
        - message_address_parse
        - pool_datastack_create
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:491,13'
          Dst:             mail_get_first_header
        - Src:             'index-sort.c:496,34'
          Dst:             pool_datastack_create
        - Src:             'index-sort.c:498,6'
          Dst:             strlen
        - Src:             'index-sort.c:496,12'
          Dst:             message_address_parse
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    sort_node_float_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_sort_node_cmp_type
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:262,9'
          Dst:             index_sort_node_cmp_type
    - functionName:    index_sort_node_cmp_type
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          576
      EdgeCount:       121
      CyclomaticComplexity: 24
      functionsReached:
        - i_panic
        - i_unreached
        - index_sort_get_pop3_order
        - index_sort_get_relevancy
        - index_sort_header_get
        - index_sort_node_cmp_type
        - index_sort_program_set_date_failed
        - index_sort_program_set_mail_failed
        - index_sort_set_seq
        - mail_get_date
        - mail_get_received_date
        - mail_get_virtual_size
        - str_c
        - strcmp
        - t_pop
        - t_push
        - t_str_new
      functionUses:    7
      BranchProfiles:
        - Branch String:   'index-sort.c:628,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort.c:635,3'
          Dst:             t_push
        - Src:             'index-sort.c:638,11'
          Dst:             t_str_new
        - Src:             'index-sort.c:639,11'
          Dst:             t_str_new
        - Src:             'index-sort.c:640,8'
          Dst:             index_sort_header_get
        - Src:             'index-sort.c:641,5'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:642,8'
          Dst:             index_sort_header_get
        - Src:             'index-sort.c:643,5'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:645,17'
          Dst:             str_c
        - Src:             'index-sort.c:645,30'
          Dst:             str_c
        - Src:             'index-sort.c:645,10'
          Dst:             strcmp
        - Src:             'index-sort.c:646,5'
          Dst:             t_pop
        - Src:             'index-sort.c:646,5'
          Dst:             i_panic
        - Src:             'index-sort.c:649,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:650,7'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:651,12'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:653,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:654,7'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:655,12'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:661,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:662,7'
          Dst:             mail_get_date
        - Src:             'index-sort.c:663,12'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:665,8'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:666,13'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:669,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:670,7'
          Dst:             mail_get_date
        - Src:             'index-sort.c:671,12'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:673,8'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:674,13'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:681,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:682,7'
          Dst:             mail_get_virtual_size
        - Src:             'index-sort.c:683,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:687,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:688,7'
          Dst:             mail_get_virtual_size
        - Src:             'index-sort.c:689,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:697,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:698,7'
          Dst:             index_sort_get_relevancy
        - Src:             'index-sort.c:699,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:700,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:701,7'
          Dst:             index_sort_get_relevancy
        - Src:             'index-sort.c:702,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:712,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:713,7'
          Dst:             index_sort_get_pop3_order
        - Src:             'index-sort.c:714,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:715,3'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:716,7'
          Dst:             index_sort_get_pop3_order
        - Src:             'index-sort.c:717,4'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:727,3'
          Dst:             i_unreached
        - Src:             'index-sort.c:731,10'
          Dst:             index_sort_node_cmp_type
    - functionName:    index_sort_header_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          144
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - get_display_name
        - get_first_mailbox
        - i_unreached
        - imap_get_base_subject_cased
        - index_sort_program_set_mail_failed
        - index_sort_set_seq
        - mail_get_first_header
        - pool_datastack_create
        - str_append
        - str_truncate
        - strlen
        - uni_utf8_to_decomposed_titlecase
      functionUses:    5
      BranchProfiles:
        - Branch String:   'index-sort.c:574,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort.c:571,2'
          Dst:             index_sort_set_seq
        - Src:             'index-sort.c:572,2'
          Dst:             str_truncate
        - Src:             'index-sort.c:576,9'
          Dst:             mail_get_first_header
        - Src:             'index-sort.c:583,37'
          Dst:             pool_datastack_create
        - Src:             'index-sort.c:583,9'
          Dst:             imap_get_base_subject_cased
        - Src:             'index-sort.c:585,3'
          Dst:             str_append
        - Src:             'index-sort.c:588,9'
          Dst:             get_first_mailbox
        - Src:             'index-sort.c:591,9'
          Dst:             get_first_mailbox
        - Src:             'index-sort.c:594,9'
          Dst:             get_first_mailbox
        - Src:             'index-sort.c:597,9'
          Dst:             get_display_name
        - Src:             'index-sort.c:600,9'
          Dst:             get_display_name
        - Src:             'index-sort.c:603,3'
          Dst:             i_unreached
        - Src:             'index-sort.c:606,3'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:612,46'
          Dst:             strlen
        - Src:             'index-sort.c:612,8'
          Dst:             uni_utf8_to_decomposed_titlecase
    - functionName:    index_sort_program_set_mail_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mail_storage_set_error
        - mailbox_get_last_mail_error
      functionUses:    11
      BranchProfiles:
        - Branch String:   'index-sort.c:43,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort.c:43,10'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-sort.c:48,3'
          Dst:             i_panic
        - Src:             'index-sort.c:49,3'
          Dst:             mail_storage_set_error
    - functionName:    index_sort_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mail_set_seq
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:555,2'
          Dst:             mail_set_seq
    - functionName:    index_sort_program_set_date_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_sort_program_set_mail_failed
        - mailbox_get_last_mail_error
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:62,2'
          Dst:             index_sort_program_set_mail_failed
        - Src:             'index-sort.c:64,6'
          Dst:             mailbox_get_last_mail_error
    - functionName:    index_sort_get_relevancy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_get_special
        - strtod
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:150,6'
          Dst:             mail_get_special
        - Src:             'index-sort.c:154,14'
          Dst:             strtod
    - functionName:    index_sort_get_pop3_order
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_get_special
        - str_to_uoff
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:124,6'
          Dst:             mail_get_special
        - Src:             'index-sort.c:129,6'
          Dst:             str_to_uoff
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    get_first_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - get_first_addr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:508,6'
          Dst:             get_first_addr
    - functionName:    get_display_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - get_first_addr
        - message_header_decode_utf8
        - str_c
        - str_len
        - strlen
        - t_str_new
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:523,6'
          Dst:             get_first_addr
        - Src:             'index-sort.c:530,16'
          Dst:             strlen
        - Src:             'index-sort.c:532,9'
          Dst:             t_str_new
        - Src:             'index-sort.c:533,9'
          Dst:             message_header_decode_utf8
        - Src:             'index-sort.c:535,7'
          Dst:             str_len
        - Src:             'index-sort.c:536,14'
          Dst:             str_c
        - Src:             'index-sort.c:541,13'
          Dst:             t_strconcat
    - functionName:    sort_node_size_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          82
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_sort_node_cmp_type
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:236,9'
          Dst:             index_sort_node_cmp_type
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    sort_node_date_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          82
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_sort_node_cmp_type
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:210,9'
          Dst:             index_sort_node_cmp_type
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sort_program_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - index_sort_list_finish
        - mail_free
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:475,3'
          Dst:             index_sort_list_finish
        - Src:             'index-sort.c:476,2'
          Dst:             mail_free
        - Src:             'index-sort.c:477,2'
          Dst:             array_free_i
        - Src:             'index-sort.c:480,2'
          Dst:             p_free_internal
    - functionName:    index_sort_list_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_reason_begin
        - event_reason_end
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:290,32'
          Dst:             event_reason_begin
        - Src:             'index-sort.c:292,2'
          Dst:             event_reason_end
    - functionName:    index_sort_list_add_pop3_order
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - index_sort_get_pop3_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:141,9'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:143,8'
          Dst:             index_sort_get_pop3_order
    - functionName:    index_sort_list_finish_float
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          46
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_sort_i
        - i_memcpy
        - p_free_internal
        - sort_node_float_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:275,2'
          Dst:             array_sort_i
        - Src:             'index-sort.c:275,2'
          Dst:             sort_node_float_cmp
        - Src:             'index-sort.c:278,2'
          Dst:             i_memcpy
        - Src:             'index-sort.c:279,2'
          Dst:             p_free_internal
    - functionName:    index_sort_list_add_relevancy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - index_sort_get_relevancy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:165,9'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:167,8'
          Dst:             index_sort_get_relevancy
    - functionName:    index_sort_list_finish_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_sort_i
        - i_memcpy
        - p_free_internal
        - sort_node_size_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:246,2'
          Dst:             array_sort_i
        - Src:             'index-sort.c:246,2'
          Dst:             sort_node_size_cmp
        - Src:             'index-sort.c:247,2'
          Dst:             i_memcpy
        - Src:             'index-sort.c:248,2'
          Dst:             p_free_internal
    - functionName:    index_sort_list_add_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - index_sort_program_set_mail_failed
        - mail_get_virtual_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:112,9'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:114,6'
          Dst:             mail_get_virtual_size
        - Src:             'index-sort.c:115,3'
          Dst:             index_sort_program_set_mail_failed
    - functionName:    index_sort_list_finish_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_sort_i
        - i_memcpy
        - p_free_internal
        - sort_node_date_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:220,2'
          Dst:             array_sort_i
        - Src:             'index-sort.c:220,2'
          Dst:             sort_node_date_cmp
        - Src:             'index-sort.c:221,2'
          Dst:             i_memcpy
        - Src:             'index-sort.c:222,2'
          Dst:             p_free_internal
    - functionName:    index_sort_list_add_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - index_sort_program_set_date_failed
        - mail_get_date
        - mail_get_received_date
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:95,9'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:97,6'
          Dst:             mail_get_date
        - Src:             'index-sort.c:98,16'
          Dst:             index_sort_program_set_date_failed
        - Src:             'index-sort.c:100,7'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:101,17'
          Dst:             index_sort_program_set_date_failed
    - functionName:    index_sort_list_add_arrival
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - index_sort_program_set_date_failed
        - mail_get_received_date
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:81,9'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:83,6'
          Dst:             mail_get_received_date
        - Src:             'index-sort.c:84,16'
          Dst:             index_sort_program_set_date_failed
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    get_wanted_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          166
      EdgeCount:       29
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - i_unreached
        - mailbox_header_lookup_init
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-sort.c:321,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort.c:317,2'
          Dst:             pool_datastack_create
        - Src:             'index-sort.c:317,2'
          Dst:             array_create_i
        - Src:             'index-sort.c:327,4'
          Dst:             array_append_i
        - Src:             'index-sort.c:335,4'
          Dst:             array_append_i
        - Src:             'index-sort.c:342,4'
          Dst:             array_append_i
        - Src:             'index-sort.c:347,4'
          Dst:             array_append_i
        - Src:             'index-sort.c:359,4'
          Dst:             i_unreached
        - Src:             'index-sort.c:363,6'
          Dst:             array_count_i
        - Src:             'index-sort.c:366,3'
          Dst:             array_append_space_i
        - Src:             'index-sort.c:368,36'
          Dst:             array_idx_i
        - Src:             'index-sort.c:368,4'
          Dst:             mailbox_header_lookup_init
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    index_sort_program_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          295
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - get_wanted_fields
        - i_malloc
        - i_panic
        - i_unreached
        - index_sort_list_init_string
        - mail_alloc
        - mailbox_header_lookup_unref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-sort.c:405,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort.c:384,2'
          Dst:             get_wanted_fields
        - Src:             'index-sort.c:387,12'
          Dst:             malloc_multiply_check
        - Src:             'index-sort.c:387,12'
          Dst:             p_malloc
        - Src:             'index-sort.c:389,23'
          Dst:             mail_alloc
        - Src:             'index-sort.c:392,3'
          Dst:             mailbox_header_lookup_unref
        - Src:             'index-sort.c:403,3'
          Dst:             i_panic
        - Src:             'index-sort.c:410,11'
          Dst:             i_malloc
        - Src:             'index-sort.c:411,3'
          Dst:             array_create_i
        - Src:             'index-sort.c:425,11'
          Dst:             i_malloc
        - Src:             'index-sort.c:426,3'
          Dst:             array_create_i
        - Src:             'index-sort.c:440,3'
          Dst:             index_sort_list_init_string
        - Src:             'index-sort.c:445,11'
          Dst:             i_malloc
        - Src:             'index-sort.c:446,3'
          Dst:             array_create_i
        - Src:             'index-sort.c:455,11'
          Dst:             i_malloc
        - Src:             'index-sort.c:456,3'
          Dst:             array_create_i
        - Src:             'index-sort.c:463,3'
          Dst:             i_unreached
    - functionName:    index_sort_list_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:300,27'
          Dst:             array_count_i
        - Src:             'index-sort.c:303,9'
          Dst:             array_idx_i
    - functionName:    index_sort_list_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          211
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort.c:177,2'
          Dst:             i_panic
        - Src:             'index-sort.c:180,2'
          Dst:             i_panic
        - Src:             'index-sort.c:186,2'
          Dst:             t_push
        - Src:             'index-sort.c:188,4'
          Dst:             t_pop
        - Src:             'index-sort.c:188,4'
          Dst:             i_panic
        - Src:             'index-sort.c:194,3'
          Dst:             i_panic
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    get_metadata_precache_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          282
      EdgeCount:       81
      CyclomaticComplexity: 22
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_cache_register_get_list
        - pool_unref
        - str_begins_with
        - strcmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:214,11'
          Dst:             mail_cache_register_get_list
        - Src:             'index-status.c:218,7'
          Dst:             strncmp
        - Src:             'index-status.c:218,7'
          Dst:             str_begins_with
        - Src:             'index-status.c:219,7'
          Dst:             strcmp
        - Src:             'index-status.c:220,7'
          Dst:             strcmp
        - Src:             'index-status.c:222,12'
          Dst:             strcmp
        - Src:             'index-status.c:223,5'
          Dst:             strcmp
        - Src:             'index-status.c:224,5'
          Dst:             strcmp
        - Src:             'index-status.c:225,5'
          Dst:             strcmp
        - Src:             'index-status.c:226,5'
          Dst:             strcmp
        - Src:             'index-status.c:228,12'
          Dst:             strcmp
        - Src:             'index-status.c:230,12'
          Dst:             strcmp
        - Src:             'index-status.c:232,12'
          Dst:             strcmp
        - Src:             'index-status.c:234,12'
          Dst:             strcmp
        - Src:             'index-status.c:236,12'
          Dst:             strcmp
        - Src:             'index-status.c:238,12'
          Dst:             strcmp
        - Src:             'index-status.c:240,12'
          Dst:             strcmp
        - Src:             'index-status.c:242,12'
          Dst:             strcmp
        - Src:             'index-status.c:245,4'
          Dst:             event_want_level
        - Src:             'index-status.c:245,4'
          Dst:             e_debug
        - Src:             'index-status.c:245,4'
          Dst:             event_send_abort
        - Src:             'index-status.c:249,2'
          Dst:             pool_unref
    - functionName:    get_metadata_cache_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          109
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_create_i
        - mail_cache_register_get_list
        - malloc_multiply_check
        - pool_datastack_create
        - pool_unref
        - t_malloc0
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:189,11'
          Dst:             mail_cache_register_get_list
        - Src:             'index-status.c:191,17'
          Dst:             malloc_multiply_check
        - Src:             'index-status.c:191,17'
          Dst:             t_malloc0
        - Src:             'index-status.c:192,2'
          Dst:             pool_datastack_create
        - Src:             'index-status.c:192,2'
          Dst:             array_create_i
        - Src:             'index-status.c:196,9'
          Dst:             array_append_space_i
        - Src:             'index-status.c:197,15'
          Dst:             t_strdup
        - Src:             'index-status.c:203,2'
          Dst:             pool_unref
    - functionName:    index_mailbox_get_first_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_alloc
        - mail_free
        - mail_get_save_date
        - mail_index_get_header
        - mail_set_seq
        - mailbox_get_last_mail_error
        - mailbox_transaction_begin
        - mailbox_transaction_commit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:262,8'
          Dst:             mail_index_get_header
        - Src:             'index-status.c:268,6'
          Dst:             mailbox_transaction_begin
        - Src:             'index-status.c:269,9'
          Dst:             mail_alloc
        - Src:             'index-status.c:271,3'
          Dst:             mail_set_seq
        - Src:             'index-status.c:272,7'
          Dst:             mail_get_save_date
        - Src:             'index-status.c:276,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'index-status.c:281,2'
          Dst:             mail_free
        - Src:             'index-status.c:282,8'
          Dst:             mailbox_transaction_commit
    - functionName:    index_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          220
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - get_metadata_cache_fields
        - get_metadata_precache_fields
        - index_mailbox_get_first_save_date
        - index_mailbox_get_physical_size
        - index_mailbox_get_virtual_size
        - mailbox_list_get_namespace
        - mailbox_open
        - mailbox_sync
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:299,4'
          Dst:             mailbox_list_get_namespace
        - Src:             'index-status.c:307,7'
          Dst:             mailbox_open
        - Src:             'index-status.c:311,7'
          Dst:             mailbox_sync
        - Src:             'index-status.c:316,7'
          Dst:             index_mailbox_get_virtual_size
        - Src:             'index-status.c:320,7'
          Dst:             index_mailbox_get_physical_size
        - Src:             'index-status.c:324,7'
          Dst:             index_mailbox_get_first_save_date
        - Src:             'index-status.c:328,3'
          Dst:             get_metadata_cache_fields
        - Src:             'index-status.c:330,3'
          Dst:             get_metadata_precache_fields
    - functionName:    index_storage_find_first_pvt_unseen_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_get_header
        - mail_index_lookup
        - mail_index_lookup_first
        - mail_index_lookup_seq
        - mail_index_lookup_seq_range
        - mail_index_view_get_messages_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:68,14'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-status.c:69,2'
          Dst:             mail_index_lookup_first
        - Src:             'index-status.c:73,13'
          Dst:             mail_index_lookup
        - Src:             'index-status.c:75,7'
          Dst:             mail_index_lookup_seq
        - Src:             'index-status.c:80,12'
          Dst:             mail_index_get_header
        - Src:             'index-status.c:81,6'
          Dst:             mail_index_lookup_seq_range
    - functionName:    index_storage_count_pvt_unseen
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          131
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_lookup
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:41,17'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-status.c:42,14'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-status.c:45,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-status.c:46,13'
          Dst:             mail_index_lookup
    - functionName:    index_storage_get_open_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          430
      EdgeCount:       82
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - index_storage_count_pvt_unseen
        - index_storage_find_first_pvt_unseen_seq
        - index_sync_update_recent_count
        - mail_index_get_header
        - mail_index_get_keywords
        - mail_index_have_modseq_tracking
        - mail_index_is_in_memory
        - mail_index_lookup_first
        - mail_index_modseq_get_highest
        - mailbox_get_private_flags_mask
        - mailbox_is_readonly
        - mailbox_recent_flags_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:95,8'
          Dst:             mail_index_get_header
        - Src:             'index-status.c:102,4'
          Dst:             i_panic
        - Src:             'index-status.c:106,4'
          Dst:             index_sync_update_recent_count
        - Src:             'index-status.c:108,22'
          Dst:             mailbox_recent_flags_count
        - Src:             'index-status.c:109,3'
          Dst:             i_panic
        - Src:             'index-status.c:113,8'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-status.c:117,23'
          Dst:             index_storage_count_pvt_unseen
        - Src:             'index-status.c:128,4'
          Dst:             mail_index_is_in_memory
        - Src:             'index-status.c:130,5'
          Dst:             mail_index_have_modseq_tracking
        - Src:             'index-status.c:132,4'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-status.c:140,4'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-status.c:149,8'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-status.c:150,4'
          Dst:             mail_index_lookup_first
        - Src:             'index-status.c:154,5'
          Dst:             index_storage_find_first_pvt_unseen_seq
        - Src:             'index-status.c:166,24'
          Dst:             mail_index_get_keywords
        - Src:             'index-status.c:168,8'
          Dst:             mailbox_is_readonly
    - functionName:    index_storage_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - index_storage_get_open_status
        - mailbox_open
        - mailbox_sync
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-status.c:21,7'
          Dst:             mailbox_open
        - Src:             'index-status.c:23,7'
          Dst:             mailbox_sync
        - Src:             'index-status.c:26,2'
          Dst:             index_storage_get_open_status
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    sync_pvt_copy_shared_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup
        - mail_index_update_flags
        - mailbox_get_private_flags_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:76,8'
          Dst:             mail_index_lookup
        - Src:             'index-sync-pvt.c:78,16'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'index-sync-pvt.c:77,2'
          Dst:             mail_index_update_flags
    - functionName:    sync_pvt_copy_self_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_lookup
        - mail_index_lookup_keywords
        - mail_index_update_flags
        - mail_index_update_keywords
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:53,12'
          Dst:             mail_index_lookup
        - Src:             'index-sync-pvt.c:54,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'index-sync-pvt.c:56,3'
          Dst:             mail_index_update_flags
        - Src:             'index-sync-pvt.c:59,6'
          Dst:             array_count_i
        - Src:             'index-sync-pvt.c:62,8'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'index-sync-pvt.c:64,3'
          Dst:             mail_index_update_keywords
        - Src:             'index-sync-pvt.c:66,3'
          Dst:             mail_index_keywords_unref
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    sync_pvt_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          119
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_expunge
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:23,17'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-sync-pvt.c:24,14'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-sync-pvt.c:27,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync-pvt.c:28,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync-pvt.c:34,4'
          Dst:             mail_index_expunge
        - Src:             'index-sync-pvt.c:37,4'
          Dst:             mailbox_set_critical
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mailbox_sync_pvt_view
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          113
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - index_mailbox_sync_pvt_index
        - mail_index_lookup_seq_range
        - mail_index_view_sync_begin
        - mail_index_view_sync_commit
        - mail_index_view_sync_next
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:302,6'
          Dst:             index_mailbox_sync_pvt_index
        - Src:             'index-sync-pvt.c:309,18'
          Dst:             mail_index_view_sync_begin
        - Src:             'index-sync-pvt.c:310,9'
          Dst:             mail_index_view_sync_next
        - Src:             'index-sync-pvt.c:316,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-sync-pvt.c:320,5'
          Dst:             seq_range_array_add_range
        - Src:             'index-sync-pvt.c:323,5'
          Dst:             seq_range_array_add_range
        - Src:             'index-sync-pvt.c:328,6'
          Dst:             mail_index_view_sync_commit
    - functionName:    index_mailbox_sync_pvt_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          375
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - array_create_i
        - e_info
        - index_mailbox_sync_open
        - mail_index_append
        - mail_index_get_header
        - mail_index_lookup_seq
        - mail_index_lookup_seq_range
        - mail_index_lookup_uid
        - mail_index_reset
        - mail_index_sync_commit
        - mail_index_update_flags
        - mail_index_update_header
        - mail_index_view_get_messages_count
        - mailbox_set_index_error
        - pool_datastack_create
        - sync_pvt_copy_self_flags
        - sync_pvt_copy_shared_flags
        - sync_pvt_expunges
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:166,14'
          Dst:             index_mailbox_sync_open
        - Src:             'index-sync-pvt.c:169,12'
          Dst:             mail_index_get_header
        - Src:             'index-sync-pvt.c:170,15'
          Dst:             mail_index_get_header
        - Src:             'index-sync-pvt.c:175,7'
          Dst:             sync_pvt_expunges
        - Src:             'index-sync-pvt.c:178,4'
          Dst:             pool_datastack_create
        - Src:             'index-sync-pvt.c:178,4'
          Dst:             array_create_i
        - Src:             'index-sync-pvt.c:187,3'
          Dst:             e_info
        - Src:             'index-sync-pvt.c:196,17'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-sync-pvt.c:198,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-sync-pvt.c:207,4'
          Dst:             mail_index_reset
        - Src:             'index-sync-pvt.c:208,3'
          Dst:             mail_index_update_header
        - Src:             'index-sync-pvt.c:217,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync-pvt.c:218,3'
          Dst:             mail_index_append
        - Src:             'index-sync-pvt.c:220,7'
          Dst:             mail_index_lookup_seq
        - Src:             'index-sync-pvt.c:222,4'
          Dst:             sync_pvt_copy_self_flags
        - Src:             'index-sync-pvt.c:225,4'
          Dst:             sync_pvt_copy_shared_flags
        - Src:             'index-sync-pvt.c:232,5'
          Dst:             mail_index_update_flags
        - Src:             'index-sync-pvt.c:240,3'
          Dst:             mail_index_update_header
        - Src:             'index-sync-pvt.c:246,13'
          Dst:             mail_index_sync_commit
        - Src:             'index-sync-pvt.c:247,3'
          Dst:             mailbox_set_index_error
    - functionName:    index_mailbox_sync_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          141
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - index_mailbox_sync_view_refresh
        - mail_index_get_header
        - mail_index_sync_begin
        - mailbox_set_index_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:100,6'
          Dst:             index_mailbox_sync_view_refresh
        - Src:             'index-sync-pvt.c:103,15'
          Dst:             mail_index_get_header
        - Src:             'index-sync-pvt.c:109,12'
          Dst:             mail_index_get_header
        - Src:             'index-sync-pvt.c:115,6'
          Dst:             mail_index_sync_begin
        - Src:             'index-sync-pvt.c:117,3'
          Dst:             mailbox_set_index_error
        - Src:             'index-sync-pvt.c:121,6'
          Dst:             index_mailbox_sync_view_refresh
    - functionName:    index_mailbox_sync_view_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_set_index_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:85,6'
          Dst:             mail_index_refresh
        - Src:             'index-sync-pvt.c:86,6'
          Dst:             mail_index_refresh
        - Src:             'index-sync-pvt.c:87,3'
          Dst:             mailbox_set_index_error
        - Src:             'index-sync-pvt.c:90,2'
          Dst:             mail_index_view_close
        - Src:             'index-sync-pvt.c:91,21'
          Dst:             mail_index_view_open
    - functionName:    mail_save_private_changes_mailnum_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    index_mailbox_sync_pvt_newmails
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     externalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_modifiable_i
        - array_sort_i
        - index_mailbox_sync_pvt_index
        - index_mailbox_sync_view_refresh
        - mail_save_private_changes_mailnum_cmp
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:270,6'
          Dst:             index_mailbox_sync_view_refresh
        - Src:             'index-sync-pvt.c:274,16'
          Dst:             array_get_modifiable_i
        - Src:             'index-sync-pvt.c:277,2'
          Dst:             seq_range_array_iter_init
        - Src:             'index-sync-pvt.c:278,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'index-sync-pvt.c:286,2'
          Dst:             array_sort_i
        - Src:             'index-sync-pvt.c:286,2'
          Dst:             mail_save_private_changes_mailnum_cmp
        - Src:             'index-sync-pvt.c:289,9'
          Dst:             index_mailbox_sync_pvt_index
    - functionName:    index_mailbox_sync_pvt_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     externalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_sync_rollback
        - mail_index_view_close
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:340,3'
          Dst:             mail_index_sync_rollback
        - Src:             'index-sync-pvt.c:341,2'
          Dst:             mail_index_view_close
        - Src:             'index-sync-pvt.c:342,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mailbox_sync_pvt_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-pvt.c'
      linkageType:     externalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_sync_open
        - index_mailbox_sync_pvt_deinit
        - mailbox_open_index_pvt
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-pvt.c:135,13'
          Dst:             mailbox_open_index_pvt
        - Src:             'index-sync-pvt.c:138,8'
          Dst:             malloc_multiply_check
        - Src:             'index-sync-pvt.c:138,8'
          Dst:             p_malloc
        - Src:             'index-sync-pvt.c:142,7'
          Dst:             index_mailbox_sync_open
        - Src:             'index-sync-pvt.c:143,4'
          Dst:             index_mailbox_sync_pvt_deinit
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_storage_list_index_update_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - index_list_get_ext_id
        - mail_index_is_in_memory
        - mail_index_lookup_ext
        - mail_index_transaction_get_view
        - mail_index_update_ext
        - mail_index_view_get_index
        - mailbox_get_path_to
        - mailbox_set_critical
        - memcmp
        - stat
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:531,14'
          Dst:             mail_index_transaction_get_view
        - Src:             'index-sync.c:532,30'
          Dst:             mail_index_view_get_index
        - Src:             'index-sync.c:532,6'
          Dst:             mail_index_is_in_memory
        - Src:             'index-sync.c:536,11'
          Dst:             index_list_get_ext_id
        - Src:             'index-sync.c:537,2'
          Dst:             mail_index_lookup_ext
        - Src:             'index-sync.c:542,8'
          Dst:             mailbox_get_path_to
        - Src:             'index-sync.c:545,2'
          Dst:             i_panic
        - Src:             'index-sync.c:547,9'
          Dst:             t_strconcat
        - Src:             'index-sync.c:548,6'
          Dst:             stat
        - Src:             'index-sync.c:549,3'
          Dst:             mailbox_set_critical
        - Src:             'index-sync.c:558,6'
          Dst:             memcmp
        - Src:             'index-sync.c:559,3'
          Dst:             mail_index_update_ext
    - functionName:    index_list_get_ext_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_ext_register
        - mail_index_view_get_index
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:420,39'
          Dst:             module_context_get_require
        - Src:             'index-sync.c:424,28'
          Dst:             mail_index_view_get_index
        - Src:             'index-sync.c:424,4'
          Dst:             mail_index_ext_register
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    index_storage_list_index_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - index_storage_list_index_has_changed_full
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-sync.c:506,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sync.c:506,10'
          Dst:             index_storage_list_index_has_changed_full
    - functionName:    index_storage_list_index_has_changed_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          233
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - i_panic
        - index_list_get_ext_id
        - mail_index_is_in_memory
        - mail_index_lookup_ext
        - mail_index_view_get_index
        - mailbox_get_path_to
        - mailbox_set_critical
        - stat
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:447,30'
          Dst:             mail_index_view_get_index
        - Src:             'index-sync.c:447,6'
          Dst:             mail_index_is_in_memory
        - Src:             'index-sync.c:452,11'
          Dst:             index_list_get_ext_id
        - Src:             'index-sync.c:453,2'
          Dst:             mail_index_lookup_ext
        - Src:             'index-sync.c:472,8'
          Dst:             mailbox_get_path_to
        - Src:             'index-sync.c:475,2'
          Dst:             i_panic
        - Src:             'index-sync.c:477,9'
          Dst:             t_strconcat
        - Src:             'index-sync.c:478,6'
          Dst:             stat
        - Src:             'index-sync.c:479,7'
          Dst:             __errno_location
        - Src:             'index-sync.c:480,16'
          Dst:             t_strdup_printf
        - Src:             'index-sync.c:483,3'
          Dst:             mailbox_set_critical
        - Src:             'index-sync.c:488,15'
          Dst:             t_strdup_printf
        - Src:             'index-sync.c:494,15'
          Dst:             t_strdup_printf
    - functionName:    index_sync_type_convert
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_keyword_array_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          159
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_get_i
        - array_is_created_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:377,7'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:378,11'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:378,35'
          Dst:             array_count_i
        - Src:             'index-sync.c:379,7'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:380,10'
          Dst:             array_count_i
        - Src:             'index-sync.c:384,9'
          Dst:             array_get_i
        - Src:             'index-sync.c:385,9'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    index_mailbox_expunge_unseen_recent
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          171
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_is_created_i
        - i_panic
        - mail_index_get_header
        - mail_index_lookup_uid
        - mail_index_view_is_inconsistent
        - seq_range_array_remove_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:223,7'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:230,8'
          Dst:             mail_index_get_header
        - Src:             'index-sync.c:234,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync.c:236,3'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'index-sync.c:236,3'
          Dst:             i_panic
        - Src:             'index-sync.c:242,3'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync.c:247,4'
          Dst:             seq_range_array_remove_range
        - Src:             'index-sync.c:253,4'
          Dst:             seq_range_array_remove_range
    - functionName:    index_mailbox_sync_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:306,6'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:307,3'
          Dst:             array_free_i
        - Src:             'index-sync.c:308,6'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:309,3'
          Dst:             array_free_i
        - Src:             'index-sync.c:310,6'
          Dst:             array_is_created_i
        - Src:             'index-sync.c:311,3'
          Dst:             array_free_i
        - Src:             'index-sync.c:312,2'
          Dst:             p_free_internal
    - functionName:    index_mailbox_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          175
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - index_mailbox_expunge_unseen_recent
        - index_mailbox_sync_free
        - index_mailbox_sync_next_expunge
        - index_mailbox_vsize_update_appends
        - index_sync_search_results_uidify
        - index_sync_search_results_update
        - index_sync_update_recent_count
        - mail_index_view_is_inconsistent
        - mail_index_view_sync_commit
        - mailbox_set_index_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:326,9'
          Dst:             index_mailbox_sync_next_expunge
        - Src:             'index-sync.c:329,2'
          Dst:             index_sync_search_results_uidify
        - Src:             'index-sync.c:332,7'
          Dst:             mail_index_view_sync_commit
        - Src:             'index-sync.c:334,4'
          Dst:             mailbox_set_index_error
        - Src:             'index-sync.c:339,3'
          Dst:             index_mailbox_sync_free
        - Src:             'index-sync.c:342,2'
          Dst:             index_mailbox_expunge_unseen_recent
        - Src:             'index-sync.c:347,3'
          Dst:             index_sync_update_recent_count
        - Src:             'index-sync.c:354,2'
          Dst:             index_sync_search_results_update
        - Src:             'index-sync.c:356,2'
          Dst:             index_mailbox_vsize_update_appends
        - Src:             'index-sync.c:358,18'
          Dst:             mail_index_view_is_inconsistent
        - Src:             'index-sync.c:363,3'
          Dst:             mailbox_set_index_error
        - Src:             'index-sync.c:367,2'
          Dst:             index_mailbox_sync_free
    - functionName:    index_mailbox_sync_next_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          108
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_i
        - i_panic
        - mailbox_recent_flags_expunge_seqs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:169,10'
          Dst:             array_idx_i
        - Src:             'index-sync.c:170,2'
          Dst:             i_panic
        - Src:             'index-sync.c:172,2'
          Dst:             mailbox_recent_flags_expunge_seqs
    - functionName:    index_sync_update_recent_count
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          122
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_get_header
        - mail_index_lookup_seq_range
        - mailbox_recent_flags_reset
        - mailbox_recent_flags_set_seqs
        - mailbox_set_critical
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:277,39'
          Dst:             module_context_get_require
        - Src:             'index-sync.c:281,8'
          Dst:             mail_index_get_header
        - Src:             'index-sync.c:283,3'
          Dst:             mailbox_set_critical
        - Src:             'index-sync.c:287,3'
          Dst:             mailbox_recent_flags_reset
        - Src:             'index-sync.c:294,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-sync.c:298,4'
          Dst:             mailbox_recent_flags_set_seqs
    - functionName:    index_mailbox_sync_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          146
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - index_mailbox_sync_next_expunge
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:192,10'
          Dst:             array_get_i
        - Src:             'index-sync.c:202,11'
          Dst:             array_get_i
        - Src:             'index-sync.c:212,9'
          Dst:             index_mailbox_sync_next_expunge
    - functionName:    index_view_sync_cleanup_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - seq_range_array_remove_seq_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:91,3'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'index-sync.c:93,3'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'index-sync.c:97,2'
          Dst:             seq_range_array_remove_seq_range
    - functionName:    index_view_sync_recs_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - mail_index_lookup_seq_range
        - mail_index_view_sync_next
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-sync.c:64,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sync.c:61,2'
          Dst:             array_create_i
        - Src:             'index-sync.c:62,2'
          Dst:             array_create_i
        - Src:             'index-sync.c:63,9'
          Dst:             mail_index_view_sync_next
        - Src:             'index-sync.c:67,9'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-sync.c:75,5'
          Dst:             seq_range_array_add_range
        - Src:             'index-sync.c:78,5'
          Dst:             seq_range_array_add_range
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_mailbox_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          176
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - index_mailbox_sync_pvt_deinit
        - index_mailbox_sync_pvt_init
        - index_mailbox_sync_pvt_view
        - index_sync_search_results_expunge
        - index_view_sync_cleanup_updates
        - index_view_sync_recs_get
        - mail_index_refresh
        - mail_index_view_get_messages_count
        - mail_index_view_sync_begin
        - mail_index_view_sync_get_expunges
        - malloc_multiply_check
        - p_malloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:109,8'
          Dst:             malloc_multiply_check
        - Src:             'index-sync.c:109,8'
          Dst:             p_malloc
        - Src:             'index-sync.c:126,4'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-sync.c:132,9'
          Dst:             mail_index_refresh
        - Src:             'index-sync.c:134,18'
          Dst:             mail_index_view_sync_begin
        - Src:             'index-sync.c:136,3'
          Dst:             mail_index_view_sync_get_expunges
        - Src:             'index-sync.c:138,22'
          Dst:             array_count_i
        - Src:             'index-sync.c:140,2'
          Dst:             index_view_sync_recs_get
        - Src:             'index-sync.c:141,2'
          Dst:             index_sync_search_results_expunge
        - Src:             'index-sync.c:147,6'
          Dst:             index_mailbox_sync_pvt_init
        - Src:             'index-sync.c:148,9'
          Dst:             index_mailbox_sync_pvt_view
        - Src:             'index-sync.c:150,3'
          Dst:             index_mailbox_sync_pvt_deinit
        - Src:             'index-sync.c:153,2'
          Dst:             index_view_sync_cleanup_updates
    - functionName:    index_mailbox_want_full_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - module_context_get_require
        - timeout_reset
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync.c:33,39'
          Dst:             module_context_get_require
        - Src:             'index-sync.c:51,3'
          Dst:             timeout_reset
    - functionName:    index_storage_get_sync_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_thread_root_node_idx_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_thread_root_thread_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          303
      EdgeCount:       44
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_count_i
        - array_get_modifiable_i
        - array_idx_modifiable_i
        - i_panic
        - thread_add_shadow_child
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:277,2'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:281,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:284,3'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:287,2'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:289,12'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-finish.c:295,3'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:300,4'
          Dst:             thread_add_shadow_child
        - Src:             'index-thread-finish.c:317,3'
          Dst:             thread_add_shadow_child
        - Src:             'index-thread-finish.c:325,24'
          Dst:             array_count_i
        - Src:             'index-thread-finish.c:329,3'
          Dst:             thread_add_shadow_child
        - Src:             'index-thread-finish.c:330,3'
          Dst:             thread_add_shadow_child
        - Src:             'index-thread-finish.c:337,3'
          Dst:             array_append_i
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    thread_add_shadow_child
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_get_space_i
        - array_idx_modifiable_i
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:262,18'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread-finish.c:263,17'
          Dst:             array_idx_modifiable_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    add_base_subject
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          146
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - hash_table_insert
        - hash_table_lookup_full
        - hash_table_update
        - imap_get_base_subject_cased
        - p_strdup
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:72,40'
          Dst:             pool_datastack_create
        - Src:             'index-thread-finish.c:72,12'
          Dst:             imap_get_base_subject_cased
        - Src:             'index-thread-finish.c:80,7'
          Dst:             hash_table_lookup_full
        - Src:             'index-thread-finish.c:85,18'
          Dst:             p_strdup
        - Src:             'index-thread-finish.c:86,3'
          Dst:             hash_table_insert
        - Src:             'index-thread-finish.c:102,4'
          Dst:             hash_table_update
    - functionName:    mail_thread_child_node_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    thread_lookup_existing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_i
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:137,9'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:138,2'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:139,2'
          Dst:             i_panic
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    10
      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-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_thread_root_node_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_thread_child_node_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:129,9'
          Dst:             mail_thread_child_node_cmp
    - functionName:    thread_child_node_fill
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_unreached
        - mail_get_date
        - mail_get_received_date
        - mail_set_uid
        - thread_lookup_existing
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:149,15'
          Dst:             thread_lookup_existing
        - Src:             'index-thread-finish.c:151,7'
          Dst:             mail_set_uid
        - Src:             'index-thread-finish.c:154,3'
          Dst:             i_unreached
        - Src:             'index-thread-finish.c:160,11'
          Dst:             mail_get_date
        - Src:             'index-thread-finish.c:165,9'
          Dst:             mail_get_received_date
    - functionName:    thread_sort_children
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_get_i
        - array_sort_i
        - i_panic
        - mail_thread_child_node_cmp
        - thread_child_node_fill
        - thread_lookup_existing
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:178,2'
          Dst:             array_clear_i
        - Src:             'index-thread-finish.c:181,12'
          Dst:             array_get_i
        - Src:             'index-thread-finish.c:183,2'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:186,15'
          Dst:             thread_lookup_existing
        - Src:             'index-thread-finish.c:188,3'
          Dst:             array_append_i
        - Src:             'index-thread-finish.c:192,3'
          Dst:             thread_child_node_fill
        - Src:             'index-thread-finish.c:194,3'
          Dst:             array_append_i
        - Src:             'index-thread-finish.c:199,2'
          Dst:             array_sort_i
        - Src:             'index-thread-finish.c:199,2'
          Dst:             mail_thread_child_node_cmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    sort_root_nodes_ref2
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          201
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_modifiable_i
        - array_idx_i
        - array_sort_i
        - bsearch
        - i_panic
        - mail_thread_root_node_cmp
        - mail_thread_root_node_idx_cmp
        - thread_child_node_fill
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:421,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:424,12'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:432,10'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:437,3'
          Dst:             thread_child_node_fill
        - Src:             'index-thread-finish.c:442,11'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:445,10'
          Dst:             bsearch
        - Src:             'index-thread-finish.c:445,10'
          Dst:             mail_thread_root_node_idx_cmp
        - Src:             'index-thread-finish.c:447,3'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:452,2'
          Dst:             array_sort_i
        - Src:             'index-thread-finish.c:452,2'
          Dst:             mail_thread_root_node_cmp
    - functionName:    merge_subject_threads
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_modifiable_i
        - array_idx_modifiable_i
        - mail_thread_root_thread_merge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:347,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:350,4'
          Dst:             mail_thread_root_thread_merge
        - Src:             'index-thread-finish.c:352,12'
          Dst:             array_idx_modifiable_i
    - functionName:    gather_base_subjects
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          219
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - add_base_subject
        - array_create_i
        - array_free_i
        - array_get_modifiable_i
        - array_idx_i
        - hash_table_create
        - hash_table_destroy
        - i_panic
        - i_unreached
        - mail_get_first_header
        - mail_set_uid
        - nearest_power
        - pool_alloconly_create
        - pool_unref
        - str_hash
        - strcmp
        - t_pop
        - t_push
        - thread_lookup_existing
        - thread_sort_children
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:215,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:220,11'
          Dst:             nearest_power
        - Src:             'index-thread-finish.c:219,3'
          Dst:             pool_alloconly_create
        - Src:             'index-thread-finish.c:221,2'
          Dst:             hash_table_create
        - Src:             'index-thread-finish.c:221,2'
          Dst:             str_hash
        - Src:             'index-thread-finish.c:221,2'
          Dst:             strcmp
        - Src:             'index-thread-finish.c:224,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:231,4'
          Dst:             thread_sort_children
        - Src:             'index-thread-finish.c:233,15'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:240,9'
          Dst:             thread_lookup_existing
        - Src:             'index-thread-finish.c:241,8'
          Dst:             mail_set_uid
        - Src:             'index-thread-finish.c:244,4'
          Dst:             i_unreached
        - Src:             'index-thread-finish.c:246,7'
          Dst:             mail_get_first_header
        - Src:             'index-thread-finish.c:247,23'
          Dst:             t_push
        - Src:             'index-thread-finish.c:248,4'
          Dst:             add_base_subject
        - Src:             'index-thread-finish.c:249,5'
          Dst:             t_pop
        - Src:             'index-thread-finish.c:249,5'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:251,2'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:252,2'
          Dst:             array_free_i
        - Src:             'index-thread-finish.c:253,2'
          Dst:             hash_table_destroy
        - Src:             'index-thread-finish.c:254,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    6
      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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    sort_root_nodes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          182
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - array_free_i
        - array_get_i
        - array_get_modifiable_i
        - array_idx_i
        - array_sort_i
        - mail_thread_root_node_cmp
        - thread_child_node_fill
        - thread_sort_children
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:368,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:369,12'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:370,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:381,4'
          Dst:             thread_sort_children
        - Src:             'index-thread-finish.c:383,15'
          Dst:             array_get_i
        - Src:             'index-thread-finish.c:388,5'
          Dst:             thread_child_node_fill
        - Src:             'index-thread-finish.c:395,4'
          Dst:             thread_child_node_fill
        - Src:             'index-thread-finish.c:398,2'
          Dst:             array_free_i
        - Src:             'index-thread-finish.c:399,2'
          Dst:             array_sort_i
        - Src:             'index-thread-finish.c:399,2'
          Dst:             mail_thread_root_node_cmp
    - functionName:    mail_thread_create_shadows
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          183
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_idx_i
        - i_panic
        - thread_add_shadow_child
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:474,10'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:486,4'
          Dst:             array_append_i
        - Src:             'index-thread-finish.c:489,3'
          Dst:             i_panic
        - Src:             'index-thread-finish.c:500,12'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:504,13'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:507,3'
          Dst:             thread_add_shadow_child
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    mail_thread_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:671,3'
          Dst:             array_free_i
        - Src:             'index-thread-finish.c:672,3'
          Dst:             array_free_i
        - Src:             'index-thread-finish.c:673,3'
          Dst:             p_free_internal
        - Src:             'index-thread-finish.c:675,2'
          Dst:             array_free_i
        - Src:             'index-thread-finish.c:676,2'
          Dst:             p_free_internal
    - functionName:    mail_thread_iterate_count
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:661,9'
          Dst:             array_count_i
    - functionName:    mail_thread_iterate_children
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - event_reason_begin
        - event_reason_end
        - malloc_multiply_check
        - nodes_change_uids_to_seqs
        - p_malloc
        - thread_sort_children
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:595,15'
          Dst:             malloc_multiply_check
        - Src:             'index-thread-finish.c:595,15'
          Dst:             p_malloc
        - Src:             'index-thread-finish.c:599,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:600,32'
          Dst:             event_reason_begin
        - Src:             'index-thread-finish.c:601,2'
          Dst:             thread_sort_children
        - Src:             'index-thread-finish.c:604,3'
          Dst:             nodes_change_uids_to_seqs
        - Src:             'index-thread-finish.c:605,2'
          Dst:             event_reason_end
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    nodes_change_uids_to_seqs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - i_unreached
        - mailbox_get_seq_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:556,13'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:563,4'
          Dst:             i_unreached
        - Src:             'index-thread-finish.c:565,4'
          Dst:             mailbox_get_seq_range
        - Src:             'index-thread-finish.c:566,4'
          Dst:             i_panic
    - functionName:    mail_thread_iterate_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          106
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_idx_i
        - mail_thread_iterate_children
        - mail_thread_iterate_next
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:643,13'
          Dst:             array_get_i
        - Src:             'index-thread-finish.c:648,11'
          Dst:             array_idx_i
        - Src:             'index-thread-finish.c:650,3'
          Dst:             mail_thread_iterate_children
        - Src:             'index-thread-finish.c:654,10'
          Dst:             mail_thread_iterate_next
    - functionName:    mail_thread_iterate_fill_root
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_modifiable_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:578,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-thread-finish.c:579,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:584,4'
          Dst:             array_append_i
    - functionName:    mail_thread_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_create_i
        - array_idx_get_space_i
        - gather_base_subjects
        - i_unreached
        - mail_thread_create_shadows
        - merge_subject_threads
        - sort_root_nodes
        - sort_root_nodes_ref2
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-thread-finish.c:528,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-thread-finish.c:514,30'
          Dst:             array_count_i
        - Src:             'index-thread-finish.c:519,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:520,2'
          Dst:             array_create_i
        - Src:             'index-thread-finish.c:522,8'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread-finish.c:524,2'
          Dst:             mail_thread_create_shadows
        - Src:             'index-thread-finish.c:530,3'
          Dst:             sort_root_nodes
        - Src:             'index-thread-finish.c:533,3'
          Dst:             gather_base_subjects
        - Src:             'index-thread-finish.c:535,7'
          Dst:             merge_subject_threads
        - Src:             'index-thread-finish.c:537,4'
          Dst:             sort_root_nodes
        - Src:             'index-thread-finish.c:541,3'
          Dst:             sort_root_nodes_ref2
        - Src:             'index-thread-finish.c:544,3'
          Dst:             i_unreached
    - functionName:    mail_thread_iterate_init_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-finish.c'
      linkageType:     externalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - mail_thread_finish
        - mail_thread_iterate_fill_root
        - malloc_multiply_check
        - nodes_change_uids_to_seqs
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-finish.c:618,9'
          Dst:             malloc_multiply_check
        - Src:             'index-thread-finish.c:618,9'
          Dst:             p_malloc
        - Src:             'index-thread-finish.c:619,20'
          Dst:             malloc_multiply_check
        - Src:             'index-thread-finish.c:619,20'
          Dst:             p_malloc
        - Src:             'index-thread-finish.c:625,32'
          Dst:             event_reason_begin
        - Src:             'index-thread-finish.c:626,2'
          Dst:             mail_thread_finish
        - Src:             'index-thread-finish.c:628,2'
          Dst:             mail_thread_iterate_fill_root
        - Src:             'index-thread-finish.c:630,3'
          Dst:             nodes_change_uids_to_seqs
        - Src:             'index-thread-finish.c:631,2'
          Dst:             event_reason_end
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    thread_node_has_ancestor
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:40,10'
          Dst:             array_idx_i
    - functionName:    mail_thread_unref_link
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:180,11'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:184,10'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:185,2'
          Dst:             i_panic
    - functionName:    mail_thread_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          214
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
        - mail_thread_unref_link
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:204,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:214,9'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:219,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:226,9'
          Dst:             mail_thread_unref_link
        - Src:             'index-thread-links.c:232,8'
          Dst:             mail_thread_unref_link
    - functionName:    thread_link_reference
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          198
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - array_idx_get_space_i
        - array_idx_modifiable_i
        - i_panic
        - thread_node_has_ancestor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:51,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:57,12'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread-links.c:58,11'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:60,11'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread-links.c:61,12'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:65,6'
          Dst:             thread_node_has_ancestor
        - Src:             'index-thread-links.c:86,4'
          Dst:             i_panic
        - Src:             'index-thread-links.c:87,11'
          Dst:             array_idx_modifiable_i
    - functionName:    thread_link_references
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - thread_link_reference
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:137,3'
          Dst:             thread_link_reference
        - Src:             'index-thread-links.c:141,2'
          Dst:             i_panic
    - functionName:    thread_msg_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_get_space_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:14,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:15,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:17,9'
          Dst:             array_idx_get_space_i
        - Src:             'index-thread-links.c:26,10'
          Dst:             array_idx_get_space_i
    - functionName:    mail_thread_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-thread-links.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_modifiable_i
        - i_panic
        - thread_link_reference
        - thread_link_references
        - thread_msg_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-thread-links.c:152,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:153,2'
          Dst:             i_panic
        - Src:             'index-thread-links.c:157,8'
          Dst:             thread_msg_add
        - Src:             'index-thread-links.c:158,15'
          Dst:             thread_link_references
        - Src:             'index-thread-links.c:161,9'
          Dst:             array_idx_modifiable_i
        - Src:             'index-thread-links.c:170,3'
          Dst:             thread_link_reference
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_cache_handler_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-sync-update.c:31,14'
          Dst:             malloc_multiply_check
        - Src:             'mail-cache-sync-update.c:31,14'
          Dst:             p_malloc
    - functionName:    mail_cache_handler_deinit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_cache_expunge_count
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-sync-update.c:45,2'
          Dst:             mail_cache_expunge_count
        - Src:             'mail-cache-sync-update.c:47,2'
          Dst:             p_free_internal
    - functionName:    mail_cache_expunge_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_flush_and_unlock
        - mail_cache_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-sync-update.c:13,6'
          Dst:             mail_cache_lock
        - Src:             'mail-cache-sync-update.c:20,9'
          Dst:             mail_cache_flush_and_unlock
    - functionName:    mail_cache_expunge_handler
      functionSourceFile: '/src/dovecot/src/lib-index/mail-cache-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_handler_deinit
        - mail_cache_handler_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-cache-sync-update.c:57,3'
          Dst:             mail_cache_handler_deinit
        - Src:             'mail-cache-sync-update.c:65,8'
          Dst:             mail_cache_handler_init
    - functionName:    mail_storage_copy_can_use_hardlink
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_get_permissions
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-copy.c:112,3'
          Dst:             mailbox_get_permissions
        - Src:             'mail-copy.c:114,3'
          Dst:             mailbox_get_permissions
    - functionName:    mail_storage_try_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read
        - mail_copy_set_failed
        - mail_get_stream_because
        - mail_save_copy_default_metadata
        - mailbox_save_begin
        - mailbox_save_continue
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-copy.c:69,6'
          Dst:             mail_get_stream_because
        - Src:             'mail-copy.c:70,3'
          Dst:             mail_copy_set_failed
        - Src:             'mail-copy.c:73,6'
          Dst:             mail_save_copy_default_metadata
        - Src:             'mail-copy.c:76,6'
          Dst:             mailbox_save_begin
        - Src:             'mail-copy.c:81,7'
          Dst:             mailbox_save_continue
        - Src:             'mail-copy.c:83,9'
          Dst:             i_stream_read
        - Src:             'mail-copy.c:84,3'
          Dst:             i_panic
        - Src:             'mail-copy.c:90,4'
          Dst:             i_stream_get_name
        - Src:             'mail-copy.c:90,30'
          Dst:             i_stream_get_error
        - Src:             'mail-copy.c:88,3'
          Dst:             mailbox_set_critical
    - functionName:    mail_copy_set_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_storage_get_last_error
        - mail_storage_set_error
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-copy.c:18,11'
          Dst:             mail_storage_get_last_error
        - Src:             'mail-copy.c:20,11'
          Dst:             t_strdup_printf
        - Src:             'mail-copy.c:19,2'
          Dst:             mail_storage_set_error
    - functionName:    mail_save_copy_default_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          135
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - mail_copy_set_failed
        - mail_get_received_date
        - mail_get_special
        - mailbox_save_set_from_envelope
        - mailbox_save_set_guid
        - mailbox_save_set_received_date
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-copy.c:30,7'
          Dst:             mail_get_received_date
        - Src:             'mail-copy.c:31,4'
          Dst:             mail_copy_set_failed
        - Src:             'mail-copy.c:34,3'
          Dst:             mailbox_save_set_received_date
        - Src:             'mail-copy.c:37,7'
          Dst:             mail_get_special
        - Src:             'mail-copy.c:39,4'
          Dst:             mail_copy_set_failed
        - Src:             'mail-copy.c:43,4'
          Dst:             mailbox_save_set_from_envelope
        - Src:             'mail-copy.c:46,7'
          Dst:             mail_get_special
        - Src:             'mail-copy.c:47,4'
          Dst:             mail_copy_set_failed
        - Src:             'mail-copy.c:51,4'
          Dst:             mailbox_save_set_guid
    - functionName:    mail_storage_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_storage_try_copy
        - mailbox_save_cancel
        - mailbox_save_finish
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-copy.c:98,2'
          Dst:             i_panic
        - Src:             'mail-copy.c:100,6'
          Dst:             mail_storage_try_copy
        - Src:             'mail-copy.c:102,4'
          Dst:             mailbox_save_cancel
        - Src:             'mail-copy.c:105,9'
          Dst:             mailbox_save_finish
    - functionName:    mail_error_create_eacces_msg
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eacces_error_get_creating
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-error.c:36,9'
          Dst:             eacces_error_get_creating
    - functionName:    mail_error_eacces_msg
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eacces_error_get
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-error.c:31,9'
          Dst:             eacces_error_get
    - functionName:    mail_error_from_errno
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          126
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-error.c:10,6'
          Dst:             __errno_location
        - Src:             'mail-error.c:10,25'
          Dst:             __errno_location
        - Src:             'mail-error.c:13,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:16,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:19,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:19,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:19,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:19,13'
          Dst:             __errno_location
        - Src:             'mail-error.c:21,21'
          Dst:             __errno_location
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    dummy_view_get_message_count
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-dummy-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dummy_view_close
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-dummy-view.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - i_panic
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-dummy-view.c:10,2'
          Dst:             i_panic
        - Src:             'mail-index-dummy-view.c:12,2'
          Dst:             array_free_i
        - Src:             'mail-index-dummy-view.c:13,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_dummy_view_open
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-dummy-view.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-dummy-view.c:40,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-dummy-view.c:40,9'
          Dst:             p_malloc
        - Src:             'mail-index-dummy-view.c:44,2'
          Dst:             array_create_i
    - functionName:    mail_index_read_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:121,9'
          Dst:             pread
    - functionName:    mail_index_try_read_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          564
      EdgeCount:       91
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_create_dynamic
        - buffer_get_modifiable_data
        - buffer_set_used_size
        - i_panic
        - mail_index_check_header_compat
        - mail_index_hdr_check_indexid
        - mail_index_map_copy_hdr
        - mail_index_read_header
        - mail_index_set_error
        - mail_index_set_syscall_error
        - pread_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:145,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:148,8'
          Dst:             mail_index_read_header
        - Src:             'mail-index-map-read.c:159,8'
          Dst:             mail_index_check_header_compat
        - Src:             'mail-index-map-read.c:161,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:165,8'
          Dst:             mail_index_hdr_check_indexid
        - Src:             'mail-index-map-read.c:173,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-map-read.c:174,3'
          Dst:             buffer_append
        - Src:             'mail-index-map-read.c:178,11'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-map-read.c:181,10'
          Dst:             pread_full
        - Src:             'mail-index-map-read.c:193,3'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:200,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:208,5'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-map-read.c:213,3'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-map-read.c:218,4'
          Dst:             buffer_append
        - Src:             'mail-index-map-read.c:223,11'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-map-read.c:225,10'
          Dst:             pread_full
        - Src:             'mail-index-map-read.c:231,7'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:236,3'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-map-read.c:240,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:247,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-map-read.c:250,2'
          Dst:             mail_index_map_copy_hdr
        - Src:             'mail-index-map-read.c:251,2'
          Dst:             i_panic
    - functionName:    mail_index_map_copy_hdr
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:21,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_index_read_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          155
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fstat
        - mail_index_close_file
        - mail_index_set_syscall_error
        - mail_index_try_open_only
        - mail_index_try_read_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:270,10'
          Dst:             mail_index_try_read_map
        - Src:             'mail-index-map-read.c:277,3'
          Dst:             mail_index_close_file
        - Src:             'mail-index-map-read.c:279,23'
          Dst:             mail_index_try_open_only
        - Src:             'mail-index-map-read.c:283,5'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:284,5'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-map-read.c:289,7'
          Dst:             fstat
        - Src:             'mail-index-map-read.c:292,9'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:292,9'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:293,5'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_mmap
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          292
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - buffer_append
        - buffer_free
        - buffer_set_used_size
        - i_panic
        - mail_index_check_header_compat
        - mail_index_hdr_check_indexid
        - mail_index_map_copy_hdr
        - mail_index_set_error
        - mail_index_set_syscall_error
        - mmap
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:38,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:40,2'
          Dst:             buffer_free
        - Src:             'mail-index-map-read.c:43,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:48,23'
          Dst:             mmap
        - Src:             'mail-index-map-read.c:54,40'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-read.c:54,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-map-read.c:70,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:76,7'
          Dst:             mail_index_check_header_compat
        - Src:             'mail-index-map-read.c:78,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:82,7'
          Dst:             mail_index_hdr_check_indexid
        - Src:             'mail-index-map-read.c:86,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:93,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:99,2'
          Dst:             mail_index_map_copy_hdr
        - Src:             'mail-index-map-read.c:100,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-map-read.c:101,2'
          Dst:             buffer_append
    - functionName:    mail_index_map_latest_sync
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          194
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - mail_index_fsck
        - mail_index_map_latest_file
        - mail_index_reopen_if_changed
        - mail_index_set_error
        - mail_index_sync_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:432,8'
          Dst:             mail_index_sync_map
        - Src:             'mail-index-map-read.c:443,9'
          Dst:             mail_index_reopen_if_changed
        - Src:             'mail-index-map-read.c:456,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:461,8'
          Dst:             mail_index_fsck
        - Src:             'mail-index-map-read.c:466,8'
          Dst:             mail_index_map_latest_file
        - Src:             'mail-index-map-read.c:468,9'
          Dst:             mail_index_sync_map
        - Src:             'mail-index-map-read.c:470,4'
          Dst:             mail_index_set_error
    - functionName:    mail_index_map_latest_file
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         81
      ICount:          466
      EdgeCount:       104
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - fstat
        - i_panic
        - mail_index_fsck
        - mail_index_hdr_check_indexid
        - mail_index_map_alloc
        - mail_index_map_check_header
        - mail_index_map_parse_extensions
        - mail_index_map_parse_keywords
        - mail_index_mmap
        - mail_index_modseq_hdr_snapshot_update
        - mail_index_read_map
        - mail_index_reopen_if_changed
        - mail_index_set_error
        - mail_index_set_syscall_error
        - mail_index_unmap
        - nfs_flush_attr_cache_fd_locked
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:317,8'
          Dst:             mail_index_reopen_if_changed
        - Src:             'mail-index-map-read.c:326,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:329,3'
          Dst:             nfs_flush_attr_cache_fd_locked
        - Src:             'mail-index-map-read.c:331,6'
          Dst:             fstat
        - Src:             'mail-index-map-read.c:334,8'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:334,8'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:335,4'
          Dst:             mail_index_set_syscall_error
        - Src:             'mail-index-map-read.c:346,12'
          Dst:             mail_index_map_alloc
        - Src:             'mail-index-map-read.c:348,9'
          Dst:             mail_index_mmap
        - Src:             'mail-index-map-read.c:350,9'
          Dst:             mail_index_read_map
        - Src:             'mail-index-map-read.c:359,9'
          Dst:             mail_index_map_check_header
        - Src:             'mail-index-map-read.c:361,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-read.c:366,8'
          Dst:             mail_index_hdr_check_indexid
        - Src:             'mail-index-map-read.c:370,16'
          Dst:             t_push
        - Src:             'mail-index-map-read.c:371,8'
          Dst:             mail_index_map_parse_extensions
        - Src:             'mail-index-map-read.c:373,13'
          Dst:             mail_index_map_parse_keywords
        - Src:             'mail-index-map-read.c:375,5'
          Dst:             t_pop
        - Src:             'mail-index-map-read.c:375,5'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:388,7'
          Dst:             mail_index_fsck
        - Src:             'mail-index-map-read.c:399,3'
          Dst:             mail_index_unmap
        - Src:             'mail-index-map-read.c:402,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:407,2'
          Dst:             mail_index_modseq_hdr_snapshot_update
        - Src:             'mail-index-map-read.c:409,2'
          Dst:             mail_index_unmap
        - Src:             'mail-index-map-read.c:411,14'
          Dst:             t_strdup_printf
    - functionName:    mail_index_map_real
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          236
      EdgeCount:       59
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mail_index_map_alloc
        - mail_index_map_latest_file
        - mail_index_map_latest_sync
        - mail_index_set_syscall_error
        - mail_index_sync_map
        - mail_index_sync_map_want_index_reopen
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:484,2'
          Dst:             i_panic
        - Src:             'mail-index-map-read.c:489,16'
          Dst:             mail_index_map_alloc
        - Src:             'mail-index-map-read.c:495,13'
          Dst:             mail_index_sync_map_want_index_reopen
        - Src:             'mail-index-map-read.c:501,9'
          Dst:             mail_index_sync_map
        - Src:             'mail-index-map-read.c:503,4'
          Dst:             event_want_level
        - Src:             'mail-index-map-read.c:503,4'
          Dst:             e_debug
        - Src:             'mail-index-map-read.c:503,4'
          Dst:             event_send_abort
        - Src:             'mail-index-map-read.c:516,9'
          Dst:             mail_index_map_latest_file
        - Src:             'mail-index-map-read.c:518,10'
          Dst:             mail_index_map_latest_sync
        - Src:             'mail-index-map-read.c:521,8'
          Dst:             unlink
        - Src:             'mail-index-map-read.c:521,39'
          Dst:             __errno_location
        - Src:             'mail-index-map-read.c:522,5'
          Dst:             mail_index_set_syscall_error
    - functionName:    mail_index_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-read.c'
      linkageType:     externalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_map_real
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-read.c:536,2'
          Dst:             t_push
        - Src:             'mail-index-map-read.c:537,9'
          Dst:             mail_index_map_real
        - Src:             'mail-index-map-read.c:538,4'
          Dst:             t_pop
        - Src:             'mail-index-map-read.c:538,4'
          Dst:             i_panic
    - functionName:    sync_update_ignored_change
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          89
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - mail_transaction_log_view_get_prev_pos
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:325,2'
          Dst:             mail_transaction_log_view_get_prev_pos
    - functionName:    mail_index_sync_header_update_counts_all
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - mail_index_header_update_counts
        - mail_index_sync_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:157,9'
          Dst:             array_get_i
        - Src:             'mail-index-sync-update.c:162,7'
          Dst:             mail_index_header_update_counts
        - Src:             'mail-index-sync-update.c:165,4'
          Dst:             mail_index_sync_set_corrupted
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_index_header_update_counts
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    sync_expunge_call_handlers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sync_expunge_handlers_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - mail_index_sync_init_expunge_handlers
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:230,3'
          Dst:             mail_index_sync_init_expunge_handlers
        - Src:             'mail-index-sync-update.c:232,7'
          Dst:             array_is_created_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    mail_index_sync_header_update_counts
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_header_update_counts
        - mail_index_sync_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:177,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:180,7'
          Dst:             mail_index_header_update_counts
        - Src:             'mail-index-sync-update.c:183,4'
          Dst:             mail_index_sync_set_corrupted
    - functionName:    mail_index_header_update_lowwaters
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          124
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:194,9'
          Dst:             array_get_i
    - functionName:    sync_append_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_modifiable_data
        - buffer_get_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:306,8'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-index-sync-update.c:309,3'
          Dst:             buffer_get_modifiable_data
    - functionName:    sync_modseq_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - mail_index_lookup_seq
        - mail_index_modseq_set
        - mail_index_sync_set_corrupted
        - sync_update_ignored_change
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:354,13'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-sync-update.c:361,4'
          Dst:             mail_index_modseq_set
        - Src:             'mail-index-sync-update.c:363,4'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:367,19'
          Dst:             sync_update_ignored_change
    - functionName:    sync_header_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          225
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_write
        - i_memcpy
        - i_panic
        - mail_index_sync_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:483,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:489,2'
          Dst:             buffer_write
        - Src:             'mail-index-sync-update.c:490,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:494,3'
          Dst:             i_memcpy
        - Src:             'mail-index-sync-update.c:497,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    sync_flag_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          276
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - mail_index_header_update_lowwaters
        - mail_index_lookup_seq_range
        - mail_index_modseq_update_to_highest
        - mail_index_sync_header_update_counts_all
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:438,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-sync-update.c:442,3'
          Dst:             mail_index_modseq_update_to_highest
        - Src:             'mail-index-sync-update.c:464,4'
          Dst:             mail_index_header_update_lowwaters
        - Src:             'mail-index-sync-update.c:466,4'
          Dst:             mail_index_sync_header_update_counts_all
    - functionName:    sync_expunge_range
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          339
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_sync_get_atomic_map
        - mail_index_sync_header_update_counts
        - sync_expunge_call_handlers
        - sync_expunge_handlers_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:245,10'
          Dst:             array_get_i
        - Src:             'mail-index-sync-update.c:250,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-sync-update.c:253,6'
          Dst:             sync_expunge_handlers_init
        - Src:             'mail-index-sync-update.c:255,4'
          Dst:             sync_expunge_call_handlers
        - Src:             'mail-index-sync-update.c:269,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:273,4'
          Dst:             mail_index_sync_header_update_counts
    - functionName:    mail_index_sync_get_atomic_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_record_map_move_to_private
        - mail_index_sync_move_to_private_memory
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:96,8'
          Dst:             mail_index_sync_move_to_private_memory
        - Src:             'mail-index-sync-update.c:98,2'
          Dst:             mail_index_record_map_move_to_private
    - functionName:    mail_index_sync_move_to_private_memory
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_map_clone
        - mail_index_map_move_to_memory
        - mail_index_sync_replace_map
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:79,9'
          Dst:             mail_index_map_clone
        - Src:             'mail-index-sync-update.c:80,3'
          Dst:             mail_index_sync_replace_map
        - Src:             'mail-index-sync-update.c:81,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:86,3'
          Dst:             mail_index_map_move_to_memory
    - functionName:    mail_index_sync_replace_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_sync_update_log_offset
        - mail_index_unmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:61,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:63,2'
          Dst:             mail_index_sync_update_log_offset
        - Src:             'mail-index-sync-update.c:64,2'
          Dst:             mail_index_unmap
    - functionName:    mail_index_sync_update_log_offset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_transaction_log_view_get_prev_pos
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:24,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync-update.c:47,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    sync_append
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          259
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_index_header_update_lowwaters
        - mail_index_modseq_update_to_highest
        - mail_index_sync_header_update_counts
        - mail_index_sync_move_to_private_memory
        - mail_index_sync_set_corrupted
        - sync_append_record
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:383,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:392,8'
          Dst:             mail_index_sync_move_to_private_memory
        - Src:             'mail-index-sync-update.c:395,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:400,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:405,10'
          Dst:             sync_append_record
        - Src:             'mail-index-sync-update.c:406,3'
          Dst:             i_memcpy
        - Src:             'mail-index-sync-update.c:413,3'
          Dst:             mail_index_modseq_update_to_highest
        - Src:             'mail-index-sync-update.c:425,2'
          Dst:             mail_index_header_update_lowwaters
        - Src:             'mail-index-sync-update.c:426,2'
          Dst:             mail_index_sync_header_update_counts
    - functionName:    mail_index_sync_update_hdr_dirty_flag
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_sync_map
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          642
      EdgeCount:       105
      CyclomaticComplexity: 22
      functionsReached:
        - buffer_write
        - i_memcpy
        - i_panic
        - mail_index_fsck
        - mail_index_map_alloc
        - mail_index_map_check_header
        - mail_index_modseq_sync_end
        - mail_index_set_error
        - mail_index_sync_map_deinit
        - mail_index_sync_map_init
        - mail_index_sync_record
        - mail_index_sync_replace_map
        - mail_index_sync_update_hdr_dirty_flag
        - mail_index_sync_update_log_offset
        - mail_index_view_close
        - mail_index_view_open_with_map
        - mail_transaction_log_get_head
        - mail_transaction_log_view_get_prev_pos
        - mail_transaction_log_view_next
        - mail_transaction_log_view_set
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:944,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:945,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:950,9'
          Dst:             mail_index_view_open_with_map
        - Src:             'mail-index-sync-update.c:951,8'
          Dst:             mail_transaction_log_view_set
        - Src:             'mail-index-sync-update.c:956,3'
          Dst:             mail_index_view_close
        - Src:             'mail-index-sync-update.c:962,15'
          Dst:             t_strdup_printf
        - Src:             'mail-index-sync-update.c:970,2'
          Dst:             mail_transaction_log_get_head
        - Src:             'mail-index-sync-update.c:987,2'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync-update.c:990,2'
          Dst:             mail_index_sync_map_init
        - Src:             'mail-index-sync-update.c:994,3'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync-update.c:996,9'
          Dst:             mail_index_map_alloc
        - Src:             'mail-index-sync-update.c:1001,3'
          Dst:             mail_index_sync_replace_map
        - Src:             'mail-index-sync-update.c:1009,16'
          Dst:             mail_transaction_log_view_next
        - Src:             'mail-index-sync-update.c:1011,3'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync-update.c:1018,4'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:1023,9'
          Dst:             mail_index_sync_record
        - Src:             'mail-index-sync-update.c:1028,3'
          Dst:             mail_index_sync_update_hdr_dirty_flag
        - Src:             'mail-index-sync-update.c:1029,2'
          Dst:             mail_index_modseq_sync_end
        - Src:             'mail-index-sync-update.c:1031,2'
          Dst:             mail_index_sync_update_log_offset
        - Src:             'mail-index-sync-update.c:1036,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:1042,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:1048,2'
          Dst:             buffer_write
        - Src:             'mail-index-sync-update.c:1050,3'
          Dst:             i_memcpy
        - Src:             'mail-index-sync-update.c:1057,2'
          Dst:             mail_index_sync_map_deinit
        - Src:             'mail-index-sync-update.c:1058,2'
          Dst:             mail_index_view_close
        - Src:             'mail-index-sync-update.c:1060,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:1062,6'
          Dst:             mail_index_map_check_header
        - Src:             'mail-index-sync-update.c:1063,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-sync-update.c:1066,9'
          Dst:             mail_index_fsck
        - Src:             'mail-index-sync-update.c:1070,9'
          Dst:             mail_index_fsck
    - functionName:    mail_index_sync_map_init
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_modseq_sync_begin
        - mail_index_sync_init_handlers
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:826,29'
          Dst:             mail_index_modseq_sync_begin
        - Src:             'mail-index-sync-update.c:828,2'
          Dst:             mail_index_sync_init_handlers
    - functionName:    mail_index_sync_record
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_index_sync_record_real
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:812,2'
          Dst:             t_push
        - Src:             'mail-index-sync-update.c:813,9'
          Dst:             mail_index_sync_record_real
        - Src:             'mail-index-sync-update.c:814,4'
          Dst:             t_pop
        - Src:             'mail-index-sync-update.c:814,4'
          Dst:             i_panic
    - functionName:    mail_index_sync_map_deinit
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_free
        - i_panic
        - mail_index_sync_deinit_expunge_handlers
        - mail_index_sync_deinit_handlers
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-update.c:833,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:835,2'
          Dst:             buffer_free
        - Src:             'mail-index-sync-update.c:837,3'
          Dst:             mail_index_sync_deinit_expunge_handlers
        - Src:             'mail-index-sync-update.c:838,2'
          Dst:             mail_index_sync_deinit_handlers
    - functionName:    mail_index_sync_record_real
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         147
      ICount:          1005
      EdgeCount:       185
      CyclomaticComplexity: 40
      functionsReached:
        - array_create_i
        - i_memcpy
        - i_panic
        - mail_index_lookup_seq
        - mail_index_lookup_seq_range
        - mail_index_sync_ext_atomic_inc
        - mail_index_sync_ext_hdr_update
        - mail_index_sync_ext_intro
        - mail_index_sync_ext_rec_update
        - mail_index_sync_ext_reset
        - mail_index_sync_keywords
        - mail_index_sync_keywords_reset
        - mail_index_sync_set_corrupted
        - mail_transaction_log_view_get_prev_pos
        - pool_datastack_create
        - seq_range_array_add
        - seq_range_array_add_range
        - sync_append
        - sync_expunge_range
        - sync_flag_update
        - sync_header_update
        - sync_modseq_update
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-sync-update.c:522,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync-update.c:528,10'
          Dst:             sync_append
        - Src:             'mail-index-sync-update.c:544,3'
          Dst:             pool_datastack_create
        - Src:             'mail-index-sync-update.c:544,3'
          Dst:             array_create_i
        - Src:             'mail-index-sync-update.c:547,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-sync-update.c:549,5'
          Dst:             seq_range_array_add_range
        - Src:             'mail-index-sync-update.c:551,3'
          Dst:             sync_expunge_range
        - Src:             'mail-index-sync-update.c:564,3'
          Dst:             pool_datastack_create
        - Src:             'mail-index-sync-update.c:564,3'
          Dst:             array_create_i
        - Src:             'mail-index-sync-update.c:567,4'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:569,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-sync-update.c:570,5'
          Dst:             seq_range_array_add
        - Src:             'mail-index-sync-update.c:573,3'
          Dst:             sync_expunge_range
        - Src:             'mail-index-sync-update.c:581,10'
          Dst:             sync_flag_update
        - Src:             'mail-index-sync-update.c:593,10'
          Dst:             sync_header_update
        - Src:             'mail-index-sync-update.c:609,3'
          Dst:             mail_transaction_log_view_get_prev_pos
        - Src:             'mail-index-sync-update.c:624,4'
          Dst:             i_panic
        - Src:             'mail-index-sync-update.c:626,10'
          Dst:             mail_index_sync_ext_intro
        - Src:             'mail-index-sync-update.c:641,4'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:647,3'
          Dst:             i_memcpy
        - Src:             'mail-index-sync-update.c:648,9'
          Dst:             mail_index_sync_ext_reset
        - Src:             'mail-index-sync-update.c:660,5'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:666,10'
          Dst:             mail_index_sync_ext_hdr_update
        - Src:             'mail-index-sync-update.c:686,5'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:692,10'
          Dst:             mail_index_sync_ext_hdr_update
        - Src:             'mail-index-sync-update.c:708,4'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:727,5'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:733,10'
          Dst:             mail_index_sync_ext_rec_update
        - Src:             'mail-index-sync-update.c:743,4'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-update.c:757,10'
          Dst:             mail_index_sync_ext_atomic_inc
        - Src:             'mail-index-sync-update.c:766,9'
          Dst:             mail_index_sync_keywords
        - Src:             'mail-index-sync-update.c:772,9'
          Dst:             mail_index_sync_keywords_reset
        - Src:             'mail-index-sync-update.c:778,9'
          Dst:             sync_modseq_update
        - Src:             'mail-index-sync-update.c:797,3'
          Dst:             mail_index_sync_set_corrupted
    - functionName:    mail_index_sync_map_want_index_reopen
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          148
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_append_keyword_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - buffer_append_zero
        - buffer_set_used_size
        - i_panic
        - log_append_buffer
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:363,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:367,21'
          Dst:             strlen
        - Src:             'mail-index-transaction-export.c:369,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-transaction-export.c:370,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:371,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:373,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-transaction-export.c:374,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:376,2'
          Dst:             log_append_buffer
    - functionName:    log_append_buffer
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_transaction_log_append_add
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:19,2'
          Dst:             mail_transaction_log_append_add
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    ext_hdr_update_get_size
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    log_append_ext_hdr_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          213
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_append
        - buffer_append_zero
        - buffer_create_dynamic
        - buffer_free
        - i_panic
        - log_append_buffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:209,8'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-export.c:220,6'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:224,6'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:226,5'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:227,5'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:233,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-transaction-export.c:234,2'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:236,2'
          Dst:             buffer_free
    - functionName:    log_append_ext_intro
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          440
      EdgeCount:       73
      CyclomaticComplexity: 18
      functionsReached:
        - array_count_i
        - array_get_modifiable_i
        - array_idx_i
        - array_is_created_i
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_append_zero
        - buffer_create_dynamic
        - ext_hdr_update_get_size
        - i_panic
        - log_append_buffer
        - mail_index_map_get_ext_idx
        - pool_datastack_create
        - strcmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:108,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:111,7'
          Dst:             mail_index_map_get_ext_idx
        - Src:             'mail-index-transaction-export.c:116,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-export.c:117,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:121,13'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-export.c:124,8'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-export.c:124,8'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-export.c:134,23'
          Dst:             strlen
        - Src:             'mail-index-transaction-export.c:136,3'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:139,11'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-transaction-export.c:145,23'
          Dst:             strlen
        - Src:             'mail-index-transaction-export.c:147,10'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-export.c:154,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:155,16'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-export.c:159,9'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-export.c:160,22'
          Dst:             ext_hdr_update_get_size
        - Src:             'mail-index-transaction-export.c:165,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:172,4'
          Dst:             array_idx_i
        - Src:             'mail-index-transaction-export.c:177,2'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:179,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-transaction-export.c:182,6'
          Dst:             strcmp
        - Src:             'mail-index-transaction-export.c:187,2'
          Dst:             log_append_buffer
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    log_append_keyword_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          166
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_get_modifiable_i
        - array_is_created_i
        - buffer_create_dynamic
        - i_panic
        - log_append_keyword_update
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:388,12'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-export.c:388,12'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-export.c:390,13'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-export.c:392,12'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-export.c:393,2'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:396,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:397,7'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-export.c:399,4'
          Dst:             log_append_keyword_update
        - Src:             'mail-index-transaction-export.c:403,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:404,7'
          Dst:             array_count_i
        - Src:             'mail-index-transaction-export.c:406,4'
          Dst:             log_append_keyword_update
    - functionName:    log_append_ext_recs
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_get_modifiable_i
        - array_is_created_i
        - log_append_buffer
        - log_append_ext_intro
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:336,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:340,15'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-transaction-export.c:344,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:346,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:350,3'
          Dst:             log_append_ext_intro
        - Src:             'mail-index-transaction-export.c:352,3'
          Dst:             log_append_buffer
    - functionName:    log_append_flag_updates
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          125
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_free_i
        - array_get_i
        - log_append_buffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:31,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:35,2'
          Dst:             array_create_i
        - Src:             'mail-index-transaction-export.c:38,16'
          Dst:             array_append_space_i
        - Src:             'mail-index-transaction-export.c:46,2'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:48,2'
          Dst:             array_free_i
    - functionName:    log_get_hdr_update_buffer
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          161
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:65,8'
          Dst:             pool_datastack_create
        - Src:             'mail-index-transaction-export.c:65,8'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-transaction-export.c:75,5'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:76,5'
          Dst:             buffer_append
    - functionName:    mail_transaction_log_append_ext_intros
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          387
      EdgeCount:       92
      CyclomaticComplexity: 22
      functionsReached:
        - array_get_i
        - array_is_created_i
        - buffer_create_from_data
        - buffer_set_used_size
        - i_panic
        - log_append_buffer
        - log_append_ext_hdr_update
        - log_append_ext_intro
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:253,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:257,12'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:262,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:266,15'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:269,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:273,11'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:278,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:282,10'
          Dst:             array_get_i
        - Src:             'mail-index-transaction-export.c:288,2'
          Dst:             buffer_create_from_data
        - Src:             'mail-index-transaction-export.c:289,2'
          Dst:             buffer_set_used_size
        - Src:             'mail-index-transaction-export.c:307,4'
          Dst:             log_append_ext_intro
        - Src:             'mail-index-transaction-export.c:312,4'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:314,4'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:318,4'
          Dst:             t_push
        - Src:             'mail-index-transaction-export.c:319,5'
          Dst:             log_append_ext_hdr_update
        - Src:             'mail-index-transaction-export.c:321,6'
          Dst:             t_pop
        - Src:             'mail-index-transaction-export.c:321,6'
          Dst:             i_panic
    - functionName:    mail_index_transaction_export
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-transaction-export.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          533
      EdgeCount:       87
      CyclomaticComplexity: 19
      functionsReached:
        - array_is_created_i
        - buffer_append
        - buffer_append_c
        - buffer_append_zero
        - i_panic
        - log_append_buffer
        - log_append_ext_recs
        - log_append_flag_updates
        - log_append_keyword_updates
        - log_get_hdr_update_buffer
        - mail_transaction_log_append_add
        - mail_transaction_log_append_ext_intros
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-transaction-export.c:429,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:430,3'
          Dst:             mail_transaction_log_append_add
        - Src:             'mail-index-transaction-export.c:436,9'
          Dst:             mail_transaction_log_append_ext_intros
        - Src:             'mail-index-transaction-export.c:439,27'
          Dst:             log_get_hdr_update_buffer
        - Src:             'mail-index-transaction-export.c:439,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:447,3'
          Dst:             buffer_append_c
        - Src:             'mail-index-transaction-export.c:450,4'
          Dst:             buffer_append_zero
        - Src:             'mail-index-transaction-export.c:454,3'
          Dst:             buffer_append
        - Src:             'mail-index-transaction-export.c:457,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:459,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:462,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:465,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:469,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:472,3'
          Dst:             log_append_flag_updates
        - Src:             'mail-index-transaction-export.c:475,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:477,3'
          Dst:             log_append_ext_recs
        - Src:             'mail-index-transaction-export.c:480,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:482,3'
          Dst:             log_append_ext_recs
        - Src:             'mail-index-transaction-export.c:486,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:487,7'
          Dst:             log_append_keyword_updates
        - Src:             'mail-index-transaction-export.c:493,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:495,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:499,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-transaction-export.c:508,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:514,27'
          Dst:             log_get_hdr_update_buffer
        - Src:             'mail-index-transaction-export.c:514,3'
          Dst:             log_append_buffer
        - Src:             'mail-index-transaction-export.c:519,3'
          Dst:             i_panic
        - Src:             'mail-index-transaction-export.c:521,3'
          Dst:             mail_transaction_log_append_add
        - Src:             'mail-index-transaction-export.c:526,2'
          Dst:             i_panic
    - functionName:    mail_search_args_remove_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          154
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_unreached
        - mail_search_arg_one_deinit
        - mail_search_arg_one_equals
        - mail_search_args_remove_equal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:345,7'
          Dst:             mail_search_arg_one_equals
        - Src:             'mail-search-args-simplify.c:347,5'
          Dst:             mail_search_arg_one_deinit
        - Src:             'mail-search-args-simplify.c:351,4'
          Dst:             i_panic
        - Src:             'mail-search-args-simplify.c:353,9'
          Dst:             mail_search_args_remove_equal
        - Src:             'mail-search-args-simplify.c:356,5'
          Dst:             i_unreached
    - functionName:    mail_search_args_have_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_arg_one_equals
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:329,7'
          Dst:             mail_search_arg_one_equals
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_args_have_all_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_search_args_have_equal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:376,2'
          Dst:             i_panic
        - Src:             'mail-search-args-simplify.c:380,8'
          Dst:             mail_search_args_have_equal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mail_search_args_simplify_drop_redundant_args_real
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          228
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - array_create_i
        - array_lsearch_i
        - i_memcpy
        - mail_search_arg_equals_p
        - mail_search_arg_one_deinit
        - mail_search_args_have_all_equal
        - malloc_multiply_check
        - pool_datastack_create
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:410,2'
          Dst:             pool_datastack_create
        - Src:             'mail-search-args-simplify.c:410,2'
          Dst:             array_create_i
        - Src:             'mail-search-args-simplify.c:417,8'
          Dst:             array_lsearch_i
        - Src:             'mail-search-args-simplify.c:417,8'
          Dst:             mail_search_arg_equals_p
        - Src:             'mail-search-args-simplify.c:420,4'
          Dst:             array_append_i
        - Src:             'mail-search-args-simplify.c:422,35'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:422,35'
          Dst:             t_malloc0
        - Src:             'mail-search-args-simplify.c:426,4'
          Dst:             array_append_i
        - Src:             'mail-search-args-simplify.c:431,2'
          Dst:             i_memcpy
        - Src:             'mail-search-args-simplify.c:439,7'
          Dst:             mail_search_args_have_all_equal
        - Src:             'mail-search-args-simplify.c:441,6'
          Dst:             mail_search_arg_one_deinit
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_search_args_simplify_get_prev_argp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:75,13'
          Dst:             hash_table_lookup
        - Src:             'mail-search-args-simplify.c:77,14'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:77,14'
          Dst:             p_malloc
        - Src:             'mail-search-args-simplify.c:80,4'
          Dst:             p_strdup
        - Src:             'mail-search-args-simplify.c:82,4'
          Dst:             p_strdup
        - Src:             'mail-search-args-simplify.c:83,3'
          Dst:             hash_table_insert
    - functionName:    mail_search_args_merge_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_arg_one_deinit
        - mail_search_args_simplify_get_prev_argp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:95,14'
          Dst:             mail_search_args_simplify_get_prev_argp
        - Src:             'mail-search-args-simplify.c:102,3'
          Dst:             mail_search_arg_one_deinit
        - Src:             'mail-search-args-simplify.c:107,4'
          Dst:             mail_search_arg_one_deinit
    - functionName:    mail_search_arg_get_base_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          36
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_args_merge_text
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_merge_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:316,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:319,9'
          Dst:             mail_search_args_merge_mask
    - functionName:    mail_search_args_merge_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          187
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_simplify_get_prev_argp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search-args-simplify.c:270,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-args-simplify.c:260,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:262,14'
          Dst:             mail_search_args_simplify_get_prev_argp
    - functionName:    mail_search_args_merge_time
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          215
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_simplify_get_prev_argp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search-args-simplify.c:209,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-args-simplify.c:198,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:201,14'
          Dst:             mail_search_args_simplify_get_prev_argp
    - functionName:    mail_search_args_merge_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_simplify_get_prev_argp
        - seq_range_array_intersect
        - seq_range_array_merge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:174,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:176,14'
          Dst:             mail_search_args_simplify_get_prev_argp
        - Src:             'mail-search-args-simplify.c:182,3'
          Dst:             seq_range_array_intersect
        - Src:             'mail-search-args-simplify.c:186,3'
          Dst:             seq_range_array_merge
    - functionName:    mail_search_args_merge_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_merge_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:131,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:133,9'
          Dst:             mail_search_args_merge_mask
    - functionName:    mail_search_args_merge_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_arg_get_base_mask
        - mail_search_args_merge_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:120,2'
          Dst:             mail_search_arg_get_base_mask
        - Src:             'mail-search-args-simplify.c:122,9'
          Dst:             mail_search_args_merge_mask
    - functionName:    mail_search_args_simplify_set
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - seq_range_array_invert
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:146,7'
          Dst:             seq_range_exists
        - Src:             'mail-search-args-simplify.c:149,3'
          Dst:             seq_range_array_invert
        - Src:             'mail-search-args-simplify.c:151,11'
          Dst:             array_get_i
    - functionName:    mail_search_simplify_prev_arg_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
        - null_strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:39,8'
          Dst:             memcmp
        - Src:             'mail-search-args-simplify.c:41,9'
          Dst:             null_strcmp
        - Src:             'mail-search-args-simplify.c:43,9'
          Dst:             null_strcmp
    - functionName:    mail_search_simplify_prev_arg_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mem_hash
        - str_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:52,9'
          Dst:             mem_hash
        - Src:             'mail-search-args-simplify.c:54,11'
          Dst:             str_hash
        - Src:             'mail-search-args-simplify.c:56,11'
          Dst:             str_hash
    - functionName:    mail_search_args_simplify_merge_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          173
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - mail_search_args_simplify_merge_flags
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:706,8'
          Dst:             mail_search_args_simplify_merge_flags
    - functionName:    mail_search_args_simplify_extract_common
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          253
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - mail_search_arg_one_equals
        - mail_search_args_have_equal
        - mail_search_args_remove_equal
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:511,8'
          Dst:             mail_search_arg_one_equals
        - Src:             'mail-search-args-simplify.c:514,8'
          Dst:             mail_search_args_have_equal
        - Src:             'mail-search-args-simplify.c:524,3'
          Dst:             mail_search_args_remove_equal
        - Src:             'mail-search-args-simplify.c:532,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:532,12'
          Dst:             p_malloc
        - Src:             'mail-search-args-simplify.c:541,15'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:541,15'
          Dst:             p_malloc
    - functionName:    mail_search_args_simplify_drop_redundant_args
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_search_args_simplify_drop_redundant_args_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:461,2'
          Dst:             t_push
        - Src:             'mail-search-args-simplify.c:462,9'
          Dst:             mail_search_args_simplify_drop_redundant_args_real
        - Src:             'mail-search-args-simplify.c:464,4'
          Dst:             t_pop
        - Src:             'mail-search-args-simplify.c:464,4'
          Dst:             i_panic
    - functionName:    mail_search_args_unnest_inthreads
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          234
      EdgeCount:       44
      CyclomaticComplexity: 10
      functionsReached:
        - mail_search_args_unnest_inthreads
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mail-search-args-simplify.c:738,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-args-simplify.c:741,9'
          Dst:             mail_search_args_unnest_inthreads
        - Src:             'mail-search-args-simplify.c:752,8'
          Dst:             mail_search_args_unnest_inthreads
        - Src:             'mail-search-args-simplify.c:772,15'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:772,15'
          Dst:             p_malloc
        - Src:             'mail-search-args-simplify.c:787,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-args-simplify.c:787,12'
          Dst:             p_malloc
    - functionName:    mail_search_args_simplify_sub
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          646
      EdgeCount:       142
      CyclomaticComplexity: 31
      functionsReached:
        - hash_table_create
        - hash_table_destroy
        - i_panic
        - mail_search_args_merge_flags
        - mail_search_args_merge_keywords
        - mail_search_args_merge_set
        - mail_search_args_merge_size
        - mail_search_args_merge_text
        - mail_search_args_merge_time
        - mail_search_args_simplify_drop_redundant_args
        - mail_search_args_simplify_extract_common
        - mail_search_args_simplify_set
        - mail_search_args_simplify_sub
        - mail_search_simplify_prev_arg_cmp
        - mail_search_simplify_prev_arg_hash
        - pool_alloconly_create
        - pool_unref
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mail-search-args-simplify.c:622,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-args-simplify.c:562,13'
          Dst:             pool_alloconly_create
        - Src:             'mail-search-args-simplify.c:563,2'
          Dst:             hash_table_create
        - Src:             'mail-search-args-simplify.c:563,2'
          Dst:             mail_search_simplify_prev_arg_hash
        - Src:             'mail-search-args-simplify.c:563,2'
          Dst:             mail_search_simplify_prev_arg_cmp
        - Src:             'mail-search-args-simplify.c:602,4'
          Dst:             i_panic
        - Src:             'mail-search-args-simplify.c:607,9'
          Dst:             mail_search_args_simplify_drop_redundant_args
        - Src:             'mail-search-args-simplify.c:609,9'
          Dst:             mail_search_args_simplify_extract_common
        - Src:             'mail-search-args-simplify.c:612,8'
          Dst:             mail_search_args_simplify_sub
        - Src:             'mail-search-args-simplify.c:618,4'
          Dst:             mail_search_args_simplify_set
        - Src:             'mail-search-args-simplify.c:645,13'
          Dst:             mail_search_args_merge_flags
        - Src:             'mail-search-args-simplify.c:648,13'
          Dst:             mail_search_args_merge_keywords
        - Src:             'mail-search-args-simplify.c:652,13'
          Dst:             mail_search_args_merge_set
        - Src:             'mail-search-args-simplify.c:657,13'
          Dst:             mail_search_args_merge_time
        - Src:             'mail-search-args-simplify.c:661,13'
          Dst:             mail_search_args_merge_size
        - Src:             'mail-search-args-simplify.c:675,13'
          Dst:             mail_search_args_merge_text
        - Src:             'mail-search-args-simplify.c:688,2'
          Dst:             hash_table_destroy
        - Src:             'mail-search-args-simplify.c:689,2'
          Dst:             pool_unref
    - functionName:    mail_search_args_simplify
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-simplify.c'
      linkageType:     externalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_args_simplify_drop_redundant_args
        - mail_search_args_simplify_extract_common
        - mail_search_args_simplify_merge_flags
        - mail_search_args_simplify_sub
        - mail_search_args_unnest_inthreads
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-simplify.c:801,13'
          Dst:             mail_search_args_simplify_sub
        - Src:             'mail-search-args-simplify.c:802,6'
          Dst:             mail_search_args_unnest_inthreads
        - Src:             'mail-search-args-simplify.c:805,7'
          Dst:             mail_search_args_simplify_sub
        - Src:             'mail-search-args-simplify.c:809,7'
          Dst:             mail_search_args_simplify_drop_redundant_args
        - Src:             'mail-search-args-simplify.c:811,7'
          Dst:             mail_search_args_simplify_extract_common
        - Src:             'mail-search-args-simplify.c:814,15'
          Dst:             mail_search_args_simplify_sub
        - Src:             'mail-search-args-simplify.c:819,7'
          Dst:             mail_search_args_simplify_merge_flags
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    arg_new_body
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_mime_build_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:285,10'
          Dst:             mail_search_mime_build_str
        - Src:             'mail-search-mime-register.c:289,6'
          Dst:             mail_search_build_get_utf8
    - functionName:    arg_new_field
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_mime_build_new
        - mail_search_parse_string
        - p_strdup
        - str_ucase
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:249,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:251,6'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-mime-register.c:253,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:255,6'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-mime-register.c:258,10'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:259,32'
          Dst:             p_strdup
        - Src:             'mail-search-mime-register.c:259,22'
          Dst:             str_ucase
    - functionName:    arg_new_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_parse_date
        - mail_search_mime_build_new
        - mail_search_parse_string
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:162,10'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:163,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:165,7'
          Dst:             imap_parse_date
    - functionName:    mail_search_mime_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_mime_build_new
        - mail_search_parse_key
        - mail_search_parse_string
        - strcmp
        - t_str_ucase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:403,6'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-mime-register.c:408,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-mime-register.c:409,6'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:411,12'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:413,12'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:415,12'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:422,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:427,6'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-mime-register.c:432,10'
          Dst:             mail_search_mime_build_new
    - functionName:    mail_search_mime_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_search_mime_child
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_mime_build_key
        - mail_search_mime_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:459,10'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:460,6'
          Dst:             mail_search_mime_build_key
    - functionName:    mail_search_mime_parent
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_mime_build_key
        - mail_search_mime_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:442,10'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:443,6'
          Dst:             mail_search_mime_build_key
    - functionName:    mail_search_mime_index
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_mime_build_new
        - mail_search_parse_string
        - str_to_uint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:380,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:385,6'
          Dst:             str_to_uint
        - Src:             'mail-search-mime-register.c:390,10'
          Dst:             mail_search_mime_build_new
    - functionName:    mail_search_mime_depth
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          130
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_mime_build_new
        - mail_search_parse_key
        - mail_search_parse_string
        - str_to_uint
        - strcmp
        - t_str_ucase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:342,6'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-mime-register.c:347,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-mime-register.c:348,6'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:350,12'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:358,3'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:363,6'
          Dst:             str_to_uint
        - Src:             'mail-search-mime-register.c:368,10'
          Dst:             mail_search_mime_build_new
    - functionName:    mail_search_mime_text
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_body
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:302,1'
          Dst:             arg_new_body
    - functionName:    mail_search_mime_body
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_body
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:301,1'
          Dst:             arg_new_body
    - functionName:    mail_search_mime_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:239,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_subject
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:238,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_sender
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:237,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_reply_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:236,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_message_id
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:235,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_in_reply_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:234,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_from
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:233,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_cc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:232,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_bcc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:231,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_header
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_field
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:275,9'
          Dst:             arg_new_field
    - functionName:    mail_search_mime_param
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_field
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:268,9'
          Dst:             arg_new_field
    - functionName:    mail_search_mime_subtype
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:229,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_type
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:228,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_md5
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:226,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_location
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:225,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_language
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:224,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_id
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:223,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_encoding
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:222,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_disposition
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - arg_new_field
        - mail_search_mime_build_new
        - mail_search_parse_key
        - mail_search_parse_string
        - p_strdup
        - strcmp
        - t_str_ucase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:310,6'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-mime-register.c:315,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-mime-register.c:316,6'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:317,7'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:321,11'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:323,22'
          Dst:             p_strdup
        - Src:             'mail-search-mime-register.c:325,14'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:326,10'
          Dst:             arg_new_field
    - functionName:    mail_search_mime_description
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:221,1'
          Dst:             mail_search_mime_build_str
    - functionName:    mail_search_mime_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          130
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_mime_build_new
        - mail_search_parse_key
        - mail_search_parse_string
        - str_to_uoff
        - strcmp
        - t_str_ucase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:190,6'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-mime-register.c:195,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-mime-register.c:196,6'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:198,12'
          Dst:             strcmp
        - Src:             'mail-search-mime-register.c:206,3'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-register.c:211,6'
          Dst:             str_to_uoff
        - Src:             'mail-search-mime-register.c:216,10'
          Dst:             mail_search_mime_build_new
    - functionName:    mail_search_mime_sentsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:180,1'
          Dst:             arg_new_date
    - functionName:    mail_search_mime_senton
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:179,1'
          Dst:             arg_new_date
    - functionName:    mail_search_mime_sentbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:178,1'
          Dst:             arg_new_date
    - functionName:    mail_search_mime_or
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_mime_build_key
        - mail_search_mime_build_new
        - mail_search_parse_skip_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:131,10'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-register.c:135,7'
          Dst:             mail_search_mime_build_key
        - Src:             'mail-search-mime-register.c:141,11'
          Dst:             mail_search_parse_skip_next
        - Src:             'mail-search-mime-register.c:143,6'
          Dst:             mail_search_mime_build_key
    - functionName:    mail_search_mime_not
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_mime_build_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:118,6'
          Dst:             mail_search_mime_build_key
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_register_add_default
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_register_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:545,2'
          Dst:             mail_search_mime_register_add
    - functionName:    mail_search_mime_register_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - mail_search_mime_register_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:65,3'
          Dst:             mail_search_mime_register_init
        - Src:             'mail-search-mime-register.c:67,2'
          Dst:             array_append_i
    - functionName:    mail_search_mime_register_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - mail_search_register_add_default
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:37,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime-register.c:37,9'
          Dst:             p_malloc
        - Src:             'mail-search-mime-register.c:38,3'
          Dst:             array_create_i
        - Src:             'mail-search-mime-register.c:41,3'
          Dst:             mail_search_register_add_default
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_mime_register_find
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_i
        - array_sort_i
        - mail_search_mime_register_arg_cmp
        - mail_search_mime_register_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:98,3'
          Dst:             mail_search_mime_register_init
        - Src:             'mail-search-mime-register.c:101,3'
          Dst:             array_sort_i
        - Src:             'mail-search-mime-register.c:101,3'
          Dst:             mail_search_mime_register_arg_cmp
        - Src:             'mail-search-mime-register.c:106,9'
          Dst:             array_bsearch_i
        - Src:             'mail-search-mime-register.c:106,9'
          Dst:             mail_search_mime_register_arg_cmp
    - functionName:    mail_search_mime_register_arg_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:76,9'
          Dst:             strcmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mail_search_mime_register_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - array_sort_i
        - mail_search_mime_register_arg_cmp
        - mail_search_mime_register_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:83,3'
          Dst:             mail_search_mime_register_init
        - Src:             'mail-search-mime-register.c:86,3'
          Dst:             array_sort_i
        - Src:             'mail-search-mime-register.c:86,3'
          Dst:             mail_search_mime_register_arg_cmp
        - Src:             'mail-search-mime-register.c:90,9'
          Dst:             array_get_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_search_mime_register_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-register.c:56,2'
          Dst:             array_free_i
        - Src:             'mail-search-mime-register.c:57,2'
          Dst:             p_free_internal
    - functionName:    mail_search_mime_part_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          120
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_search_mime_arg_to_imap
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:599,2'
          Dst:             i_panic
        - Src:             'mail-search-mime.c:601,8'
          Dst:             mail_search_mime_arg_to_imap
        - Src:             'mail-search-mime.c:605,3'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:607,9'
          Dst:             mail_search_mime_arg_to_imap
        - Src:             'mail-search-mime.c:611,5'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:613,3'
          Dst:             str_append_c
    - functionName:    mail_search_mime_arg_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          615
      EdgeCount:       79
      CyclomaticComplexity: 11
      functionsReached:
        - imap_append_astring
        - mail_search_mime_arg_to_imap_date
        - mail_search_mime_subargs_to_imap
        - str_append
        - str_append_c
        - str_printfa
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mail-search-mime.c:400,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-mime.c:399,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:402,8'
          Dst:             mail_search_mime_subargs_to_imap
        - Src:             'mail-search-mime.c:407,8'
          Dst:             mail_search_mime_subargs_to_imap
        - Src:             'mail-search-mime.c:412,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:415,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:418,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:421,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:422,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:425,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:426,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:429,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:430,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:431,3'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:432,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:435,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:436,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:439,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:440,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:443,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:444,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:447,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:448,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:451,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:452,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:455,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:456,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:459,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:460,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:463,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:464,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:465,3'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:466,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:469,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:470,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:471,3'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:472,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:475,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:476,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:479,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:480,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:483,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:484,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:487,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:488,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:491,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:492,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:495,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:496,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:499,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:500,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:503,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:504,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:507,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:508,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:511,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:512,8'
          Dst:             mail_search_mime_arg_to_imap_date
        - Src:             'mail-search-mime.c:513,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-mime.c:520,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:521,8'
          Dst:             mail_search_mime_arg_to_imap_date
        - Src:             'mail-search-mime.c:522,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-mime.c:529,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:530,8'
          Dst:             mail_search_mime_arg_to_imap_date
        - Src:             'mail-search-mime.c:531,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-mime.c:538,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:539,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:542,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:543,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:546,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:549,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:552,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:555,3'
          Dst:             str_printfa
        - Src:             'mail-search-mime.c:558,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:560,4'
          Dst:             str_append
        - Src:             'mail-search-mime.c:561,13'
          Dst:             mail_search_mime_subargs_to_imap
        - Src:             'mail-search-mime.c:566,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:568,4'
          Dst:             str_append
        - Src:             'mail-search-mime.c:569,13'
          Dst:             mail_search_mime_subargs_to_imap
        - Src:             'mail-search-mime.c:574,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:575,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:578,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:579,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:582,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:583,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-mime.c:586,3'
          Dst:             str_append
        - Src:             'mail-search-mime.c:587,3'
          Dst:             imap_append_astring
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    36
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    mail_search_mime_subargs_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          126
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_mime_arg_to_imap
        - str_append
        - str_append_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:359,3'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:362,4'
          Dst:             str_append
        - Src:             'mail-search-mime.c:363,8'
          Dst:             mail_search_mime_arg_to_imap
        - Src:             'mail-search-mime.c:366,4'
          Dst:             str_append_c
        - Src:             'mail-search-mime.c:369,3'
          Dst:             str_append_c
    - functionName:    mail_search_mime_arg_to_imap_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_to_date
        - localtime
        - str_printfa
        - utc_offset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:382,7'
          Dst:             localtime
        - Src:             'mail-search-mime.c:383,14'
          Dst:             utc_offset
        - Src:             'mail-search-mime.c:386,7'
          Dst:             imap_to_date
        - Src:             'mail-search-mime.c:388,2'
          Dst:             str_printfa
    - functionName:    mail_search_mime_simplify
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 342
      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:    mail_search_mime_parts_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_mime_arg_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:328,2'
          Dst:             i_panic
        - Src:             'mail-search-mime.c:330,9'
          Dst:             mail_search_mime_arg_equals
    - functionName:    mail_search_mime_arg_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_mime_arg_one_equals
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:317,8'
          Dst:             mail_search_mime_arg_one_equals
    - functionName:    mail_search_mime_arg_one_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          331
      EdgeCount:       67
      CyclomaticComplexity: 5
      functionsReached:
        - i_unreached
        - mail_search_mime_arg_equals
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search-mime.c:244,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-mime.c:247,10'
          Dst:             mail_search_mime_arg_equals
        - Src:             'mail-search-mime.c:258,7'
          Dst:             strcasecmp
        - Src:             'mail-search-mime.c:288,10'
          Dst:             strcmp
        - Src:             'mail-search-mime.c:301,10'
          Dst:             mail_search_mime_arg_equals
        - Src:             'mail-search-mime.c:310,2'
          Dst:             i_unreached
    - functionName:    search_mime_arg_foreach
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          293
      EdgeCount:       68
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - search_mime_arg_foreach
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:163,3'
          Dst:             i_panic
        - Src:             'mail-search-mime.c:169,5'
          Dst:             search_mime_arg_foreach
        - Src:             'mail-search-mime.c:185,3'
          Dst:             i_panic
        - Src:             'mail-search-mime.c:191,5'
          Dst:             search_mime_arg_foreach
    - functionName:    mail_search_mime_args_foreach
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - search_mime_arg_foreach
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:220,3'
          Dst:             search_mime_arg_foreach
    - functionName:    mail_search_mime_args_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - mail_search_mime_args_reset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:127,4'
          Dst:             mail_search_mime_args_reset
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_search_mime_part_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_arg_dup
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:111,14'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime.c:111,14'
          Dst:             p_malloc
        - Src:             'mail-search-mime.c:113,20'
          Dst:             mail_search_mime_arg_dup
    - functionName:    mail_search_mime_arg_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_mime_arg_dup_one
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime.c:99,11'
          Dst:             mail_search_mime_arg_dup_one
    - functionName:    mail_search_mime_arg_dup_one
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          323
      EdgeCount:       55
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_mime_arg_dup
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-search-mime.c:29,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-mime.c:23,12'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime.c:23,12'
          Dst:             p_malloc
        - Src:             'mail-search-mime.c:33,4'
          Dst:             mail_search_mime_arg_dup
        - Src:             'mail-search-mime.c:41,25'
          Dst:             p_strdup
        - Src:             'mail-search-mime.c:69,24'
          Dst:             p_strdup
        - Src:             'mail-search-mime.c:80,5'
          Dst:             mail_search_mime_arg_dup
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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-storage/../../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:    arg_new_human_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_new
        - mail_search_parse_string
        - p_strdup
        - str_parse_get_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:89,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-human.c:90,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-human.c:93,6'
          Dst:             str_parse_get_size
        - Src:             'mail-search-register-human.c:94,17'
          Dst:             p_strdup
    - functionName:    arg_new_human_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_parse_human_timestamp
        - mail_search_build_new
        - mail_search_parse_string
        - p_strconcat
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:40,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-human.c:41,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-human.c:44,6'
          Dst:             mail_parse_human_timestamp
        - Src:             'mail-search-register-human.c:50,17'
          Dst:             p_strconcat
    - functionName:    human_search_oldestonly
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:150,9'
          Dst:             mail_search_build_new
    - functionName:    human_search_mailbox_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      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:
        - mail_search_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:143,9'
          Dst:             mail_search_build_str
    - functionName:    human_search_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_build_str
        - p_strconcat
        - strchr
        - uni_utf8_str_is_valid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:123,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-human.c:127,6'
          Dst:             strchr
        - Src:             'mail-search-register-human.c:128,6'
          Dst:             strchr
        - Src:             'mail-search-register-human.c:131,7'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mail-search-register-human.c:132,17'
          Dst:             p_strconcat
    - functionName:    human_search_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:115,9'
          Dst:             mail_search_build_str
    - functionName:    human_search_smaller
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:109,9'
          Dst:             arg_new_human_size
    - functionName:    human_search_larger
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:103,9'
          Dst:             arg_new_human_size
    - functionName:    human_search_savedatesupported
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:79,9'
          Dst:             mail_search_build_new
    - functionName:    human_search_savedsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:74,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_savedon
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:73,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_savedbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:72,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_sentsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:70,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_senton
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:69,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_sentbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:68,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_since
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:66,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_on
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:65,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_before
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_human_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:64,1'
          Dst:             arg_new_human_date
    - functionName:    human_search_or
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_build_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:26,6'
          Dst:             mail_search_build_key
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_register_init_human
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          151
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - mail_search_register_add
        - mail_search_register_fallback
        - mail_search_register_get
        - mail_search_register_get_fallback
        - mail_search_register_init
        - pool_datastack_create
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:192,8'
          Dst:             mail_search_register_init
        - Src:             'mail-search-register-human.c:193,2'
          Dst:             mail_search_register_add
        - Src:             'mail-search-register-human.c:197,14'
          Dst:             mail_search_register_get
        - Src:             'mail-search-register-human.c:198,15'
          Dst:             mail_search_register_get
        - Src:             'mail-search-register-human.c:199,2'
          Dst:             pool_datastack_create
        - Src:             'mail-search-register-human.c:199,2'
          Dst:             array_create_i
        - Src:             'mail-search-register-human.c:201,9'
          Dst:             strcmp
        - Src:             'mail-search-register-human.c:203,4'
          Dst:             array_append_i
        - Src:             'mail-search-register-human.c:212,3'
          Dst:             array_append_i
        - Src:             'mail-search-register-human.c:214,14'
          Dst:             array_get_i
        - Src:             'mail-search-register-human.c:215,2'
          Dst:             mail_search_register_add
        - Src:             'mail-search-register-human.c:217,6'
          Dst:             mail_search_register_get_fallback
        - Src:             'mail-search-register-human.c:218,3'
          Dst:             mail_search_register_fallback
    - functionName:    mail_search_register_get_human
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-human.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_register_get_imap4rev1
        - mail_search_register_init_human
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-human.c:226,4'
          Dst:             mail_search_register_get_imap4rev1
        - Src:             'mail-search-register-human.c:229,4'
          Dst:             mail_search_register_init_human
    - functionName:    mail_search_arg_set_fuzzy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_arg_set_fuzzy
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-search-register-imap.c:460,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-register-imap.c:464,4'
          Dst:             mail_search_arg_set_fuzzy
    - functionName:    arg_modseq_set_type
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:366,6'
          Dst:             strcasecmp
        - Src:             'mail-search-register-imap.c:368,11'
          Dst:             strcasecmp
        - Src:             'mail-search-register-imap.c:370,11'
          Dst:             strcasecmp
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    arg_modseq_set_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          161
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - arg_modseq_set_type
        - imap_parse_system_flag
        - imap_str_is_atom
        - mail_search_parse_string
        - p_strdup
        - str_begins
        - str_begins_builtin_success
        - strncmp
        - t_str_lcase
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:385,9'
          Dst:             t_str_lcase
        - Src:             'mail-search-register-imap.c:386,7'
          Dst:             str_begins
        - Src:             'mail-search-register-imap.c:386,7'
          Dst:             strncmp
        - Src:             'mail-search-register-imap.c:386,7'
          Dst:             str_begins_builtin_success
        - Src:             'mail-search-register-imap.c:392,23'
          Dst:             imap_parse_system_flag
        - Src:             'mail-search-register-imap.c:400,8'
          Dst:             imap_str_is_atom
        - Src:             'mail-search-register-imap.c:404,21'
          Dst:             p_strdup
        - Src:             'mail-search-register-imap.c:408,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:410,6'
          Dst:             arg_modseq_set_type
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    arg_new_interval
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_build_new
        - mail_search_parse_string
        - str_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:328,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:329,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:332,6'
          Dst:             str_to_uint32
    - functionName:    arg_new_body
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_build_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:301,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-imap.c:305,6'
          Dst:             mail_search_build_get_utf8
    - functionName:    arg_new_header
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_get_utf8
        - mail_search_build_new
        - mail_search_parse_string
        - p_strdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:258,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:259,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:262,6'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-register-imap.c:265,25'
          Dst:             p_strdup
    - functionName:    arg_new_size
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_build_new
        - mail_search_parse_string
        - str_to_uoff
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:228,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:229,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:232,6'
          Dst:             str_to_uoff
    - functionName:    arg_new_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_parse_date
        - mail_search_build_new
        - mail_search_parse_string
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:182,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:183,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:185,7'
          Dst:             imap_parse_date
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      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:    imap_search_x_real_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - imap_seq_set_parse
        - mail_search_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:546,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-imap.c:550,2'
          Dst:             array_create_i
        - Src:             'mail-search-register-imap.c:551,6'
          Dst:             imap_seq_set_parse
    - functionName:    imap_search_x_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_utf7_to_utf8
        - mail_search_build_str
        - p_strdup
        - str_c
        - strlen
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:527,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-imap.c:531,24'
          Dst:             strlen
        - Src:             'mail-search-register-imap.c:531,14'
          Dst:             t_str_new
        - Src:             'mail-search-register-imap.c:532,6'
          Dst:             imap_utf7_to_utf8
        - Src:             'mail-search-register-imap.c:536,40'
          Dst:             str_c
        - Src:             'mail-search-register-imap.c:536,20'
          Dst:             p_strdup
    - functionName:    imap_search_x_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:519,1'
          Dst:             mail_search_build_str
    - functionName:    imap_search_inthread
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_build_key
        - mail_search_build_new
        - mail_search_parse_string
        - mail_thread_type_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:505,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:507,7'
          Dst:             mail_thread_type_parse
        - Src:             'mail-search-register-imap.c:512,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:514,6'
          Dst:             mail_search_build_key
    - functionName:    imap_search_mimepart
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_build_new
        - mail_search_mime_build
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:490,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:491,6'
          Dst:             mail_search_mime_build
    - functionName:    imap_search_fuzzy
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_search_arg_set_fuzzy
        - mail_search_build_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:477,6'
          Dst:             mail_search_build_key
        - Src:             'mail-search-register-imap.c:479,2'
          Dst:             i_panic
        - Src:             'mail-search-register-imap.c:481,2'
          Dst:             mail_search_arg_set_fuzzy
    - functionName:    imap_search_last_result
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:450,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:452,2'
          Dst:             array_create_i
    - functionName:    imap_search_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - arg_modseq_set_ext
        - mail_search_build_new
        - mail_search_parse_string
        - malloc_multiply_check
        - p_malloc
        - str_to_uint64
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:423,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:424,23'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-register-imap.c:424,23'
          Dst:             p_malloc
        - Src:             'mail-search-register-imap.c:426,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:429,13'
          Dst:             arg_modseq_set_ext
        - Src:             'mail-search-register-imap.c:433,7'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:437,6'
          Dst:             str_to_uint64
    - functionName:    imap_search_younger
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_interval
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:359,9'
          Dst:             arg_new_interval
    - functionName:    imap_search_older
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - arg_new_interval
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:347,9'
          Dst:             arg_new_interval
    - functionName:    imap_search_text
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_body
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:318,1'
          Dst:             arg_new_body
    - functionName:    imap_search_body
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_body
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:317,1'
          Dst:             arg_new_body
    - functionName:    imap_search_header
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - arg_new_header
        - mail_search_build_get_utf8
        - mail_search_parse_string
        - t_str_ucase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:287,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-register-imap.c:289,6'
          Dst:             mail_search_build_get_utf8
        - Src:             'mail-search-register-imap.c:292,44'
          Dst:             t_str_ucase
        - Src:             'mail-search-register-imap.c:292,9'
          Dst:             arg_new_header
    - functionName:    imap_search_subject
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:279,1'
          Dst:             arg_new_header
    - functionName:    imap_search_to
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:278,1'
          Dst:             arg_new_header
    - functionName:    imap_search_from
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:277,1'
          Dst:             arg_new_header
    - functionName:    imap_search_cc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:276,1'
          Dst:             arg_new_header
    - functionName:    imap_search_bcc
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:275,1'
          Dst:             arg_new_header
    - functionName:    imap_search_smaller
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:248,9'
          Dst:             arg_new_size
    - functionName:    imap_search_larger
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:242,9'
          Dst:             arg_new_size
    - functionName:    imap_search_x_savedsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:213,1'
          Dst:             arg_new_date
    - functionName:    imap_search_x_savedon
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:212,1'
          Dst:             arg_new_date
    - functionName:    imap_search_x_savedbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:211,1'
          Dst:             arg_new_date
    - functionName:    imap_search_savedatesupported
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:218,9'
          Dst:             mail_search_build_new
    - functionName:    imap_search_savedsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:209,1'
          Dst:             arg_new_date
    - functionName:    imap_search_savedon
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:208,1'
          Dst:             arg_new_date
    - functionName:    imap_search_savedbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:207,1'
          Dst:             arg_new_date
    - functionName:    imap_search_sentsince
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:205,1'
          Dst:             arg_new_date
    - functionName:    imap_search_senton
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:204,1'
          Dst:             arg_new_date
    - functionName:    imap_search_sentbefore
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:203,1'
          Dst:             arg_new_date
    - functionName:    imap_search_since
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:201,1'
          Dst:             arg_new_date
    - functionName:    imap_search_on
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:200,1'
          Dst:             arg_new_date
    - functionName:    imap_search_before
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arg_new_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:199,1'
          Dst:             arg_new_date
    - functionName:    imap_search_unkeyword
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_search_keyword
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:168,9'
          Dst:             imap_search_keyword
    - functionName:    imap_search_keyword
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_str_is_atom
        - mail_search_build_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:151,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-imap.c:156,7'
          Dst:             imap_str_is_atom
    - functionName:    imap_search_new
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_search_recent
        - imap_search_unseen
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:140,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:141,24'
          Dst:             imap_search_recent
        - Src:             'mail-search-register-imap.c:142,30'
          Dst:             imap_search_unseen
    - functionName:    imap_search_recent
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:131,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_unseen
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:130,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_old
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:132,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_seen
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:129,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_unflagged
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:128,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_flagged
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:127,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_undraft
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:126,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_draft
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:125,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_undeleted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:124,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_deleted
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:123,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_unanswered
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:122,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_answered
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:121,1'
          Dst:             mail_search_build_new
    - functionName:    imap_search_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - imap_seq_set_parse
        - mail_search_build_str
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:94,9'
          Dst:             mail_search_build_str
        - Src:             'mail-search-register-imap.c:98,2'
          Dst:             array_create_i
        - Src:             'mail-search-register-imap.c:99,6'
          Dst:             strcmp
        - Src:             'mail-search-register-imap.c:102,7'
          Dst:             imap_seq_set_parse
    - functionName:    imap_search_all
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_build_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:85,9'
          Dst:             mail_search_build_new
    - functionName:    imap_search_or
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_build_key
        - mail_search_build_new
        - mail_search_parse_skip_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:59,9'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:63,7'
          Dst:             mail_search_build_key
        - Src:             'mail-search-register-imap.c:69,11'
          Dst:             mail_search_parse_skip_next
        - Src:             'mail-search-register-imap.c:71,6'
          Dst:             mail_search_build_key
    - functionName:    imap_search_not
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_build_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:46,6'
          Dst:             mail_search_build_key
    - functionName:    imap_search_fallback
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - imap_seq_set_parse
        - mail_search_build_new
        - p_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:29,10'
          Dst:             mail_search_build_new
        - Src:             'mail-search-register-imap.c:30,3'
          Dst:             array_create_i
        - Src:             'mail-search-register-imap.c:31,7'
          Dst:             imap_seq_set_parse
        - Src:             'mail-search-register-imap.c:37,16'
          Dst:             p_strconcat
    - functionName:    mail_search_register_init_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - imap_search_fallback
        - mail_search_register_add
        - mail_search_register_fallback
        - mail_search_register_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:647,8'
          Dst:             mail_search_register_init
        - Src:             'mail-search-register-imap.c:650,4'
          Dst:             mail_search_register_add
        - Src:             'mail-search-register-imap.c:652,2'
          Dst:             mail_search_register_fallback
        - Src:             'mail-search-register-imap.c:652,2'
          Dst:             imap_search_fallback
    - functionName:    mail_search_register_init_imap4rev1
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_register_init_imap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:663,9'
          Dst:             mail_search_register_init_imap
    - functionName:    mail_search_register_get_imap4rev1
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     externalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_register_init_imap4rev1
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:678,36'
          Dst:             mail_search_register_init_imap4rev1
    - functionName:    mail_search_register_init_imap4rev2
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_register_init_imap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:658,9'
          Dst:             mail_search_register_init_imap
    - functionName:    mail_search_register_get_imap4rev2
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-register-imap.c'
      linkageType:     externalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_register_init_imap4rev2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-register-imap.c:670,36'
          Dst:             mail_search_register_init_imap4rev2
    - functionName:    mail_storage_register_all
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-storage-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_class_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-register.c:20,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:21,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:22,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:23,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:24,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:25,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:26,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:27,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:28,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:29,2'
          Dst:             mail_storage_class_register
        - Src:             'mail-storage-register.c:30,2'
          Dst:             mail_storage_class_register
    - functionName:    mail_thread_type_to_str
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-thread.c:36,2'
          Dst:             i_panic
    - functionName:    mail_thread_type_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-thread.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-thread.c:20,7'
          Dst:             strcasecmp
    - functionName:    server_attribute_admin_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute-internal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    server_attribute_comment_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute-internal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_attribute_comment_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute-internal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mailbox_attribute_specialuse_get
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute-internal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - p_array_const_string_join
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute-internal.c:21,21'
          Dst:             array_is_created_i
        - Src:             'mailbox-attribute-internal.c:24,19'
          Dst:             p_array_const_string_join
    - functionName:    mailbox_attributes_internal_init
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-attribute-internal.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_attribute_register_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-attribute-internal.c:136,2'
          Dst:             mailbox_attribute_register_internal
        - Src:             'mailbox-attribute-internal.c:138,2'
          Dst:             mailbox_attribute_register_internal
        - Src:             'mailbox-attribute-internal.c:140,2'
          Dst:             mailbox_attribute_register_internal
        - Src:             'mailbox-attribute-internal.c:147,2'
          Dst:             mailbox_attribute_register_internal
        - Src:             'mailbox-attribute-internal.c:149,2'
          Dst:             mailbox_attribute_register_internal
    - functionName:    path_get_parent_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strrchr
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:374,18'
          Dst:             strrchr
        - Src:             'mailbox-list-fs.c:375,27'
          Dst:             t_strdup_until
    - functionName:    rename_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          300
      EdgeCount:       72
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - mailbox_list_delete_until_root
        - mailbox_list_get_path
        - mailbox_list_get_root_permissions
        - mailbox_list_set_critical
        - mailbox_list_set_error_from_errno
        - mkdir_parents_chgrp
        - path_get_parent_dir
        - rename
        - rmdir
        - stat
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:385,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:386,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:395,13'
          Dst:             path_get_parent_dir
        - Src:             'mailbox-list-fs.c:399,13'
          Dst:             path_get_parent_dir
        - Src:             'mailbox-list-fs.c:401,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:404,14'
          Dst:             path_get_parent_dir
        - Src:             'mailbox-list-fs.c:405,14'
          Dst:             path_get_parent_dir
        - Src:             'mailbox-list-fs.c:407,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:407,43'
          Dst:             stat
        - Src:             'mailbox-list-fs.c:411,3'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-list-fs.c:412,7'
          Dst:             mkdir_parents_chgrp
        - Src:             'mailbox-list-fs.c:415,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:416,8'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-fs.c:419,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:425,6'
          Dst:             rename
        - Src:             'mailbox-list-fs.c:425,38'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:426,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:430,27'
          Dst:             strrchr
        - Src:             'mailbox-list-fs.c:431,13'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-fs.c:432,7'
          Dst:             rmdir
        - Src:             'mailbox-list-fs.c:432,29'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:433,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:433,29'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:434,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:440,2'
          Dst:             mailbox_list_delete_until_root
    - functionName:    rmdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    fs_list_rmdir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_add_change
        - mailbox_name_get_sha128
        - rmdir
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:303,6'
          Dst:             rmdir
        - Src:             'mailbox-list-fs.c:306,2'
          Dst:             mailbox_name_get_sha128
        - Src:             'mailbox-list-fs.c:307,2'
          Dst:             mailbox_list_add_change
    - functionName:    mailbox_list_fs_get_trash_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_root_forced
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:233,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-fs.c:234,9'
          Dst:             t_strdup_printf
    - functionName:    fs_list_delete_maildir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          165
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - i_unreached
        - mailbox_list_delete_mailbox_nonrecursive
        - mailbox_list_delete_maildir_via_trash
        - mailbox_list_fs_get_trash_dir
        - mailbox_list_get_path
        - mailbox_list_set_critical
        - rmdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:246,15'
          Dst:             mailbox_list_fs_get_trash_dir
        - Src:             'mailbox-list-fs.c:247,9'
          Dst:             mailbox_list_delete_maildir_via_trash
        - Src:             'mailbox-list-fs.c:254,8'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:257,5'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:258,8'
          Dst:             rmdir
        - Src:             'mailbox-list-fs.c:258,27'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:259,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:259,30'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:260,5'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:268,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:270,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:271,9'
          Dst:             mailbox_list_delete_mailbox_nonrecursive
    - functionName:    fs_list_get_path_to
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:55,10'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:59,10'
          Dst:             t_strdup_printf
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    fs_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          425
      EdgeCount:       103
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - i_unreached
        - lstat
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_path
        - mailbox_list_get_permissions
        - mailbox_list_get_root_forced
        - mailbox_list_get_storage
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - mailbox_list_set_error_from_errno
        - mkdir_parents_chgrp
        - rename
        - rename_dir
        - stat
        - strchr
        - strcmp
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:455,13'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-fs.c:456,6'
          Dst:             mailbox_list_get_storage
        - Src:             'mailbox-list-fs.c:459,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:461,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:463,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:464,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:466,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:468,14'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-fs.c:469,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:472,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:471,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:477,2'
          Dst:             mailbox_list_get_permissions
        - Src:             'mailbox-list-fs.c:478,2'
          Dst:             mailbox_list_get_permissions
        - Src:             'mailbox-list-fs.c:482,22'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-fs.c:482,6'
          Dst:             strchr
        - Src:             'mailbox-list-fs.c:486,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:493,6'
          Dst:             strrchr
        - Src:             'mailbox-list-fs.c:495,7'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-fs.c:496,7'
          Dst:             mkdir_parents_chgrp
        - Src:             'mailbox-list-fs.c:499,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:500,8'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-fs.c:503,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:513,6'
          Dst:             lstat
        - Src:             'mailbox-list-fs.c:514,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:517,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:518,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:521,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:521,33'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:521,33'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:521,33'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:522,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:528,7'
          Dst:             stat
        - Src:             'mailbox-list-fs.c:531,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:534,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:535,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:541,6'
          Dst:             rename
        - Src:             'mailbox-list-fs.c:542,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:542,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:542,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:542,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:544,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-fs.c:544,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:543,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:545,15'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-fs.c:546,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs.c:553,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-fs.c:556,8'
          Dst:             rename_dir
        - Src:             'mailbox-list-fs.c:558,8'
          Dst:             rename_dir
        - Src:             'mailbox-list-fs.c:560,8'
          Dst:             rename_dir
    - functionName:    fs_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          261
      EdgeCount:       70
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - fs_list_rmdir
        - i_unreached
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_path
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - rmdir
        - str_begins_with
        - strlen
        - strncmp
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:318,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:320,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:321,8'
          Dst:             fs_list_rmdir
        - Src:             'mailbox-list-fs.c:326,25'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:329,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:331,4'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:332,7'
          Dst:             fs_list_rmdir
        - Src:             'mailbox-list-fs.c:334,19'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:343,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:343,25'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:345,4'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-fs.c:345,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:344,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:346,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:346,35'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs.c:349,9'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-fs.c:350,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:351,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:354,7'
          Dst:             strlen
        - Src:             'mailbox-list-fs.c:354,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs.c:354,7'
          Dst:             str_begins_with
        - Src:             'mailbox-list-fs.c:356,8'
          Dst:             strrchr
        - Src:             'mailbox-list-fs.c:357,14'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-fs.c:357,8'
          Dst:             rmdir
        - Src:             'mailbox-list-fs.c:359,9'
          Dst:             fs_list_rmdir
        - Src:             'mailbox-list-fs.c:364,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:367,3'
          Dst:             mailbox_list_set_critical
    - functionName:    fs_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - fs_list_delete_maildir
        - i_panic
        - mailbox_list_delete_finish_ret
        - mailbox_list_delete_mailbox_file
        - mailbox_list_delete_until_root
        - mailbox_list_get_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:280,8'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs.c:284,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs.c:287,9'
          Dst:             mailbox_list_delete_mailbox_file
        - Src:             'mailbox-list-fs.c:289,9'
          Dst:             fs_list_delete_maildir
        - Src:             'mailbox-list-fs.c:292,3'
          Dst:             mailbox_list_delete_until_root
        - Src:             'mailbox-list-fs.c:294,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs.c:295,9'
          Dst:             mailbox_list_delete_finish_ret
    - functionName:    fs_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_list_set_error
        - subsfile_set_subscribed
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:213,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-fs.c:221,21'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-fs.c:221,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs.c:224,9'
          Dst:             subsfile_set_subscribed
    - functionName:    fs_list_join_refpattern
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:200,13'
          Dst:             t_strconcat
    - functionName:    fs_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          464
      EdgeCount:       92
      CyclomaticComplexity: 22
      functionsReached:
        - fs_list_get_path_to
        - i_panic
        - i_unreached
        - mailbox_list_default_get_root_path
        - mailbox_list_is_valid_name
        - mailbox_list_try_get_absolute_path
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-list-fs.c:90,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-fs.c:74,10'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list-fs.c:78,2'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list-fs.c:78,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs.c:80,6'
          Dst:             mailbox_list_try_get_absolute_path
        - Src:             'mailbox-list-fs.c:82,7'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:93,14'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:106,14'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:123,14'
          Dst:             fs_list_get_path_to
        - Src:             'mailbox-list-fs.c:130,14'
          Dst:             fs_list_get_path_to
        - Src:             'mailbox-list-fs.c:137,8'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:140,14'
          Dst:             fs_list_get_path_to
        - Src:             'mailbox-list-fs.c:148,13'
          Dst:             fs_list_get_path_to
        - Src:             'mailbox-list-fs.c:153,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs.c:159,13'
          Dst:             strcmp
        - Src:             'mailbox-list-fs.c:174,13'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs.c:177,13'
          Dst:             t_strdup_printf
    - functionName:    fs_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:41,2'
          Dst:             pool_unref
    - functionName:    fs_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs.c:26,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-fs.c:28,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-fs.c:28,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-fs.c:32,22'
          Dst:             p_strconcat
    - functionName:    index_list_rename_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_list_rename_mailbox
        - mailbox_list_get_hierarchy_sep
        - strrchr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:514,6'
          Dst:             index_list_rename_mailbox
        - Src:             'mailbox-list-index-backend.c:521,13'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-backend.c:526,18'
          Dst:             strrchr
        - Src:             'mailbox-list-index-backend.c:530,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:531,8'
          Dst:             index_list_rename_mailbox
    - functionName:    index_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          443
      EdgeCount:       84
      CyclomaticComplexity: 20
      functionsReached:
        - i_memcpy
        - i_panic
        - index_list_try_delete_nonexistent_parent
        - mail_index_expunge
        - mail_index_lookup_ext
        - mail_index_lookup_seq
        - mail_index_update_ext
        - mail_index_update_flags
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_index_lookup
        - mailbox_list_index_node_unlink
        - mailbox_list_index_subtree_hash_insert
        - mailbox_list_index_subtree_hash_remove
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_end
        - mailbox_list_index_sync_name
        - mailbox_list_set_error
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:822,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:827,6'
          Dst:             str_begins
        - Src:             'mailbox-list-index-backend.c:827,6'
          Dst:             strlen
        - Src:             'mailbox-list-index-backend.c:827,6'
          Dst:             strncmp
        - Src:             'mailbox-list-index-backend.c:827,6'
          Dst:             strlen
        - Src:             'mailbox-list-index-backend.c:827,6'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list-index-backend.c:828,18'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-backend.c:829,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:834,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index-backend.c:837,12'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-backend.c:839,9'
          Dst:             mailbox_list_index_sync_end
        - Src:             'mailbox-list-index-backend.c:841,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:840,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:844,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-backend.c:845,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:847,11'
          Dst:             mailbox_list_index_sync_name
        - Src:             'mailbox-list-index-backend.c:850,9'
          Dst:             mailbox_list_index_sync_end
        - Src:             'mailbox-list-index-backend.c:851,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:855,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:865,3'
          Dst:             mailbox_list_index_subtree_hash_remove
        - Src:             'mailbox-list-index-backend.c:872,3'
          Dst:             mailbox_list_index_subtree_hash_insert
        - Src:             'mailbox-list-index-backend.c:875,2'
          Dst:             mailbox_list_index_node_unlink
        - Src:             'mailbox-list-index-backend.c:879,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-backend.c:881,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:882,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-backend.c:884,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-backend.c:886,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:887,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-backend.c:896,3'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-backend.c:899,2'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-backend.c:901,2'
          Dst:             mail_index_expunge
        - Src:             'mailbox-list-index-backend.c:903,8'
          Dst:             mailbox_list_index_sync_end
        - Src:             'mailbox-list-index-backend.c:906,22'
          Dst:             index_list_try_delete_nonexistent_parent
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    index_list_try_delete_nonexistent_parent
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          147
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - index_list_delete_entry
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_index_lookup
        - mailbox_list_index_node_get_path
        - str_c
        - str_truncate
        - strrchr
        - t_str_new
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:703,13'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-backend.c:705,11'
          Dst:             strrchr
        - Src:             'mailbox-list-index-backend.c:712,42'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-index-backend.c:712,9'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-backend.c:713,14'
          Dst:             t_str_new
        - Src:             'mailbox-list-index-backend.c:724,4'
          Dst:             str_truncate
        - Src:             'mailbox-list-index-backend.c:725,4'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index-backend.c:726,38'
          Dst:             str_c
        - Src:             'mailbox-list-index-backend.c:726,8'
          Dst:             index_list_delete_entry
        - Src:             'mailbox-list-index-backend.c:729,21'
          Dst:             str_c
        - Src:             'mailbox-list-index-backend.c:729,13'
          Dst:             strrchr
        - Src:             'mailbox-list-index-backend.c:736,33'
          Dst:             str_c
        - Src:             'mailbox-list-index-backend.c:736,5'
          Dst:             str_truncate
        - Src:             'mailbox-list-index-backend.c:737,45'
          Dst:             str_c
        - Src:             'mailbox-list-index-backend.c:737,12'
          Dst:             mailbox_list_index_lookup
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    index_list_delete_entry
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_delete
        - mailbox_list_index_sync_end
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:679,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index-backend.c:686,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index-backend.c:688,8'
          Dst:             mailbox_list_index_sync_delete
        - Src:             'mailbox-list-index-backend.c:689,6'
          Dst:             mailbox_list_index_sync_end
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_has_corrupted_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_index_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:507,9'
          Dst:             mailbox_list_index_lookup
    - functionName:    index_list_mailbox_create_selectable
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          237
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - mail_index_get_header
        - mail_index_lookup_ext
        - mail_index_update_ext
        - mail_index_update_flags
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_reset
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_end
        - mailbox_list_index_sync_name
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:294,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-backend.c:302,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index-backend.c:305,8'
          Dst:             mailbox_list_index_sync_name
        - Src:             'mailbox-list-index-backend.c:311,3'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-backend.c:318,9'
          Dst:             mailbox_list_index_sync_end
        - Src:             'mailbox-list-index-backend.c:322,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-backend.c:324,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:325,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-backend.c:326,2'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-backend.c:326,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:332,2'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-backend.c:339,10'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-backend.c:340,7'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index-backend.c:341,23'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index-backend.c:342,3'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-backend.c:346,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-backend.c:347,2'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-backend.c:349,6'
          Dst:             mailbox_list_index_sync_end
        - Src:             'mailbox-list-index-backend.c:351,3'
          Dst:             mailbox_list_index_reset
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    guid_128_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/guid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/guid.h:38,2'
          Dst:             i_memcpy
    - functionName:    index_list_mailbox_create_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_update_flags
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_end
        - mailbox_list_index_sync_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:269,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index-backend.c:272,8'
          Dst:             mailbox_list_index_sync_name
        - Src:             'mailbox-list-index-backend.c:276,3'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-backend.c:283,6'
          Dst:             mailbox_list_index_sync_end
    - functionName:    index_list_node_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:242,6'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index-backend.c:245,9'
          Dst:             mailbox_list_index_lookup
    - functionName:    index_list_try_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          140
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - mailbox_list_delete_mailbox_nonrecursive
        - mailbox_list_delete_trash
        - mailbox_list_delete_until_root
        - mailbox_list_get_path
        - mailbox_list_set_critical
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:637,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-index-backend.c:639,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-index-backend.c:640,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index-backend.c:648,7'
          Dst:             mailbox_list_delete_mailbox_nonrecursive
        - Src:             'mailbox-list-index-backend.c:652,7'
          Dst:             mailbox_list_delete_trash
        - Src:             'mailbox-list-index-backend.c:653,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-index-backend.c:654,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-index-backend.c:660,2'
          Dst:             mailbox_list_delete_until_root
    - functionName:    index_list_delete_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_list_try_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:666,2'
          Dst:             index_list_try_delete
        - Src:             'mailbox-list-index-backend.c:667,2'
          Dst:             index_list_try_delete
        - Src:             'mailbox-list-index-backend.c:668,2'
          Dst:             index_list_try_delete
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    index_list_get_refreshed_node_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_lookup_seq
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh_force
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:93,13'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-backend.c:96,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-backend.c:99,7'
          Dst:             mailbox_list_index_refresh_force
        - Src:             'mailbox-list-index-backend.c:102,2'
          Dst:             i_panic
    - functionName:    index_get_guid_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - guid_128_to_string
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:112,3'
          Dst:             guid_128_to_string
        - Src:             'mailbox-list-index-backend.c:110,9'
          Dst:             t_strdup_printf
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    index_list_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          237
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - index_list_rename_corrupted
        - mail_index_ext_resize_hdr
        - mail_index_get_header_ext
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
        - mail_storage_set_error
        - mailbox_has_corrupted_name
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh
        - mailbox_name_hdr_decode_storage_name
        - mailbox_name_hdr_encode
        - memcmp
        - module_context_get_require
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:537,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-backend.c:543,7'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index-backend.c:545,7'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-backend.c:547,13'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:546,4'
          Dst:             mail_storage_set_error
        - Src:             'mailbox-list-index-backend.c:569,3'
          Dst:             mailbox_name_hdr_encode
        - Src:             'mailbox-list-index-backend.c:572,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mailbox-list-index-backend.c:580,6'
          Dst:             memcmp
        - Src:             'mailbox-list-index-backend.c:582,14'
          Dst:             mailbox_has_corrupted_name
        - Src:             'mailbox-list-index-backend.c:585,4'
          Dst:             mail_index_transaction_begin
        - Src:             'mailbox-list-index-backend.c:586,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'mailbox-list-index-backend.c:588,3'
          Dst:             mail_index_update_header_ext
        - Src:             'mailbox-list-index-backend.c:590,9'
          Dst:             mail_index_transaction_commit
        - Src:             'mailbox-list-index-backend.c:594,4'
          Dst:             mailbox_name_hdr_decode_storage_name
        - Src:             'mailbox-list-index-backend.c:596,3'
          Dst:             index_list_rename_corrupted
    - functionName:    index_list_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_list_node_exists
        - mail_storage_copy_list_error
        - mailbox_is_autocreated
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:485,20'
          Dst:             mailbox_is_autocreated
        - Src:             'mailbox-list-index-backend.c:493,6'
          Dst:             index_list_node_exists
        - Src:             'mailbox-list-index-backend.c:494,3'
          Dst:             mail_storage_copy_list_error
    - functionName:    index_list_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          149
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - guid_128_is_empty
        - index_get_guid_path
        - mail_storage_set_error
        - mailbox_list_default_get_root_path
        - mailbox_list_get_path
        - mailbox_list_index_update_mailbox_index
        - mailbox_set_critical
        - module_context_get_require
        - rename
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:444,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-backend.c:447,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-index-backend.c:456,7'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-backend.c:457,6'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list-index-backend.c:460,14'
          Dst:             index_get_guid_path
        - Src:             'mailbox-list-index-backend.c:462,7'
          Dst:             strcmp
        - Src:             'mailbox-list-index-backend.c:464,12'
          Dst:             rename
        - Src:             'mailbox-list-index-backend.c:466,12'
          Dst:             __errno_location
        - Src:             'mailbox-list-index-backend.c:468,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:467,4'
          Dst:             mail_storage_set_error
        - Src:             'mailbox-list-index-backend.c:471,4'
          Dst:             mailbox_set_critical
        - Src:             'mailbox-list-index-backend.c:477,2'
          Dst:             mailbox_list_index_update_mailbox_index
    - functionName:    index_list_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          305
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - guid_128_copy
        - guid_128_generate
        - guid_128_is_empty
        - index_list_mailbox_create_dir
        - index_list_mailbox_create_selectable
        - index_list_node_exists
        - mail_storage_copy_list_error
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
        - mail_storage_set_error
        - mailbox_delete
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:361,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-backend.c:369,6'
          Dst:             index_list_node_exists
        - Src:             'mailbox-list-index-backend.c:370,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mailbox-list-index-backend.c:375,14'
          Dst:             index_list_mailbox_create_dir
        - Src:             'mailbox-list-index-backend.c:376,4'
          Dst:             mail_storage_copy_list_error
        - Src:             'mailbox-list-index-backend.c:386,7'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-backend.c:387,4'
          Dst:             guid_128_generate
        - Src:             'mailbox-list-index-backend.c:398,3'
          Dst:             guid_128_copy
        - Src:             'mailbox-list-index-backend.c:401,3'
          Dst:             guid_128_copy
        - Src:             'mailbox-list-index-backend.c:408,10'
          Dst:             index_list_mailbox_create_selectable
        - Src:             'mailbox-list-index-backend.c:410,5'
          Dst:             mail_storage_copy_list_error
        - Src:             'mailbox-list-index-backend.c:417,6'
          Dst:             mail_storage_last_error_push
        - Src:             'mailbox-list-index-backend.c:418,9'
          Dst:             mailbox_delete
        - Src:             'mailbox-list-index-backend.c:421,6'
          Dst:             mail_storage_last_error_pop
        - Src:             'mailbox-list-index-backend.c:425,3'
          Dst:             guid_128_copy
        - Src:             'mailbox-list-index-backend.c:433,3'
          Dst:             mail_storage_set_error
    - functionName:    mailbox_list_index_backend_init_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     externalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:969,6'
          Dst:             strcmp
    - functionName:    index_list_delete_symlink
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:802,2'
          Dst:             mailbox_list_set_error
    - functionName:    index_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_list_delete_entry
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:788,13'
          Dst:             index_list_delete_entry
        - Src:             'mailbox-list-index-backend.c:791,3'
          Dst:             mailbox_list_set_error
    - functionName:    index_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          167
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - index_list_delete_entry
        - index_list_delete_finish
        - index_list_try_delete_nonexistent_parent
        - mailbox_list_delete_mailbox_file
        - mailbox_list_delete_mailbox_nonrecursive
        - mailbox_list_get_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:754,8'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-index-backend.c:763,9'
          Dst:             mailbox_list_delete_mailbox_file
        - Src:             'mailbox-list-index-backend.c:765,9'
          Dst:             mailbox_list_delete_mailbox_nonrecursive
        - Src:             'mailbox-list-index-backend.c:771,3'
          Dst:             index_list_delete_finish
        - Src:             'mailbox-list-index-backend.c:773,7'
          Dst:             index_list_delete_entry
        - Src:             'mailbox-list-index-backend.c:777,9'
          Dst:             index_list_try_delete_nonexistent_parent
    - functionName:    index_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_set_error
        - subsfile_set_subscribed
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:220,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:225,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list-index-backend.c:230,9'
          Dst:             subsfile_set_subscribed
    - functionName:    index_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:935,2'
          Dst:             pool_unref
    - functionName:    index_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 930
      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:    index_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:918,3'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index-backend.c:919,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-backend.c:919,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-backend.c:923,2'
          Dst:             array_create_i
    - functionName:    index_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          293
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - guid_128_is_empty
        - i_panic
        - i_unreached
        - index_get_guid_path
        - index_list_get_refreshed_node_seq
        - mail_index_lookup_seq
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_default_get_root_path
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh
        - mailbox_list_index_status
        - mailbox_list_set_error
        - module_context_get_require
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-list-index-backend.c:135,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:130,10'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list-index-backend.c:143,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-index-backend.c:147,7'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list-index-backend.c:151,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index-backend.c:152,13'
          Dst:             index_get_guid_path
        - Src:             'mailbox-list-index-backend.c:159,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-backend.c:165,10'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-backend.c:169,14'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-backend.c:172,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:175,7'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index-backend.c:177,10'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-backend.c:178,9'
          Dst:             index_list_get_refreshed_node_seq
        - Src:             'mailbox-list-index-backend.c:180,4'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-backend.c:184,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-backend.c:187,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:186,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:189,14'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-backend.c:192,6'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-backend.c:194,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-backend.c:193,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-backend.c:197,13'
          Dst:             index_get_guid_path
        - Src:             'mailbox-list-index-backend.c:201,3'
          Dst:             mail_index_view_close
    - functionName:    index_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:60,2'
          Dst:             pool_unref
    - functionName:    index_list_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:36,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index-backend.c:38,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-backend.c:38,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-backend.c:42,22'
          Dst:             p_strconcat
    - functionName:    mailbox_list_index_backend_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     externalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:621,37'
          Dst:             module_context_get_require
    - functionName:    mailbox_list_index_backend_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-backend.c'
      linkageType:     externalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-backend.c:604,37'
          Dst:             module_context_get_require
    - functionName:    index_list_get_guid_from_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - guid_128_from_string
        - mailbox_get_path_to
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:203,6'
          Dst:             mailbox_get_path_to
        - Src:             'mailbox-list-index-status.c:205,20'
          Dst:             strrchr
        - Src:             'mailbox-list-index-status.c:208,9'
          Dst:             guid_128_from_string
    - functionName:    index_list_get_cached_first_saved
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcpy
        - mail_index_lookup_ext
        - mail_index_view_close
        - mailbox_list_index_status
        - mailbox_list_index_view_open
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:292,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:303,13'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:306,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:309,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:313,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:319,2'
          Dst:             mail_index_view_close
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_list_index_status
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      bool
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          329
      EdgeCount:       75
      CyclomaticComplexity: 20
      functionsReached:
        - i_memcpy
        - mail_index_lookup_ext
        - module_context_get_require
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:68,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:76,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:91,5'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:99,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:116,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:129,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:140,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:145,4'
          Dst:             i_memcpy
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    index_list_get_cached_vsize
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          195
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mail_index_view_close
        - mailbox_list_index_status
        - mailbox_list_index_view_open
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:251,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:259,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-status.c:261,13'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:264,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:280,3'
          Dst:             event_want_level
        - Src:             'mailbox-list-index-status.c:280,3'
          Dst:             e_debug
        - Src:             'mailbox-list-index-status.c:280,3'
          Dst:             event_send_abort
        - Src:             'mailbox-list-index-status.c:284,2'
          Dst:             mail_index_view_close
    - functionName:    index_list_get_cached_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          147
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - guid_128_is_empty
        - index_list_get_guid_from_path
        - mail_index_view_close
        - mailbox_list_index_status
        - mailbox_list_index_view_open
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:214,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:223,6'
          Dst:             index_list_get_guid_from_path
        - Src:             'mailbox-list-index-status.c:231,13'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:234,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:236,17'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-status.c:241,3'
          Dst:             event_want_level
        - Src:             'mailbox-list-index-status.c:241,3'
          Dst:             e_debug
        - Src:             'mailbox-list-index-status.c:241,3'
          Dst:             event_send_abort
        - Src:             'mailbox-list-index-status.c:245,2'
          Dst:             mail_index_view_close
    - functionName:    index_list_try_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          214
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - index_list_get_cached_first_saved
        - index_list_get_cached_guid
        - index_list_get_cached_vsize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:331,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-status.c:353,14'
          Dst:             index_list_get_cached_guid
        - Src:             'mailbox-list-index-status.c:358,14'
          Dst:             index_list_get_cached_vsize
        - Src:             'mailbox-list-index-status.c:370,14'
          Dst:             index_list_get_cached_first_saved
    - functionName:    index_list_get_cached_status
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_index_view_close
        - mailbox_get_private_flags_mask
        - mailbox_list_index_status
        - mailbox_list_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:165,7'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'mailbox-list-index-status.c:171,13'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:174,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:177,3'
          Dst:             event_want_level
        - Src:             'mailbox-list-index-status.c:177,3'
          Dst:             e_debug
        - Src:             'mailbox-list-index-status.c:177,3'
          Dst:             event_send_abort
        - Src:             'mailbox-list-index-status.c:181,2'
          Dst:             mail_index_view_close
    - functionName:    index_list_first_saved_update_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:463,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:468,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:473,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:474,6'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mailbox-list-index-status.c:475,3'
          Dst:             mail_index_lookup_uid
    - functionName:    index_list_update_fill_vsize
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:400,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mailbox-list-index-status.c:403,3'
          Dst:             i_memcpy
    - functionName:    index_list_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          309
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - guid_128_equals
        - guid_128_is_empty
        - index_list_first_saved_update_changes
        - mailbox_list_index_status
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:498,20'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:507,7'
          Dst:             guid_128_equals
        - Src:             'mailbox-list-index-status.c:508,7'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-status.c:530,6'
          Dst:             memcmp
        - Src:             'mailbox-list-index-status.c:532,2'
          Dst:             index_list_first_saved_update_changes
    - functionName:    index_list_update_fill_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          181
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - index_list_update_fill_vsize
        - mail_index_get_header
        - mail_index_lookup_seq
        - mail_index_lookup_seq_range
        - mail_index_modseq_get_highest
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_get_metadata
        - mailbox_list_index_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:419,9'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-status.c:422,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-status.c:429,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-status.c:430,8'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index-status.c:439,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mailbox-list-index-status.c:445,37'
          Dst:             mail_index_modseq_get_highest
        - Src:             'mailbox-list-index-status.c:450,2'
          Dst:             index_list_update_fill_vsize
        - Src:             'mailbox-list-index-status.c:451,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-status.c:453,6'
          Dst:             mailbox_get_metadata
        - Src:             'mailbox-list-index-status.c:454,3'
          Dst:             i_memcpy
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_list_update_first_saved
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_alloc
        - mail_free
        - mail_get_save_date
        - mail_index_update_ext
        - mail_index_view_get_messages_count
        - mail_set_seq
        - mailbox_get_last_mail_error
        - mailbox_transaction_begin
        - mailbox_transaction_commit
        - module_context_get_require
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:544,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:556,7'
          Dst:             mailbox_transaction_begin
        - Src:             'mailbox-list-index-status.c:557,10'
          Dst:             mail_alloc
        - Src:             'mailbox-list-index-status.c:558,20'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mailbox-list-index-status.c:560,4'
          Dst:             mail_set_seq
        - Src:             'mailbox-list-index-status.c:561,8'
          Dst:             mail_get_save_date
        - Src:             'mailbox-list-index-status.c:563,29'
          Dst:             time_to_uint32_trunc
        - Src:             'mailbox-list-index-status.c:566,8'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mailbox-list-index-status.c:571,3'
          Dst:             mail_free
        - Src:             'mailbox-list-index-status.c:572,9'
          Dst:             mailbox_transaction_commit
        - Src:             'mailbox-list-index-status.c:575,3'
          Dst:             mail_index_update_ext
    - functionName:    mailbox_list_index_status_init_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_ext_register
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:876,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:878,23'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index-status.c:883,3'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index-status.c:886,3'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index-status.c:889,3'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index-status.c:892,3'
          Dst:             mail_index_ext_register
    - functionName:    index_list_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_list_update_mailbox
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
        - mailbox_get_storage
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:810,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:823,31'
          Dst:             mailbox_get_storage
        - Src:             'mailbox-list-index-status.c:823,2'
          Dst:             mail_storage_last_error_push
        - Src:             'mailbox-list-index-status.c:824,8'
          Dst:             index_list_update_mailbox
        - Src:             'mailbox-list-index-status.c:825,30'
          Dst:             mailbox_get_storage
        - Src:             'mailbox-list-index-status.c:825,2'
          Dst:             mail_storage_last_error_pop
    - functionName:    index_list_update_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          309
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - i_panic
        - index_list_has_changed
        - index_list_update
        - index_list_update_fill_changes
        - mail_index_refresh
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_next
        - mail_index_sync_rollback
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_refresh
        - mailbox_list_index_refresh_later
        - mailbox_set_index_error
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:641,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:648,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-status.c:661,6'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index-status.c:662,3'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index-status.c:667,14'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-status.c:668,7'
          Dst:             index_list_update_fill_changes
        - Src:             'mailbox-list-index-status.c:670,11'
          Dst:             index_list_has_changed
        - Src:             'mailbox-list-index-status.c:678,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-status.c:681,4'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index-status.c:688,6'
          Dst:             mail_index_sync_begin
        - Src:             'mailbox-list-index-status.c:690,3'
          Dst:             mailbox_set_index_error
        - Src:             'mailbox-list-index-status.c:694,6'
          Dst:             mail_index_refresh
        - Src:             'mailbox-list-index-status.c:695,3'
          Dst:             mailbox_set_index_error
        - Src:             'mailbox-list-index-status.c:696,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mailbox-list-index-status.c:700,7'
          Dst:             index_list_update_fill_changes
        - Src:             'mailbox-list-index-status.c:701,3'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index-status.c:704,7'
          Dst:             index_list_has_changed
        - Src:             'mailbox-list-index-status.c:705,4'
          Dst:             index_list_update
        - Src:             'mailbox-list-index-status.c:715,9'
          Dst:             mail_index_sync_next
        - Src:             'mailbox-list-index-status.c:716,6'
          Dst:             mail_index_sync_commit
        - Src:             'mailbox-list-index-status.c:717,3'
          Dst:             mailbox_set_index_error
    - functionName:    index_list_update
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          252
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - index_list_update_first_saved
        - mail_index_lookup_ext
        - mail_index_update_ext
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:587,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:594,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-status.c:596,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-status.c:597,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:601,8'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-status.c:602,4'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:603,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-status.c:616,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-status.c:620,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-status.c:626,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-status.c:631,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-status.c:636,3'
          Dst:             index_list_update_first_saved
    - functionName:    index_list_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_list_try_get_metadata
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:384,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:387,13'
          Dst:             index_list_try_get_metadata
    - functionName:    index_list_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_list_get_cached_status
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:189,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:192,7'
          Dst:             index_list_get_cached_status
    - functionName:    index_list_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_lookup
        - mail_index_view_close
        - mailbox_list_index_view_open
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:35,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:41,6'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:47,8'
          Dst:             mail_index_lookup
        - Src:             'mailbox-list-index-status.c:49,2'
          Dst:             mail_index_view_close
    - functionName:    mailbox_list_index_status_init_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 872
      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:    mailbox_list_index_status_set_info_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_lookup_seq
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_status
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:832,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:839,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-status.c:840,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-status.c:851,3'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-status.c:856,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:858,2'
          Dst:             mail_index_view_close
    - functionName:    mailbox_list_index_status_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_list_update_mailbox
        - mail_index_get_header
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
        - mailbox_get_storage
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:785,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:786,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:789,8'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index-status.c:800,31'
          Dst:             mailbox_get_storage
        - Src:             'mailbox-list-index-status.c:800,2'
          Dst:             mail_storage_last_error_push
        - Src:             'mailbox-list-index-status.c:801,8'
          Dst:             index_list_update_mailbox
        - Src:             'mailbox-list-index-status.c:802,30'
          Dst:             mailbox_get_storage
        - Src:             'mailbox-list-index-status.c:802,2'
          Dst:             mail_storage_last_error_pop
    - functionName:    mailbox_list_index_status_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_get_header
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:775,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-status.c:778,8'
          Dst:             mail_index_get_header
    - functionName:    guid_128_empty
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/guid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      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:    mailbox_list_index_update_mailbox_index
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-status.c'
      linkageType:     externalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - guid_128_empty
        - guid_128_equals
        - guid_128_is_empty
        - i_memcpy
        - index_list_update
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_view_close
        - mailbox_list_index_status
        - mailbox_list_index_view_open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-status.c:738,6'
          Dst:             mailbox_list_index_view_open
        - Src:             'mailbox-list-index-status.c:741,2'
          Dst:             guid_128_empty
        - Src:             'mailbox-list-index-status.c:742,8'
          Dst:             mailbox_list_index_status
        - Src:             'mailbox-list-index-status.c:750,7'
          Dst:             guid_128_equals
        - Src:             'mailbox-list-index-status.c:751,7'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-status.c:753,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-status.c:766,15'
          Dst:             mail_index_transaction_begin
        - Src:             'mailbox-list-index-status.c:768,2'
          Dst:             index_list_update
        - Src:             'mailbox-list-index-status.c:769,8'
          Dst:             mail_index_transaction_commit
        - Src:             'mailbox-list-index-status.c:770,2'
          Dst:             mail_index_view_close
    - functionName:    sync_expunge_nonexistent
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_expunge
        - mail_index_lookup_seq
        - mailbox_list_index_node_unlink
        - sync_expunge_nonexistent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:261,4'
          Dst:             sync_expunge_nonexistent
        - Src:             'mailbox-list-index-sync.c:264,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-sync.c:266,5'
          Dst:             mail_index_expunge
        - Src:             'mailbox-list-index-sync.c:267,4'
          Dst:             mailbox_list_index_node_unlink
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_node_clear_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_index_node_clear_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:246,4'
          Dst:             mailbox_list_index_node_clear_exists
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    uint32_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/sort.h'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_existing_name_ids
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - get_existing_name_ids
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:177,4'
          Dst:             get_existing_name_ids
        - Src:             'mailbox-list-index-sync.c:178,3'
          Dst:             array_append_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mailbox_list_index_sync_names
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          244
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - array_create_i
        - array_free_i
        - array_sort_i
        - buffer_append
        - buffer_append_zero
        - buffer_create_dynamic
        - buffer_free
        - get_existing_name_ids
        - hash_table_lookup
        - i_memcpy
        - i_panic
        - mail_index_ext_resize
        - mail_index_get_header_ext
        - mail_index_update_header_ext
        - nearest_power
        - strlen
        - uint32_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:194,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-sync.c:195,2'
          Dst:             get_existing_name_ids
        - Src:             'mailbox-list-index-sync.c:196,2'
          Dst:             array_sort_i
        - Src:             'mailbox-list-index-sync.c:196,2'
          Dst:             uint32_cmp
        - Src:             'mailbox-list-index-sync.c:198,12'
          Dst:             buffer_create_dynamic
        - Src:             'mailbox-list-index-sync.c:199,2'
          Dst:             buffer_append_zero
        - Src:             'mailbox-list-index-sync.c:203,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-sync.c:205,4'
          Dst:             buffer_append
        - Src:             'mailbox-list-index-sync.c:207,12'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index-sync.c:213,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:214,33'
          Dst:             strlen
        - Src:             'mailbox-list-index-sync.c:214,4'
          Dst:             buffer_append
        - Src:             'mailbox-list-index-sync.c:218,2'
          Dst:             buffer_append_zero
        - Src:             'mailbox-list-index-sync.c:221,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mailbox-list-index-sync.c:223,6'
          Dst:             nearest_power
        - Src:             'mailbox-list-index-sync.c:223,33'
          Dst:             nearest_power
        - Src:             'mailbox-list-index-sync.c:225,11'
          Dst:             nearest_power
        - Src:             'mailbox-list-index-sync.c:224,3'
          Dst:             mail_index_ext_resize
        - Src:             'mailbox-list-index-sync.c:229,2'
          Dst:             mail_index_update_header_ext
        - Src:             'mailbox-list-index-sync.c:234,3'
          Dst:             mail_index_update_header_ext
        - Src:             'mailbox-list-index-sync.c:237,2'
          Dst:             buffer_free
        - Src:             'mailbox-list-index-sync.c:238,2'
          Dst:             array_free_i
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_list_index_sync_update_corrupted_node
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_index_lookup_ext
        - mail_index_lookup_seq
        - mail_index_update_ext
        - mail_index_update_flags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:439,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-sync.c:443,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-sync.c:446,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:448,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-sync.c:451,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-sync.c:456,3'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-sync.c:461,3'
          Dst:             mail_index_update_flags
    - functionName:    mailbox_list_index_sync_update_corrupted_nodes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_sync_update_corrupted_node
        - mailbox_list_index_sync_update_corrupted_nodes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:471,3'
          Dst:             mailbox_list_index_sync_update_corrupted_node
        - Src:             'mailbox-list-index-sync.c:472,3'
          Dst:             mailbox_list_index_sync_update_corrupted_nodes
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    node_lookup_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_metadata
        - mailbox_list_get_vname
        - mailbox_list_index_node_get_path
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:19,18'
          Dst:             t_str_new
        - Src:             'mailbox-list-index-sync.c:21,2'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index-sync.c:23,44'
          Dst:             str_c
        - Src:             'mailbox-list-index-sync.c:23,10'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-index-sync.c:24,8'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-index-sync.c:25,6'
          Dst:             mailbox_get_metadata
        - Src:             'mailbox-list-index-sync.c:26,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-sync.c:27,2'
          Dst:             mailbox_free
    - functionName:    node_add_to_index
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_append
        - mail_index_update_ext
        - mail_index_update_flags
        - node_lookup_guid
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:44,25'
          Dst:             t_push
        - Src:             'mailbox-list-index-sync.c:45,3'
          Dst:             node_lookup_guid
        - Src:             'mailbox-list-index-sync.c:46,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index-sync.c:46,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:48,2'
          Dst:             mail_index_append
        - Src:             'mailbox-list-index-sync.c:49,2'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-sync.c:51,2'
          Dst:             mail_index_update_ext
    - functionName:    mailbox_list_index_node_add_common
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          99
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:62,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-sync.c:62,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-sync.c:77,2'
          Dst:             hash_table_insert
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mailbox_list_index_sync_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          163
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_index_expunge
        - mail_index_lookup_ext
        - mail_index_lookup_seq
        - mail_index_update_ext
        - mail_index_update_flags
        - mailbox_list_index_lookup
        - mailbox_list_index_node_unlink
        - mailbox_list_set_error
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:545,9'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index-sync.c:548,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index-sync.c:547,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index-sync.c:551,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-sync.c:552,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:556,3'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-sync.c:559,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index-sync.c:562,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:563,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-sync.c:566,3'
          Dst:             mail_index_update_ext
        - Src:             'mailbox-list-index-sync.c:576,2'
          Dst:             mail_index_expunge
        - Src:             'mailbox-list-index-sync.c:577,2'
          Dst:             mailbox_list_index_node_unlink
    - functionName:    mailbox_list_index_sync_list
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          287
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - mail_index_update_flags
        - mailbox_list_get_storage_name
        - mailbox_list_index_node_clear_exists
        - mailbox_list_index_sync_name
        - pool_alloconly_create
        - pool_unref
        - strcmp
        - sync_expunge_nonexistent
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:353,2'
          Dst:             mailbox_list_index_node_clear_exists
        - Src:             'mailbox-list-index-sync.c:367,14'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index-sync.c:371,77'
          Dst:             t_push
        - Src:             'mailbox-list-index-sync.c:380,22'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-index-sync.c:382,7'
          Dst:             strcmp
        - Src:             'mailbox-list-index-sync.c:383,7'
          Dst:             strcmp
        - Src:             'mailbox-list-index-sync.c:387,10'
          Dst:             mailbox_list_index_sync_name
        - Src:             'mailbox-list-index-sync.c:390,4'
          Dst:             mail_index_update_flags
        - Src:             'mailbox-list-index-sync.c:394,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index-sync.c:394,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:398,2'
          Dst:             pool_unref
        - Src:             'mailbox-list-index-sync.c:403,2'
          Dst:             sync_expunge_nonexistent
    - functionName:    mailbox_list_index_sync_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          233
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mail_index_lookup_seq
        - mailbox_list_index_node_add
        - mailbox_list_index_node_add_inbox_inbox
        - mailbox_list_index_node_find_sibling
        - strcmp
        - t_strsplit
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:134,3'
          Dst:             t_strsplit
        - Src:             'mailbox-list-index-sync.c:138,10'
          Dst:             mailbox_list_index_node_find_sibling
        - Src:             'mailbox-list-index-sync.c:150,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:151,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-sync.c:152,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:156,7'
          Dst:             strcmp
        - Src:             'mailbox-list-index-sync.c:157,11'
          Dst:             mailbox_list_index_node_add_inbox_inbox
        - Src:             'mailbox-list-index-sync.c:161,11'
          Dst:             mailbox_list_index_node_add
    - functionName:    mailbox_list_index_node_add_inbox_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_index_node_add_common
        - mailbox_list_index_node_hash_insert
        - node_add_to_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:111,3'
          Dst:             mailbox_list_index_node_add_common
        - Src:             'mailbox-list-index-sync.c:115,2'
          Dst:             mailbox_list_index_node_hash_insert
        - Src:             'mailbox-list-index-sync.c:117,2'
          Dst:             node_add_to_index
    - functionName:    mailbox_list_index_node_add
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          69
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_insert
        - mailbox_list_index_node_add_common
        - mailbox_list_index_node_hash_insert
        - mailbox_list_name_unescape
        - node_add_to_index
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:88,3'
          Dst:             mailbox_list_index_node_add_common
        - Src:             'mailbox-list-index-sync.c:91,2'
          Dst:             mailbox_list_name_unescape
        - Src:             'mailbox-list-index-sync.c:96,30'
          Dst:             p_strdup
        - Src:             'mailbox-list-index-sync.c:97,2'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-index-sync.c:100,2'
          Dst:             mailbox_list_index_node_hash_insert
        - Src:             'mailbox-list-index-sync.c:102,2'
          Dst:             node_add_to_index
    - functionName:    mailbox_list_index_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_end
        - mailbox_list_index_sync_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:520,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index-sync.c:531,9'
          Dst:             mailbox_list_index_sync_list
        - Src:             'mailbox-list-index-sync.c:533,9'
          Dst:             mailbox_list_index_sync_end
    - functionName:    mailbox_list_index_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          204
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mail_index_sync_begin
        - mail_index_sync_rollback
        - mail_index_transaction_open_updated_view
        - mail_index_update_header
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_index_handle_corruption
        - mailbox_list_index_index_open
        - mailbox_list_index_parse
        - mailbox_list_index_reset
        - mailbox_list_index_set_index_error
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
        - time_to_uint32
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:276,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-sync.c:284,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:287,6'
          Dst:             mailbox_list_index_index_open
        - Src:             'mailbox-list-index-sync.c:290,6'
          Dst:             mail_index_sync_begin
        - Src:             'mailbox-list-index-sync.c:292,3'
          Dst:             mailbox_list_index_set_index_error
        - Src:             'mailbox-list-index-sync.c:295,2'
          Dst:             mailbox_list_index_reset
        - Src:             'mailbox-list-index-sync.c:298,6'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index-sync.c:299,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mailbox-list-index-sync.c:304,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mailbox-list-index-sync.c:305,7'
          Dst:             mailbox_list_index_handle_corruption
        - Src:             'mailbox-list-index-sync.c:311,13'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-sync.c:311,13'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-sync.c:314,21'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-sync.c:319,8'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index-sync.c:324,27'
          Dst:             time_to_uint32
        - Src:             'mailbox-list-index-sync.c:326,3'
          Dst:             mail_index_update_header
        - Src:             'mailbox-list-index-sync.c:330,19'
          Dst:             mail_index_transaction_open_updated_view
    - functionName:    mailbox_list_index_sync_end
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_sync_commit
        - mail_index_sync_next
        - mail_index_sync_rollback
        - mail_index_view_close
        - mailbox_list_index_set_index_error
        - mailbox_list_index_sync_update_corrupted
        - mailbox_list_index_sync_update_hdr
        - p_free_internal
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:495,3'
          Dst:             mailbox_list_index_sync_update_corrupted
        - Src:             'mailbox-list-index-sync.c:496,3'
          Dst:             mailbox_list_index_sync_update_hdr
        - Src:             'mailbox-list-index-sync.c:498,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-sync.c:502,10'
          Dst:             mail_index_sync_next
        - Src:             'mailbox-list-index-sync.c:503,14'
          Dst:             mail_index_sync_commit
        - Src:             'mailbox-list-index-sync.c:504,4'
          Dst:             mailbox_list_index_set_index_error
        - Src:             'mailbox-list-index-sync.c:506,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mailbox-list-index-sync.c:511,2'
          Dst:             p_free_internal
    - functionName:    mailbox_list_index_sync_update_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_sync_update_corrupted_nodes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:482,2'
          Dst:             mailbox_list_index_sync_update_corrupted_nodes
    - functionName:    mailbox_list_index_sync_update_hdr
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_update_header_ext
        - mailbox_list_index_need_refresh
        - mailbox_list_index_sync_names
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-sync.c:414,3'
          Dst:             t_push
        - Src:             'mailbox-list-index-sync.c:415,4'
          Dst:             mailbox_list_index_sync_names
        - Src:             'mailbox-list-index-sync.c:416,5'
          Dst:             t_pop
        - Src:             'mailbox-list-index-sync.c:416,5'
          Dst:             i_panic
        - Src:             'mailbox-list-index-sync.c:418,13'
          Dst:             mailbox_list_index_need_refresh
        - Src:             'mailbox-list-index-sync.c:424,3'
          Dst:             mail_index_update_header_ext
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mailbox_list_index_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1508
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_index_backend_sync_deinit
        - mailbox_list_index_status_sync_deinit
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1496,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1503,2'
          Dst:             mailbox_list_index_status_sync_deinit
        - Src:             'mailbox-list-index.c:1505,10'
          Dst:             mailbox_list_index_backend_sync_deinit
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1483
      functionLinenumberEnd: 1489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_backend_sync_init
        - mailbox_list_index_status_sync_init
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1484,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1486,2'
          Dst:             mailbox_list_index_status_sync_init
        - Src:             'mailbox-list-index.c:1488,3'
          Dst:             mailbox_list_index_backend_sync_init
    - functionName:    mailbox_list_index_update_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_get_last_mail_error
        - mailbox_list_index_refresh_if_found
        - mailbox_list_index_update_mailbox_index
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1264,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1267,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mailbox-list-index.c:1268,4'
          Dst:             mailbox_list_index_refresh_if_found
        - Src:             'mailbox-list-index.c:1272,2'
          Dst:             mailbox_list_index_update_mailbox_index
    - functionName:    mailbox_list_index_refresh_if_found
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh_force
        - mailbox_list_index_refresh_later
        - mailbox_list_last_error_pop
        - mailbox_list_last_error_push
        - module_context_get_require
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1196,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1202,2'
          Dst:             mailbox_list_last_error_push
        - Src:             'mailbox-list-index.c:1203,8'
          Dst:             mailbox_list_index_refresh_force
        - Src:             'mailbox-list-index.c:1204,9'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index.c:1210,3'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index.c:1212,2'
          Dst:             mailbox_list_last_error_pop
    - functionName:    mailbox_list_index_refresh_force
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 966
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          209
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_get_last_internal_error
        - mailbox_list_index_handle_corruption
        - mailbox_list_index_index_open
        - mailbox_list_index_need_refresh
        - mailbox_list_index_parse
        - mailbox_list_index_set_index_error
        - mailbox_list_index_sync
        - mailbox_list_set_critical
        - module_context_get_require
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:920,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:925,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:927,6'
          Dst:             mailbox_list_index_index_open
        - Src:             'mailbox-list-index.c:929,6'
          Dst:             mail_index_refresh
        - Src:             'mailbox-list-index.c:930,3'
          Dst:             mailbox_list_index_set_index_error
        - Src:             'mailbox-list-index.c:934,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index.c:935,17'
          Dst:             mailbox_list_index_need_refresh
        - Src:             'mailbox-list-index.c:938,9'
          Dst:             mailbox_list_index_sync
        - Src:             'mailbox-list-index.c:944,11'
          Dst:             mail_index_refresh
        - Src:             'mailbox-list-index.c:946,6'
          Dst:             mailbox_list_index_set_index_error
        - Src:             'mailbox-list-index.c:949,11'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index.c:952,9'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index.c:954,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index.c:957,6'
          Dst:             mailbox_list_index_handle_corruption
        - Src:             'mailbox-list-index.c:960,4'
          Dst:             mailbox_list_get_last_internal_error
        - Src:             'mailbox-list-index.c:958,3'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_index_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mailbox_list_index_lookup_real
        - t_pop
        - t_push
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:203,2'
          Dst:             t_push
        - Src:             'mailbox-list-index.c:204,10'
          Dst:             mailbox_list_index_lookup_real
        - Src:             'mailbox-list-index.c:205,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index.c:205,4'
          Dst:             i_panic
    - functionName:    mailbox_list_index_refresh_later
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_mark_corrupted
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_index_open
        - mailbox_list_index_need_refresh
        - mailbox_list_index_refresh_timeout
        - module_context_get_require
        - timeout_add
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:978,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:989,8'
          Dst:             mailbox_list_index_index_open
        - Src:             'mailbox-list-index.c:991,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index.c:992,7'
          Dst:             mailbox_list_index_need_refresh
        - Src:             'mailbox-list-index.c:995,11'
          Dst:             mail_index_transaction_begin
        - Src:             'mailbox-list-index.c:997,3'
          Dst:             mail_index_update_header_ext
        - Src:             'mailbox-list-index.c:1000,7'
          Dst:             mail_index_transaction_commit
        - Src:             'mailbox-list-index.c:1001,4'
          Dst:             mail_index_mark_corrupted
        - Src:             'mailbox-list-index.c:1004,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index.c:1008,4'
          Dst:             timeout_add
        - Src:             'mailbox-list-index.c:1008,4'
          Dst:             mailbox_list_index_refresh_timeout
    - functionName:    mailbox_list_index_index_open
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          234
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - mail_index_move_to_memory
        - mail_index_open_or_create
        - mail_index_set_fsync_mode
        - mail_index_set_lock_method
        - mail_index_set_optimization_settings
        - mail_index_set_permissions
        - mail_index_use_existing_permissions
        - mail_storage_settings_to_index_flags
        - mailbox_list_get_root_permissions
        - mailbox_list_mkdir_missing_list_index_root
        - mailbox_list_set_internal_error
        - module_context_get_require
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:59,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:68,6'
          Dst:             mailbox_list_mkdir_missing_list_index_root
        - Src:             'mailbox-list-index.c:71,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:73,16'
          Dst:             mail_storage_settings_to_index_flags
        - Src:             'mailbox-list-index.c:74,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index.c:82,7'
          Dst:             mail_index_use_existing_permissions
        - Src:             'mailbox-list-index.c:85,3'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-list-index.c:86,3'
          Dst:             mail_index_set_permissions
        - Src:             'mailbox-list-index.c:98,2'
          Dst:             mail_index_set_optimization_settings
        - Src:             'mailbox-list-index.c:100,2'
          Dst:             mail_index_set_fsync_mode
        - Src:             'mailbox-list-index.c:101,2'
          Dst:             mail_index_set_lock_method
        - Src:             'mailbox-list-index.c:103,13'
          Dst:             mail_index_open_or_create
        - Src:             'mailbox-list-index.c:104,7'
          Dst:             mail_index_move_to_memory
        - Src:             'mailbox-list-index.c:108,8'
          Dst:             mail_index_open_or_create
        - Src:             'mailbox-list-index.c:110,5'
          Dst:             mailbox_list_set_internal_error
    - functionName:    mailbox_list_index_need_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_get_header_ext
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:891,2'
          Dst:             mail_index_get_header_ext
    - functionName:    mailbox_list_index_refresh_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_index_refresh
        - module_context_get_require
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:970,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:972,2'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index.c:973,8'
          Dst:             mailbox_list_index_refresh
    - functionName:    mailbox_list_index_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_index_refresh_force
        - mailbox_list_set_internal_error
        - module_context_get_require
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:898,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:911,3'
          Dst:             mailbox_list_set_internal_error
        - Src:             'mailbox-list-index.c:915,9'
          Dst:             mailbox_list_index_refresh_force
    - functionName:    mailbox_list_index_lookup_real
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hash_table_lookup
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_index_node_find_sibling
        - module_context_get_require
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:175,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:181,10'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index.c:185,10'
          Dst:             mailbox_list_index_node_find_sibling
        - Src:             'mailbox-list-index.c:187,11'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index.c:188,9'
          Dst:             t_strsplit
        - Src:             'mailbox-list-index.c:190,10'
          Dst:             mailbox_list_index_node_find_sibling
    - functionName:    mailbox_list_index_node_find_sibling
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          130
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - mailbox_list_name_unescape
        - module_context_get_require
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:149,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:152,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index.c:160,2'
          Dst:             mailbox_list_name_unescape
        - Src:             'mailbox-list-index.c:165,7'
          Dst:             strcmp
    - functionName:    mailbox_list_index_set_index_error
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_get_last_error
        - mail_index_reset_error
        - mailbox_list_set_internal_error
        - module_context_get_require
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:28,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:30,2'
          Dst:             mailbox_list_set_internal_error
        - Src:             'mailbox-list-index.c:31,2'
          Dst:             mail_index_get_last_error
        - Src:             'mailbox-list-index.c:32,2'
          Dst:             mail_index_reset_error
    - functionName:    mailbox_list_index_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_index_parse_full
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:739,9'
          Dst:             mailbox_list_index_parse_full
    - functionName:    mailbox_list_index_handle_corruption
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - list_handle_corruption_locked
        - mailbox_list_lock
        - mailbox_list_unlock
        - module_context_get_require
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1040,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1065,6'
          Dst:             mailbox_list_lock
        - Src:             'mailbox-list-index.c:1068,9'
          Dst:             list_handle_corruption_locked
        - Src:             'mailbox-list-index.c:1069,3'
          Dst:             mailbox_list_unlock
    - functionName:    list_handle_corruption_locked
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          120
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - mail_storage_get_last_error
        - mailbox_list_index_set_uncorrupted
        - mailbox_list_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1021,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index.c:1026,13'
          Dst:             mail_storage_get_last_error
        - Src:             'mailbox-list-index.c:1027,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-index.c:1035,9'
          Dst:             mailbox_list_index_set_uncorrupted
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mailbox_list_index_set_uncorrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1088
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_unset_fscked
        - mailbox_list_index_sync_begin
        - mailbox_list_index_sync_end
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1077,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1083,6'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mailbox-list-index.c:1086,2'
          Dst:             mail_index_unset_fscked
        - Src:             'mailbox-list-index.c:1087,9'
          Dst:             mailbox_list_index_sync_end
    - functionName:    mailbox_list_index_parse_full
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          249
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - mail_index_get_header
        - mail_index_mark_corrupted
        - mailbox_list_index_add_extra_names
        - mailbox_list_index_parse_header
        - mailbox_list_index_parse_records
        - mailbox_list_index_reset
        - mailbox_list_set_critical
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:684,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:688,8'
          Dst:             mail_index_get_header
        - Src:             'mailbox-list-index.c:697,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-index.c:702,2'
          Dst:             mailbox_list_index_reset
        - Src:             'mailbox-list-index.c:706,6'
          Dst:             mailbox_list_index_parse_header
        - Src:             'mailbox-list-index.c:709,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-index.c:712,4'
          Dst:             mail_index_mark_corrupted
        - Src:             'mailbox-list-index.c:719,3'
          Dst:             mailbox_list_index_add_extra_names
        - Src:             'mailbox-list-index.c:720,6'
          Dst:             mailbox_list_index_parse_records
        - Src:             'mailbox-list-index.c:723,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-index.c:727,4'
          Dst:             mail_index_mark_corrupted
    - functionName:    mailbox_list_index_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_destroy
        - mailbox_list_index_init_pool
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:44,2'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:45,2'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:46,2'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:47,2'
          Dst:             pool_unref
        - Src:             'mailbox-list-index.c:54,2'
          Dst:             mailbox_list_index_init_pool
    - functionName:    mailbox_list_index_parse_header
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          145
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - hash_table_insert
        - mail_index_map_get_header_ext
        - mailbox_list_index_name_iter_init
        - mailbox_list_index_name_iter_next
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:388,2'
          Dst:             mail_index_map_get_header_ext
        - Src:             'mailbox-list-index.c:396,2'
          Dst:             mail_index_map_get_header_ext
        - Src:             'mailbox-list-index.c:400,2'
          Dst:             mailbox_list_index_name_iter_init
        - Src:             'mailbox-list-index.c:401,21'
          Dst:             mailbox_list_index_name_iter_next
        - Src:             'mailbox-list-index.c:407,4'
          Dst:             p_strdup
        - Src:             'mailbox-list-index.c:407,4'
          Dst:             hash_table_insert
    - functionName:    mailbox_list_index_add_extra_names
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_insert
        - hash_table_lookup
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:666,7'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index.c:669,3'
          Dst:             p_strdup
        - Src:             'mailbox-list-index.c:669,3'
          Dst:             hash_table_insert
    - functionName:    mailbox_list_index_parse_records
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          745
      EdgeCount:       130
      CyclomaticComplexity: 33
      functionsReached:
        - guid_128_cmp
        - guid_128_hash
        - guid_128_is_empty
        - guid_128_to_string
        - hash_table_create
        - hash_table_destroy
        - hash_table_insert
        - hash_table_lookup
        - i_panic
        - mail_index_lookup
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - mailbox_list_index_generate_name
        - mailbox_list_index_lookup_uid
        - mailbox_list_index_node_cmp
        - mailbox_list_index_node_hash
        - mailbox_list_index_vname_hash_create
        - malloc_multiply_check
        - node_has_parent
        - p_malloc
        - p_memdup
        - pool_alloconly_create
        - pool_unref
        - strcasecmp
        - t_pop
        - t_push
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:483,3'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index.c:484,2'
          Dst:             hash_table_create
        - Src:             'mailbox-list-index.c:484,2'
          Dst:             mailbox_list_index_node_hash
        - Src:             'mailbox-list-index.c:484,2'
          Dst:             mailbox_list_index_node_cmp
        - Src:             'mailbox-list-index.c:487,10'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mailbox-list-index.c:489,3'
          Dst:             hash_table_create
        - Src:             'mailbox-list-index.c:489,3'
          Dst:             guid_128_hash
        - Src:             'mailbox-list-index.c:489,3'
          Dst:             guid_128_cmp
        - Src:             'mailbox-list-index.c:493,10'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index.c:493,10'
          Dst:             p_malloc
        - Src:             'mailbox-list-index.c:495,9'
          Dst:             mail_index_lookup
        - Src:             'mailbox-list-index.c:499,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index.c:516,21'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index.c:522,15'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:527,4'
          Dst:             mailbox_list_index_generate_name
        - Src:             'mailbox-list-index.c:530,36'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index.c:536,15'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:541,37'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index.c:545,15'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:551,37'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index.c:553,22'
          Dst:             p_memdup
        - Src:             'mailbox-list-index.c:555,20'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index.c:558,7'
          Dst:             guid_128_to_string
        - Src:             'mailbox-list-index.c:556,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:565,5'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-index.c:569,3'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-index.c:579,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-list-index.c:580,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mailbox-list-index.c:584,10'
          Dst:             mailbox_list_index_lookup_uid
        - Src:             'mailbox-list-index.c:585,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:589,13'
          Dst:             mailbox_list_index_lookup_uid
        - Src:             'mailbox-list-index.c:592,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:599,15'
          Dst:             node_has_parent
        - Src:             'mailbox-list-index.c:600,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:612,14'
          Dst:             strcasecmp
        - Src:             'mailbox-list-index.c:620,14'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-index.c:621,4'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-index.c:626,16'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:637,5'
          Dst:             t_strconcat
        - Src:             'mailbox-list-index.c:636,4'
          Dst:             mailbox_list_index_generate_name
        - Src:             'mailbox-list-index.c:638,15'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-index.c:648,24'
          Dst:             t_push
        - Src:             'mailbox-list-index.c:649,3'
          Dst:             mailbox_list_index_vname_hash_create
        - Src:             'mailbox-list-index.c:650,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index.c:650,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:652,2'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:654,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:655,2'
          Dst:             pool_unref
    - functionName:    mailbox_list_index_node_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:450,9'
          Dst:             str_hash
    - functionName:    mailbox_list_index_node_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:444,3'
          Dst:             strcmp
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mailbox_list_index_generate_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - hash_table_insert
        - i_panic
        - p_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:424,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:426,2'
          Dst:             guid_128_generate
        - Src:             'mailbox-list-index.c:428,11'
          Dst:             guid_128_to_string
        - Src:             'mailbox-list-index.c:427,9'
          Dst:             p_strdup_printf
        - Src:             'mailbox-list-index.c:432,2'
          Dst:             hash_table_insert
    - functionName:    mailbox_list_index_lookup_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:212,9'
          Dst:             hash_table_lookup
    - functionName:    node_has_parent
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_index_vname_hash_create
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_create
        - hash_table_insert
        - i_panic
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
        - mailbox_list_index_lookup_uid
        - mailbox_list_index_node_get_path
        - p_strdup
        - str_c
        - str_hash
        - str_truncate
        - strcmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:125,19'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mailbox-list-index.c:126,2'
          Dst:             hash_table_create
        - Src:             'mailbox-list-index.c:126,2'
          Dst:             str_hash
        - Src:             'mailbox-list-index.c:126,2'
          Dst:             strcmp
        - Src:             'mailbox-list-index.c:129,19'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:132,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mailbox-list-index.c:134,4'
          Dst:             mailbox_list_index_lookup_uid
        - Src:             'mailbox-list-index.c:135,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:137,3'
          Dst:             str_truncate
        - Src:             'mailbox-list-index.c:138,3'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index.c:139,51'
          Dst:             str_c
        - Src:             'mailbox-list-index.c:139,21'
          Dst:             p_strdup
        - Src:             'mailbox-list-index.c:140,3'
          Dst:             hash_table_insert
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_node_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_escaped_mailbox_name
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_index_node_get_path
        - str_append_c
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:244,3'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index.c:246,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index.c:246,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:249,2'
          Dst:             mailbox_list_get_escaped_mailbox_name
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    mailbox_list_get_escaped_mailbox_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          83
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_escape_name_params_to_str
        - mailbox_list_get_hierarchy_sep
        - module_context_get_require
        - str_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:219,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:224,3'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:228,3'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:233,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index.c:231,2'
          Dst:             mailbox_list_escape_name_params_to_str
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_name_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:329,14'
          Dst:             t_str_new
    - functionName:    mailbox_list_index_name_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          164
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - memchr
        - str_c
        - str_truncate
        - uni_utf8_get_valid_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:347,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index.c:359,6'
          Dst:             memchr
        - Src:             'mailbox-list-index.c:365,2'
          Dst:             str_truncate
        - Src:             'mailbox-list-index.c:366,6'
          Dst:             uni_utf8_get_valid_data
        - Src:             'mailbox-list-index.c:370,13'
          Dst:             str_c
    - functionName:    mailbox_list_index_init_pool
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_create_direct
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:37,24'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index.c:38,2'
          Dst:             hash_table_create_direct
        - Src:             'mailbox-list-index.c:39,2'
          Dst:             hash_table_create_direct
    - functionName:    mailbox_list_index_create_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1258
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_get_last_mail_error
        - mailbox_list_index_refresh_if_not_found
        - mailbox_list_index_refresh_later
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1249,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1252,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mailbox-list-index.c:1253,4'
          Dst:             mailbox_list_index_refresh_if_not_found
        - Src:             'mailbox-list-index.c:1256,2'
          Dst:             mailbox_list_index_refresh_later
    - functionName:    mailbox_list_index_refresh_if_not_found
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_index_lookup
        - mailbox_list_index_refresh_force
        - mailbox_list_index_refresh_later
        - mailbox_list_last_error_pop
        - mailbox_list_last_error_push
        - module_context_get_require
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1218,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1223,2'
          Dst:             mailbox_list_last_error_push
        - Src:             'mailbox-list-index.c:1224,8'
          Dst:             mailbox_list_index_refresh_force
        - Src:             'mailbox-list-index.c:1225,6'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index.c:1227,3'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index.c:1229,2'
          Dst:             mailbox_list_last_error_pop
    - functionName:    mailbox_list_index_open_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1242
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_get_last_mail_error
        - mailbox_list_index_refresh_if_found
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1234,36'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1237,7'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mailbox-list-index.c:1238,4'
          Dst:             mailbox_list_index_refresh_if_found
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mailbox_list_index_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1361
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          115
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header_ext
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_index_open
        - module_context_get_require
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1330,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1342,6'
          Dst:             mailbox_list_index_index_open
        - Src:             'mailbox-list-index.c:1344,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index.c:1345,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mailbox-list-index.c:1347,13'
          Dst:             time_to_uint32
        - Src:             'mailbox-list-index.c:1349,3'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index.c:1350,19'
          Dst:             time_to_uint32
        - Src:             'mailbox-list-index.c:1351,14'
          Dst:             time_to_uint32
        - Src:             'mailbox-list-index.c:1354,10'
          Dst:             mail_index_transaction_begin
        - Src:             'mailbox-list-index.c:1356,2'
          Dst:             mail_index_update_header_ext
        - Src:             'mailbox-list-index.c:1358,8'
          Dst:             mail_index_transaction_commit
        - Src:             'mailbox-list-index.c:1359,2'
          Dst:             mail_index_view_close
    - functionName:    mailbox_list_index_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_get_last_mail_error
        - mailbox_list_index_refresh_if_found
        - mailbox_list_index_refresh_if_not_found
        - mailbox_list_index_refresh_later
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1310,40'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1314,7'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-index.c:1315,4'
          Dst:             mailbox_list_index_refresh_if_found
        - Src:             'mailbox-list-index.c:1316,7'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-index.c:1317,4'
          Dst:             mailbox_list_index_refresh_if_not_found
        - Src:             'mailbox-list-index.c:1320,2'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index.c:1322,3'
          Dst:             mailbox_list_index_refresh_later
    - functionName:    mailbox_list_index_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_get_last_mail_error
        - mailbox_list_index_refresh_if_found
        - mailbox_list_index_refresh_later
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1293,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1296,7'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-index.c:1297,4'
          Dst:             mailbox_list_index_refresh_if_found
        - Src:             'mailbox-list-index.c:1300,2'
          Dst:             mailbox_list_index_refresh_later
    - functionName:    mailbox_list_index_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_get_last_mail_error
        - mailbox_list_index_refresh_if_found
        - mailbox_list_index_refresh_later
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1279,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1282,7'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-index.c:1283,4'
          Dst:             mailbox_list_index_refresh_if_found
        - Src:             'mailbox-list-index.c:1286,2'
          Dst:             mailbox_list_index_refresh_later
    - functionName:    mailbox_list_index_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_destroy
        - mail_index_close
        - mail_index_free
        - module_context_get_require
        - pool_unref
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1177,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index.c:1179,2'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index.c:1181,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:1182,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:1183,3'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-index.c:1184,3'
          Dst:             pool_unref
        - Src:             'mailbox-list-index.c:1186,4'
          Dst:             mail_index_close
        - Src:             'mailbox-list-index.c:1187,3'
          Dst:             mail_index_free
    - functionName:    mailbox_list_index_is_enabled
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1364
      functionLinenumberEnd: 1372
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_index_init_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1431
      functionLinenumberEnd: 1469
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          185
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mail_index_alloc
        - mail_index_ext_register
        - mailbox_list_get_root_path
        - mailbox_list_index_init_pool
        - mailbox_list_index_status_init_finish
        - module_context_get
        - p_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1432,37'
          Dst:             module_context_get
        - Src:             'mailbox-list-index.c:1441,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list-index.c:1446,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:1449,3'
          Dst:             p_strdup_printf
        - Src:             'mailbox-list-index.c:1451,17'
          Dst:             mail_index_alloc
        - Src:             'mailbox-list-index.c:1456,18'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index.c:1460,19'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index.c:1463,27'
          Dst:             mail_index_ext_register
        - Src:             'mailbox-list-index.c:1466,2'
          Dst:             mailbox_list_index_init_pool
        - Src:             'mailbox-list-index.c:1468,2'
          Dst:             mailbox_list_index_status_init_finish
    - functionName:    mailbox_list_index_mailbox_allocated
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1511
      functionLinenumberEnd: 1537
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          90
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
        - mailbox_list_index_backend_init_mailbox
        - mailbox_list_index_status_init_mailbox
        - malloc_multiply_check
        - module_context_get
        - module_get_context_id
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1513,37'
          Dst:             module_context_get
        - Src:             'mailbox-list-index.c:1519,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index.c:1519,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-index.c:1522,2'
          Dst:             module_get_context_id
        - Src:             'mailbox-list-index.c:1522,2'
          Dst:             array_idx_set_i
        - Src:             'mailbox-list-index.c:1535,2'
          Dst:             mailbox_list_index_status_init_mailbox
        - Src:             'mailbox-list-index.c:1536,23'
          Dst:             mailbox_list_index_backend_init_mailbox
    - functionName:    mailbox_list_index_created
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          203
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_set_i
        - i_panic
        - mailbox_list_index_init_finish
        - mailbox_list_index_is_enabled
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
        - p_strdup
        - p_strdup_printf
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1381,22'
          Dst:             strcmp
        - Src:             'mailbox-list-index.c:1383,7'
          Dst:             mailbox_list_index_is_enabled
        - Src:             'mailbox-list-index.c:1386,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:1388,3'
          Dst:             module_get_context_id
        - Src:             'mailbox-list-index.c:1388,3'
          Dst:             array_idx_set_i
        - Src:             'mailbox-list-index.c:1392,10'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index.c:1392,10'
          Dst:             p_malloc
        - Src:             'mailbox-list-index.c:1399,36'
          Dst:             p_strdup
        - Src:             'mailbox-list-index.c:1403,3'
          Dst:             p_strdup_printf
        - Src:             'mailbox-list-index.c:1421,2'
          Dst:             module_get_context_id
        - Src:             'mailbox-list-index.c:1421,2'
          Dst:             array_idx_set_i
        - Src:             'mailbox-list-index.c:1426,3'
          Dst:             mailbox_list_index_init_finish
    - functionName:    mailbox_list_index_namespaces_added
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1473
      functionLinenumberEnd: 1478
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_init_finish
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1477,3'
          Dst:             mailbox_list_index_init_finish
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1548
      functionLinenumberEnd: 1550
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_hooks_add_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1549,2'
          Dst:             mail_storage_hooks_add_internal
    - functionName:    mailbox_list_index_view_open
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1104
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          316
      EdgeCount:       70
      CyclomaticComplexity: 17
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - mail_index_lookup_seq
        - mail_index_view_close
        - mail_index_view_open
        - mail_storage_copy_list_error
        - mailbox_list_index_lookup
        - mailbox_list_index_need_refresh
        - mailbox_list_index_refresh
        - mailbox_list_index_refresh_later
        - module_context_get
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1105,37'
          Dst:             module_context_get
        - Src:             'mailbox-list-index.c:1122,6'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index.c:1123,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mailbox-list-index.c:1127,9'
          Dst:             mailbox_list_index_lookup
        - Src:             'mailbox-list-index.c:1130,3'
          Dst:             event_want_level
        - Src:             'mailbox-list-index.c:1130,3'
          Dst:             e_debug
        - Src:             'mailbox-list-index.c:1130,3'
          Dst:             event_send_abort
        - Src:             'mailbox-list-index.c:1135,9'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index.c:1136,6'
          Dst:             mailbox_list_index_need_refresh
        - Src:             'mailbox-list-index.c:1141,14'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index.c:1152,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:1158,4'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index.c:1160,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:1161,4'
          Dst:             event_want_level
        - Src:             'mailbox-list-index.c:1161,4'
          Dst:             e_debug
        - Src:             'mailbox-list-index.c:1161,4'
          Dst:             event_send_abort
        - Src:             'mailbox-list-index.c:1166,3'
          Dst:             mail_index_view_close
    - functionName:    mailbox_list_index_get_index
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 1092
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - module_context_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:1093,37'
          Dst:             module_context_get
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_name_hdr_decode_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          308
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - array_append_i
        - array_create_i
        - i_memcpy
        - i_panic
        - mailbox_list_escape_name_params
        - mailbox_list_get_hierarchy_sep
        - memchr
        - pool_datastack_create
        - str_append
        - str_append_c
        - str_c
        - str_len
        - t_str_new
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:840,27'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:841,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-list-index.c:841,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index.c:843,28'
          Dst:             memchr
        - Src:             'mailbox-list-index.c:850,4'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:854,14'
          Dst:             t_strndup
        - Src:             'mailbox-list-index.c:855,3'
          Dst:             array_append_i
        - Src:             'mailbox-list-index.c:861,24'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index.c:864,2'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index.c:865,7'
          Dst:             str_len
        - Src:             'mailbox-list-index.c:866,4'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:868,4'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:871,8'
          Dst:             mailbox_list_escape_name_params
        - Src:             'mailbox-list-index.c:870,4'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:878,9'
          Dst:             str_c
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_name_hdr_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          201
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_name_unescape
        - module_context_get
        - p_strsplit
        - str_append
        - str_append_c
        - str_data
        - str_len
        - strcmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:753,37'
          Dst:             module_context_get
        - Src:             'mailbox-list-index.c:755,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index.c:764,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index.c:771,18'
          Dst:             p_strsplit
        - Src:             'mailbox-list-index.c:774,4'
          Dst:             mailbox_list_name_unescape
        - Src:             'mailbox-list-index.c:779,2'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:780,18'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:781,2'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:783,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:784,3'
          Dst:             str_append
        - Src:             'mailbox-list-index.c:797,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:798,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:799,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index.c:801,16'
          Dst:             str_len
        - Src:             'mailbox-list-index.c:802,9'
          Dst:             str_data
    - functionName:    mailbox_list_index_parse_try
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_index_parse_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:746,9'
          Dst:             mailbox_list_index_parse_full
    - functionName:    mailbox_list_index_node_unlink
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_try_remove
        - i_panic
        - mailbox_list_index_node_get_path
        - str_c
        - t_pop
        - t_push
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:307,63'
          Dst:             t_push
        - Src:             'mailbox-list-index.c:308,20'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:309,3'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index.c:310,3'
          Dst:             str_c
        - Src:             'mailbox-list-index.c:310,3'
          Dst:             hash_table_try_remove
        - Src:             'mailbox-list-index.c:310,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:311,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index.c:311,4'
          Dst:             i_panic
    - functionName:    mailbox_list_index_subtree_hash_insert
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_node_hash_insert
        - mailbox_list_index_subtree_hash_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:297,2'
          Dst:             mailbox_list_index_node_hash_insert
        - Src:             'mailbox-list-index.c:299,3'
          Dst:             mailbox_list_index_subtree_hash_insert
    - functionName:    mailbox_list_index_node_hash_insert
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - i_panic
        - mailbox_list_index_node_get_path
        - p_strdup
        - str_c
        - t_pop
        - t_push
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:257,2'
          Dst:             t_push
        - Src:             'mailbox-list-index.c:258,28'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:259,3'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index.c:262,9'
          Dst:             str_c
        - Src:             'mailbox-list-index.c:261,21'
          Dst:             p_strdup
        - Src:             'mailbox-list-index.c:263,3'
          Dst:             hash_table_insert
        - Src:             'mailbox-list-index.c:264,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index.c:264,4'
          Dst:             i_panic
    - functionName:    mailbox_list_index_node_hash_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_try_remove
        - i_panic
        - mailbox_list_index_node_get_path
        - str_c
        - t_pop
        - t_push
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:273,2'
          Dst:             t_push
        - Src:             'mailbox-list-index.c:274,28'
          Dst:             t_str_new
        - Src:             'mailbox-list-index.c:275,3'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index.c:277,3'
          Dst:             str_c
        - Src:             'mailbox-list-index.c:277,3'
          Dst:             hash_table_try_remove
        - Src:             'mailbox-list-index.c:277,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index.c:279,4'
          Dst:             t_pop
        - Src:             'mailbox-list-index.c:279,4'
          Dst:             i_panic
    - functionName:    mailbox_list_index_subtree_hash_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_node_hash_remove
        - mailbox_list_index_subtree_hash_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index.c:288,3'
          Dst:             mailbox_list_index_subtree_hash_remove
        - Src:             'mailbox-list-index.c:289,2'
          Dst:             mailbox_list_index_node_hash_remove
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    maildir_rename_children
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          270
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - array_append_i
        - array_create_i
        - array_free_i
        - array_get_i
        - i_unreached
        - mail_namespace_get_sep
        - mailbox_list_get_path
        - mailbox_list_get_storage_name
        - mailbox_list_get_vname
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - mailbox_list_set_critical
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - rename
        - rename_dir
        - strcmp
        - strlen
        - strncmp
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:335,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-maildir.c:336,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-maildir.c:338,14'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir.c:339,17'
          Dst:             strlen
        - Src:             'mailbox-list-maildir.c:341,14'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir.c:343,15'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-maildir.c:344,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir.c:345,9'
          Dst:             mailbox_list_iter_init
        - Src:             'mailbox-list-maildir.c:348,17'
          Dst:             mailbox_list_iter_next
        - Src:             'mailbox-list-maildir.c:353,7'
          Dst:             strncmp
        - Src:             'mailbox-list-maildir.c:355,11'
          Dst:             p_strdup
        - Src:             'mailbox-list-maildir.c:356,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-maildir.c:359,6'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mailbox-list-maildir.c:363,11'
          Dst:             array_get_i
        - Src:             'mailbox-list-maildir.c:368,6'
          Dst:             t_strconcat
        - Src:             'mailbox-list-maildir.c:367,19'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-maildir.c:369,7'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:376,6'
          Dst:             t_strconcat
        - Src:             'mailbox-list-maildir.c:375,19'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-maildir.c:377,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:380,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:383,4'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir.c:393,7'
          Dst:             rename
        - Src:             'mailbox-list-maildir.c:393,40'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:393,40'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:393,40'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:396,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-maildir.c:402,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:404,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:406,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:409,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-maildir.c:410,2'
          Dst:             pool_unref
    - functionName:    rename_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - mailbox_list_get_path
        - mailbox_list_set_critical
        - rename
        - strcmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:299,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:300,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:303,6'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:306,6'
          Dst:             rename
        - Src:             'mailbox-list-maildir.c:306,38'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:307,3'
          Dst:             mailbox_list_set_critical
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_maildir_get_trash_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_root_forced
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:219,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-maildir.c:220,9'
          Dst:             t_strdup_printf
    - functionName:    maildir_list_delete_maildir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_unreached
        - mailbox_list_delete_mailbox_nonrecursive
        - mailbox_list_delete_maildir_via_trash
        - mailbox_list_get_path
        - mailbox_list_maildir_get_trash_dir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:230,14'
          Dst:             mailbox_list_maildir_get_trash_dir
        - Src:             'mailbox-list-maildir.c:231,8'
          Dst:             mailbox_list_delete_maildir_via_trash
        - Src:             'mailbox-list-maildir.c:238,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:241,4'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir.c:242,7'
          Dst:             mailbox_list_delete_mailbox_nonrecursive
    - functionName:    maildir_list_get_dirname_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_get_hierarchy_sep
        - strcmp
        - t_strdup_printf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:71,11'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:72,10'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir.c:75,11'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-maildir.c:74,9'
          Dst:             t_strdup_printf
    - functionName:    imapdir_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:45,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-maildir.c:46,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-maildir.c:46,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-maildir.c:52,22'
          Dst:             p_strconcat
    - functionName:    maildir_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:62,2'
          Dst:             pool_unref
    - functionName:    maildir_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          346
      EdgeCount:       65
      CyclomaticComplexity: 14
      functionsReached:
        - i_unreached
        - mailbox_list_default_get_root_path
        - maildir_list_get_absolute_path
        - maildir_list_get_dirname_path
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-list-maildir.c:122,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-maildir.c:111,10'
          Dst:             mailbox_list_default_get_root_path
        - Src:             'mailbox-list-maildir.c:117,13'
          Dst:             maildir_list_get_absolute_path
        - Src:             'mailbox-list-maildir.c:134,14'
          Dst:             maildir_list_get_dirname_path
        - Src:             'mailbox-list-maildir.c:141,14'
          Dst:             maildir_list_get_dirname_path
        - Src:             'mailbox-list-maildir.c:148,8'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:151,14'
          Dst:             maildir_list_get_dirname_path
        - Src:             'mailbox-list-maildir.c:159,13'
          Dst:             maildir_list_get_dirname_path
        - Src:             'mailbox-list-maildir.c:164,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir.c:170,13'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:176,12'
          Dst:             maildir_list_get_dirname_path
    - functionName:    maildir_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_set_error
        - subsfile_set_subscribed
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:197,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:202,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list-maildir.c:208,9'
          Dst:             subsfile_set_subscribed
    - functionName:    maildir_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_list_delete_finish_ret
        - mailbox_list_delete_mailbox_file
        - mailbox_list_get_path
        - maildir_list_delete_maildir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:256,9'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:261,3'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir.c:262,9'
          Dst:             mailbox_list_delete_mailbox_file
        - Src:             'mailbox-list-maildir.c:264,9'
          Dst:             maildir_list_delete_maildir
        - Src:             'mailbox-list-maildir.c:267,2'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir.c:268,9'
          Dst:             mailbox_list_delete_finish_ret
    - functionName:    maildir_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_unreached
        - mailbox_list_get_path
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - stat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:278,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:280,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir.c:281,6'
          Dst:             stat
        - Src:             'mailbox-list-maildir.c:282,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:284,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:284,32'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:286,4'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir.c:286,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir.c:285,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:288,3'
          Dst:             mailbox_list_set_critical
    - functionName:    maildir_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          270
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - i_panic
        - i_unreached
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_path
        - mailbox_list_get_permissions
        - mailbox_list_get_root_forced
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - maildir_rename_children
        - rename
        - rename_dir
        - strchr
        - strcmp
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:425,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:427,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-maildir.c:429,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir.c:431,14'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-maildir.c:433,6'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir.c:436,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir.c:435,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:443,22'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-maildir.c:443,6'
          Dst:             strchr
        - Src:             'mailbox-list-maildir.c:446,3'
          Dst:             mailbox_list_get_permissions
        - Src:             'mailbox-list-maildir.c:447,3'
          Dst:             mailbox_list_get_permissions
        - Src:             'mailbox-list-maildir.c:452,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:460,8'
          Dst:             rename
        - Src:             'mailbox-list-maildir.c:461,18'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:462,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:464,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:466,9'
          Dst:             rename_dir
        - Src:             'mailbox-list-maildir.c:470,3'
          Dst:             t_push
        - Src:             'mailbox-list-maildir.c:471,10'
          Dst:             maildir_rename_children
        - Src:             'mailbox-list-maildir.c:473,5'
          Dst:             t_pop
        - Src:             'mailbox-list-maildir.c:473,5'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir.c:478,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir.c:478,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir.c:477,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:485,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:485,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:485,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir.c:486,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-maildir.c:489,3'
          Dst:             mailbox_list_set_critical
    - functionName:    maildir_list_get_absolute_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_try_get_absolute_path
        - maildir_list_get_dirname_path
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:83,7'
          Dst:             mailbox_list_try_get_absolute_path
        - Src:             'mailbox-list-maildir.c:88,6'
          Dst:             strrchr
        - Src:             'mailbox-list-maildir.c:91,45'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-maildir.c:91,9'
          Dst:             maildir_list_get_dirname_path
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    maildir_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir.c:28,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-maildir.c:29,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-maildir.c:29,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-maildir.c:35,22'
          Dst:             p_strconcat
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    none_list_rename_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:93,2'
          Dst:             mailbox_list_set_error
    - functionName:    none_list_delete_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:83,2'
          Dst:             mailbox_list_set_error
    - functionName:    none_list_delete_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:76,2'
          Dst:             mailbox_list_set_error
    - functionName:    none_list_set_subscribed
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:69,2'
          Dst:             mailbox_list_set_error
    - functionName:    none_list_subscriptions_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_get_mailbox_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:126,2'
          Dst:             pool_unref
    - functionName:    none_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          105
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - imap_match
        - imap_match_init_multiple
        - mail_namespace_get_sep
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:106,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-none.c:107,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-none.c:107,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-none.c:112,8'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-none.c:111,18'
          Dst:             imap_match_init_multiple
        - Src:             'mailbox-list-none.c:113,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-none.c:115,6'
          Dst:             imap_match
    - functionName:    none_list_get_temp_prefix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_get_hierarchy_sep
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    none_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:34,2'
          Dst:             pool_unref
    - functionName:    none_list_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-none.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-none.c:23,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-none.c:25,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-none.c:25,9'
          Dst:             p_malloc
    - functionName:    maildir_create_shared
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - i_close_fd_path
        - i_panic
        - mailbox_get_path_to
        - mailbox_get_permissions
        - mailbox_set_critical
        - open
        - t_strconcat
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:437,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-storage.c:442,8'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-storage.c:446,2'
          Dst:             i_panic
        - Src:             'maildir-storage.c:448,13'
          Dst:             umask
        - Src:             'maildir-storage.c:449,9'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:450,7'
          Dst:             open
        - Src:             'maildir-storage.c:451,2'
          Dst:             umask
        - Src:             'maildir-storage.c:454,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:458,6'
          Dst:             fchown
        - Src:             'maildir-storage.c:459,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:461,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'maildir-storage.c:460,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:465,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:469,2'
          Dst:             i_close_fd_path
    - functionName:    maildir_create_maildirfolder_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - i_close_fd_path
        - mail_storage_set_error
        - mailbox_get_path
        - mailbox_get_permissions
        - mailbox_set_critical
        - open
        - strcmp
        - t_strconcat
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:519,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:521,9'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-storage.c:523,21'
          Dst:             mailbox_get_path
        - Src:             'maildir-storage.c:523,9'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:525,13'
          Dst:             umask
        - Src:             'maildir-storage.c:526,7'
          Dst:             open
        - Src:             'maildir-storage.c:527,2'
          Dst:             umask
        - Src:             'maildir-storage.c:530,13'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:531,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:535,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:540,7'
          Dst:             fchown
        - Src:             'maildir-storage.c:542,14'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:544,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'maildir-storage.c:543,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:548,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:551,2'
          Dst:             i_close_fd_path
    - functionName:    mkdir_verify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          177
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - mail_error_create_eacces_msg
        - mail_storage_set_error
        - mailbox_get_permissions
        - mailbox_set_critical
        - mkdir_parents_chgrp
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:161,7'
          Dst:             stat
        - Src:             'maildir-storage.c:164,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:165,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:170,9'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-storage.c:171,6'
          Dst:             mkdir_parents_chgrp
        - Src:             'maildir-storage.c:176,6'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:179,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:181,13'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:182,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:184,13'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:184,13'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:184,13'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:187,4'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:192,4'
          Dst:             mail_error_create_eacces_msg
        - Src:             'maildir-storage.c:191,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-storage.c:194,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_has_any_subdir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - stat
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:349,10'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:350,7'
          Dst:             stat
        - Src:             'maildir-storage.c:353,14'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:353,33'
          Dst:             __errno_location
    - functionName:    maildir_lock_touch_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_lock_touch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:260,8'
          Dst:             maildir_uidlist_lock_touch
    - functionName:    create_maildir_subdirs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_get_last_mail_error
        - mailbox_get_path_to
        - mkdir_verify
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:240,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-storage.c:245,10'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:246,7'
          Dst:             mkdir_verify
        - Src:             'maildir-storage.c:247,12'
          Dst:             mailbox_get_last_mail_error
    - functionName:    maildir_is_selectable
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_has_any_subdir
        - stat
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:371,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:372,10'
          Dst:             maildir_has_any_subdir
        - Src:             'maildir-storage.c:374,10'
          Dst:             stat
    - functionName:    maildir_mailbox_open_existing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_mailbox_open
        - mail_index_ext_register
        - maildir_keywords_init
        - maildir_lock_touch_timeout
        - maildir_mailbox_close
        - maildir_uidlist_init
        - maildir_uidlist_lock
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:289,18'
          Dst:             maildir_uidlist_init
        - Src:             'maildir-storage.c:290,19'
          Dst:             maildir_keywords_init
        - Src:             'maildir-storage.c:293,7'
          Dst:             maildir_uidlist_lock
        - Src:             'maildir-storage.c:294,4'
          Dst:             maildir_mailbox_close
        - Src:             'maildir-storage.c:297,24'
          Dst:             timeout_add
        - Src:             'maildir-storage.c:297,24'
          Dst:             maildir_lock_touch_timeout
        - Src:             'maildir-storage.c:302,6'
          Dst:             index_storage_mailbox_open
        - Src:             'maildir-storage.c:303,3'
          Dst:             maildir_mailbox_close
        - Src:             'maildir-storage.c:308,3'
          Dst:             mail_index_ext_register
    - functionName:    maildir_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_mailbox_close
        - mail_index_view_close
        - maildir_keywords_deinit
        - maildir_uidlist_deinit
        - maildir_uidlist_unlock
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:613,3'
          Dst:             maildir_uidlist_unlock
        - Src:             'maildir-storage.c:614,3'
          Dst:             timeout_remove
        - Src:             'maildir-storage.c:617,2'
          Dst:             mail_index_view_close
        - Src:             'maildir-storage.c:619,3'
          Dst:             maildir_keywords_deinit
        - Src:             'maildir-storage.c:621,3'
          Dst:             maildir_uidlist_deinit
        - Src:             'maildir-storage.c:622,2'
          Dst:             index_storage_mailbox_close
    - functionName:    maildir_check_tmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          143
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - mail_error_eacces_msg
        - mail_storage_set_critical
        - stat
        - t_strconcat
        - unlink_old_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:206,9'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:207,6'
          Dst:             stat
        - Src:             'maildir-storage.c:208,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:208,26'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:210,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:210,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:210,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:212,5'
          Dst:             mail_error_eacces_msg
        - Src:             'maildir-storage.c:211,4'
          Dst:             mail_storage_set_critical
        - Src:             'maildir-storage.c:215,3'
          Dst:             mail_storage_set_critical
        - Src:             'maildir-storage.c:226,9'
          Dst:             unlink_old_files
    - functionName:    maildir_storage_find_root_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          159
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - mail_user_get_home
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:99,6'
          Dst:             mail_user_get_home
        - Src:             'maildir-storage.c:100,10'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:101,7'
          Dst:             i_faccessat2
        - Src:             'maildir-storage.c:102,4'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:102,4'
          Dst:             e_debug
        - Src:             'maildir-storage.c:102,4'
          Dst:             event_send_abort
        - Src:             'maildir-storage.c:106,3'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:106,3'
          Dst:             e_debug
        - Src:             'maildir-storage.c:106,3'
          Dst:             event_send_abort
        - Src:             'maildir-storage.c:109,3'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:109,3'
          Dst:             e_debug
        - Src:             'maildir-storage.c:109,3'
          Dst:             event_send_abort
        - Src:             'maildir-storage.c:110,7'
          Dst:             i_faccessat2
        - Src:             'maildir-storage.c:111,4'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:111,4'
          Dst:             e_debug
        - Src:             'maildir-storage.c:111,4'
          Dst:             event_send_abort
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_is_internal_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - module_context_get
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:645,3'
          Dst:             module_context_get
        - Src:             'maildir-storage.c:647,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:648,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:649,6'
          Dst:             strcmp
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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-storage/index/maildir/../../../../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:    maildir_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:716,9'
          Dst:             pool_alloconly_create
        - Src:             'maildir-storage.c:717,9'
          Dst:             malloc_multiply_check
        - Src:             'maildir-storage.c:717,9'
          Dst:             p_malloc
        - Src:             'maildir-storage.c:719,2'
          Dst:             index_mail_init
    - functionName:    maildir_get_private_flags_mask
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_get_path
        - mailbox_list_get_root_forced
        - mailbox_list_get_root_path
        - stat
        - strcmp
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:688,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:693,14'
          Dst:             mailbox_list_get_root_path
        - Src:             'maildir-storage.c:696,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:700,22'
          Dst:             mailbox_get_path
        - Src:             'maildir-storage.c:700,10'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:702,7'
          Dst:             stat
    - functionName:    maildir_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_get_path
        - mailbox_watch_add
        - mailbox_watch_remove_all
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:628,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-storage.c:631,3'
          Dst:             mailbox_watch_remove_all
        - Src:             'maildir-storage.c:634,4'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:633,3'
          Dst:             mailbox_watch_add
        - Src:             'maildir-storage.c:636,4'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:635,3'
          Dst:             mailbox_watch_add
    - functionName:    maildir_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_get_metadata
        - maildir_uidlist_get_mailbox_guid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:597,6'
          Dst:             index_mailbox_get_metadata
        - Src:             'maildir-storage.c:601,7'
          Dst:             maildir_uidlist_get_mailbox_guid
    - functionName:    maildir_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          191
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - guid_128_is_empty
        - index_storage_mailbox_update
        - mailbox_open
        - maildir_uidlist_lock
        - maildir_uidlist_set_mailbox_guid
        - maildir_uidlist_set_next_uid
        - maildir_uidlist_set_uid_validity
        - maildir_uidlist_unlock
        - maildir_uidlist_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:482,7'
          Dst:             mailbox_open
        - Src:             'maildir-storage.c:488,7'
          Dst:             guid_128_is_empty
        - Src:             'maildir-storage.c:489,7'
          Dst:             maildir_uidlist_lock
        - Src:             'maildir-storage.c:493,8'
          Dst:             guid_128_is_empty
        - Src:             'maildir-storage.c:494,4'
          Dst:             maildir_uidlist_set_mailbox_guid
        - Src:             'maildir-storage.c:496,4'
          Dst:             maildir_uidlist_set_uid_validity
        - Src:             'maildir-storage.c:498,4'
          Dst:             maildir_uidlist_set_next_uid
        - Src:             'maildir-storage.c:501,9'
          Dst:             maildir_uidlist_update
        - Src:             'maildir-storage.c:504,9'
          Dst:             index_storage_mailbox_update
        - Src:             'maildir-storage.c:506,3'
          Dst:             maildir_uidlist_unlock
    - functionName:    maildir_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          146
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - create_maildir_subdirs
        - index_storage_mailbox_create
        - mailbox_list_get_root_forced
        - maildir_create_maildirfolder_file
        - maildir_create_shared
        - maildir_mailbox_update
        - stat
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:566,13'
          Dst:             index_storage_mailbox_create
        - Src:             'maildir-storage.c:570,6'
          Dst:             create_maildir_subdirs
        - Src:             'maildir-storage.c:572,6'
          Dst:             maildir_create_maildirfolder_file
        - Src:             'maildir-storage.c:576,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:578,16'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:579,6'
          Dst:             stat
        - Src:             'maildir-storage.c:580,7'
          Dst:             maildir_create_shared
        - Src:             'maildir-storage.c:584,7'
          Dst:             maildir_mailbox_update
    - functionName:    maildir_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - create_maildir_subdirs
        - mail_storage_set_error
        - mailbox_get_path
        - mailbox_list_get_root_forced
        - mailbox_set_critical
        - maildir_check_tmp
        - maildir_is_selectable
        - maildir_mailbox_open_existing
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:379,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-storage.c:385,8'
          Dst:             maildir_check_tmp
        - Src:             'maildir-storage.c:388,10'
          Dst:             maildir_mailbox_open_existing
        - Src:             'maildir-storage.c:395,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:396,6'
          Dst:             strcmp
        - Src:             'maildir-storage.c:398,4'
          Dst:             t_strdup_printf
        - Src:             'maildir-storage.c:397,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:401,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:417,6'
          Dst:             maildir_is_selectable
        - Src:             'maildir-storage.c:419,7'
          Dst:             create_maildir_subdirs
        - Src:             'maildir-storage.c:422,10'
          Dst:             maildir_mailbox_open_existing
        - Src:             'maildir-storage.c:425,6'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:425,25'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:427,4'
          Dst:             t_strdup_printf
        - Src:             'maildir-storage.c:426,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-storage.c:430,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_mailbox_exists_full
        - mailbox_is_autocreated
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:333,20'
          Dst:             mailbox_is_autocreated
        - Src:             'maildir-storage.c:338,9'
          Dst:             index_storage_mailbox_exists_full
    - functionName:    maildir_storage_is_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_is_readonly
        - mailbox_get_private_flags_mask
        - maildir_is_backend_readonly
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:317,6'
          Dst:             index_storage_is_readonly
        - Src:             'maildir-storage.c:320,6'
          Dst:             maildir_is_backend_readonly
        - Src:             'maildir-storage.c:323,7'
          Dst:             mailbox_get_private_flags_mask
    - functionName:    maildir_is_backend_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_faccessat2
        - mailbox_get_path
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:727,26'
          Dst:             mailbox_get_path
        - Src:             'maildir-storage.c:730,30'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:730,7'
          Dst:             i_faccessat2
        - Src:             'maildir-storage.c:731,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:731,7'
          Dst:             __errno_location
        - Src:             'maildir-storage.c:731,7'
          Dst:             __errno_location
    - functionName:    maildir_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          66
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:270,9'
          Dst:             pool_alloconly_create
        - Src:             'maildir-storage.c:271,9'
          Dst:             malloc_multiply_check
        - Src:             'maildir-storage.c:271,9'
          Dst:             p_malloc
        - Src:             'maildir-storage.c:279,2'
          Dst:             index_storage_mailbox_alloc
    - functionName:    maildir_storage_autodetect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - maildir_storage_find_root_dir
        - stat
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:132,14'
          Dst:             maildir_storage_find_root_dir
        - Src:             'maildir-storage.c:134,4'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:134,4'
          Dst:             e_debug
        - Src:             'maildir-storage.c:134,4'
          Dst:             event_send_abort
        - Src:             'maildir-storage.c:139,9'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:140,6'
          Dst:             stat
        - Src:             'maildir-storage.c:141,3'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:141,3'
          Dst:             e_debug
        - Src:             'maildir-storage.c:141,3'
          Dst:             event_send_abort
        - Src:             'maildir-storage.c:146,3'
          Dst:             event_want_level
        - Src:             'maildir-storage.c:146,3'
          Dst:             e_debug
        - Src:             'maildir-storage.c:146,3'
          Dst:             event_send_abort
    - functionName:    maildir_storage_add_list
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          44
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_set_i
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:662,10'
          Dst:             malloc_multiply_check
        - Src:             'maildir-storage.c:662,10'
          Dst:             p_malloc
        - Src:             'maildir-storage.c:666,2'
          Dst:             module_get_context_id
        - Src:             'maildir-storage.c:666,2'
          Dst:             array_idx_set_i
    - functionName:    maildir_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_destroy
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:86,2'
          Dst:             pool_unref
        - Src:             'maildir-storage.c:87,2'
          Dst:             index_storage_destroy
    - functionName:    maildir_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          129
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_list_get_temp_prefix
        - p_strconcat
        - p_strdup
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:59,6'
          Dst:             settings_get
        - Src:             'maildir-storage.c:64,6'
          Dst:             mailbox_list_get_temp_prefix
        - Src:             'maildir-storage.c:63,25'
          Dst:             p_strdup
        - Src:             'maildir-storage.c:70,26'
          Dst:             p_strconcat
        - Src:             'maildir-storage.c:72,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:75,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:77,31'
          Dst:             p_strconcat
    - functionName:    maildir_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:44,9'
          Dst:             pool_alloconly_create
        - Src:             'maildir-storage.c:45,12'
          Dst:             malloc_multiply_check
        - Src:             'maildir-storage.c:45,12'
          Dst:             p_malloc
    - functionName:    maildir_get_uidvalidity_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_uidvalidity_next
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-storage.c:673,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'maildir-storage.c:674,9'
          Dst:             t_strconcat
        - Src:             'maildir-storage.c:675,9'
          Dst:             mailbox_uidvalidity_next
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uint_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_index_header_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          159
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_sync_index_update_ext_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          128
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_get_header_ext
        - mail_index_update_header_ext
        - mailbox_get_path
        - maildir_index_header_has_changed
        - stat
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:276,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync-index.c:276,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync-index.c:277,37'
          Dst:             stat
        - Src:             'maildir-sync-index.c:284,2'
          Dst:             mail_index_get_header_ext
        - Src:             'maildir-sync-index.c:287,6'
          Dst:             maildir_index_header_has_changed
        - Src:             'maildir-sync-index.c:288,3'
          Dst:             mail_index_update_header_ext
    - functionName:    maildir_list_index_update_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          138
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - index_storage_list_index_update_sync
        - mail_index_lookup_ext
        - mail_index_transaction_get_view
        - mail_index_update_ext
        - maildir_list_get_ext_id
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:785,2'
          Dst:             index_storage_list_index_update_sync
        - Src:             'maildir-sync-index.c:792,14'
          Dst:             mail_index_transaction_get_view
        - Src:             'maildir-sync-index.c:793,11'
          Dst:             maildir_list_get_ext_id
        - Src:             'maildir-sync-index.c:794,2'
          Dst:             mail_index_lookup_ext
        - Src:             'maildir-sync-index.c:809,6'
          Dst:             memcmp
        - Src:             'maildir-sync-index.c:810,3'
          Dst:             mail_index_update_ext
    - functionName:    maildir_list_get_ext_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_ext_register
        - mail_index_view_get_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:687,28'
          Dst:             mail_index_view_get_index
        - Src:             'maildir-sync-index.c:687,4'
          Dst:             mail_index_ext_register
    - functionName:    maildir_list_index_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          258
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - index_storage_list_index_has_changed
        - mail_index_lookup_ext
        - mailbox_get_path_to
        - mailbox_set_critical
        - maildir_list_get_ext_id
        - stat
        - t_strconcat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:709,8'
          Dst:             index_storage_list_index_has_changed
        - Src:             'maildir-sync-index.c:718,11'
          Dst:             maildir_list_get_ext_id
        - Src:             'maildir-sync-index.c:719,2'
          Dst:             mail_index_lookup_ext
        - Src:             'maildir-sync-index.c:738,8'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-sync-index.c:742,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:745,12'
          Dst:             t_strconcat
        - Src:             'maildir-sync-index.c:746,6'
          Dst:             stat
        - Src:             'maildir-sync-index.c:747,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync-index.c:751,15'
          Dst:             t_strdup_printf
        - Src:             'maildir-sync-index.c:758,12'
          Dst:             t_strconcat
        - Src:             'maildir-sync-index.c:759,6'
          Dst:             stat
        - Src:             'maildir-sync-index.c:760,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync-index.c:764,15'
          Dst:             t_strdup_printf
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    maildir_sync_mail_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          270
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - array_sort_i
        - index_keyword_array_cmp
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_lookup_keywords
        - mail_index_update_keywords
        - maildir_keywords_idx_char
        - uint_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:372,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'maildir-sync-index.c:373,6'
          Dst:             index_keyword_array_cmp
        - Src:             'maildir-sync-index.c:379,2'
          Dst:             array_sort_i
        - Src:             'maildir-sync-index.c:379,2'
          Dst:             uint_cmp
        - Src:             'maildir-sync-index.c:380,2'
          Dst:             array_sort_i
        - Src:             'maildir-sync-index.c:380,2'
          Dst:             uint_cmp
        - Src:             'maildir-sync-index.c:383,16'
          Dst:             array_get_i
        - Src:             'maildir-sync-index.c:386,7'
          Dst:             maildir_keywords_idx_char
        - Src:             'maildir-sync-index.c:389,4'
          Dst:             array_delete_i
        - Src:             'maildir-sync-index.c:396,8'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'maildir-sync-index.c:398,3'
          Dst:             mail_index_update_keywords
        - Src:             'maildir-sync-index.c:399,3'
          Dst:             mail_index_keywords_unref
        - Src:             'maildir-sync-index.c:404,6'
          Dst:             index_keyword_array_cmp
        - Src:             'maildir-sync-index.c:411,16'
          Dst:             array_get_i
        - Src:             'maildir-sync-index.c:415,4'
          Dst:             array_delete_i
        - Src:             'maildir-sync-index.c:416,4'
          Dst:             array_delete_i
        - Src:             'maildir-sync-index.c:417,18'
          Dst:             array_get_i
        - Src:             'maildir-sync-index.c:418,18'
          Dst:             array_get_i
        - Src:             'maildir-sync-index.c:426,6'
          Dst:             array_count_i
        - Src:             'maildir-sync-index.c:427,8'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'maildir-sync-index.c:429,3'
          Dst:             mail_index_update_keywords
        - Src:             'maildir-sync-index.c:430,3'
          Dst:             mail_index_keywords_unref
        - Src:             'maildir-sync-index.c:433,6'
          Dst:             array_count_i
        - Src:             'maildir-sync-index.c:434,8'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'maildir-sync-index.c:436,3'
          Dst:             mail_index_update_keywords
        - Src:             'maildir-sync-index.c:437,3'
          Dst:             mail_index_keywords_unref
    - functionName:    maildir_sync_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          237
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - i_panic
        - index_sync_changes_apply
        - index_sync_type_convert
        - mailbox_set_critical
        - mailbox_sync_notify
        - maildir_filename_flags_get
        - maildir_filename_flags_kw_set
        - rename
        - stat
        - strcmp
        - strrchr
        - t_strconcat
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:112,10'
          Dst:             strrchr
        - Src:             'maildir-sync-index.c:113,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:115,8'
          Dst:             t_strdup_until
        - Src:             'maildir-sync-index.c:117,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:120,2'
          Dst:             maildir_filename_flags_get
        - Src:             'maildir-sync-index.c:125,2'
          Dst:             index_sync_changes_apply
        - Src:             'maildir-sync-index.c:130,13'
          Dst:             maildir_filename_flags_kw_set
        - Src:             'maildir-sync-index.c:132,12'
          Dst:             t_strconcat
        - Src:             'maildir-sync-index.c:133,6'
          Dst:             strcmp
        - Src:             'maildir-sync-index.c:136,7'
          Dst:             stat
        - Src:             'maildir-sync-index.c:137,8'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:139,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync-index.c:143,7'
          Dst:             rename
        - Src:             'maildir-sync-index.c:144,8'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:146,9'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:146,9'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:146,29'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:146,29'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:146,29'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:147,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync-index.c:154,37'
          Dst:             index_sync_type_convert
        - Src:             'maildir-sync-index.c:154,2'
          Dst:             mailbox_sync_notify
    - functionName:    maildir_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mailbox_set_critical
        - mailbox_sync_notify
        - maildir_lose_unexpected_dir
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:88,6'
          Dst:             unlink
        - Src:             'maildir-sync-index.c:89,3'
          Dst:             mailbox_sync_notify
        - Src:             'maildir-sync-index.c:92,6'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:94,6'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:94,6'
          Dst:             __errno_location
        - Src:             'maildir-sync-index.c:95,10'
          Dst:             maildir_lose_unexpected_dir
        - Src:             'maildir-sync-index.c:97,2'
          Dst:             mailbox_set_critical
    - functionName:    maildir_expunge_is_valid_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - guid_128_is_empty
        - guid_128_to_string
        - i_panic
        - mail_generate_guid_128_hash
        - mailbox_set_critical
        - maildir_uidlist_lookup_ext
        - memcmp
        - t_pop
        - t_push
        - t_strcut
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:58,6'
          Dst:             guid_128_is_empty
        - Src:             'maildir-sync-index.c:63,2'
          Dst:             t_push
        - Src:             'maildir-sync-index.c:64,10'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-sync-index.c:67,11'
          Dst:             t_strcut
        - Src:             'maildir-sync-index.c:68,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'maildir-sync-index.c:69,4'
          Dst:             t_pop
        - Src:             'maildir-sync-index.c:69,4'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:71,6'
          Dst:             memcmp
        - Src:             'maildir-sync-index.c:76,13'
          Dst:             guid_128_to_string
        - Src:             'maildir-sync-index.c:77,3'
          Dst:             guid_128_to_string
        - Src:             'maildir-sync-index.c:74,2'
          Dst:             mailbox_set_critical
    - functionName:    maildir_handle_uid_insertion
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          150
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - e_warning
        - i_panic
        - maildir_sync_set_racing
        - maildir_uidlist_add_flags
        - maildir_uidlist_sync_finish
        - maildir_uidlist_sync_init
        - maildir_uidlist_sync_next
        - maildir_uidlist_sync_remove
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:176,3'
          Dst:             maildir_sync_set_racing
        - Src:             'maildir-sync-index.c:177,3'
          Dst:             maildir_uidlist_add_flags
        - Src:             'maildir-sync-index.c:183,9'
          Dst:             maildir_uidlist_sync_init
        - Src:             'maildir-sync-index.c:192,2'
          Dst:             maildir_uidlist_sync_remove
        - Src:             'maildir-sync-index.c:193,8'
          Dst:             maildir_uidlist_sync_next
        - Src:             'maildir-sync-index.c:195,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:198,2'
          Dst:             maildir_uidlist_sync_finish
        - Src:             'maildir-sync-index.c:200,2'
          Dst:             strncmp
        - Src:             'maildir-sync-index.c:200,2'
          Dst:             e_warning
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_sync_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         123
      ICount:          883
      EdgeCount:       162
      CyclomaticComplexity: 41
      functionsReached:
        - array_count_i
        - array_create_i
        - array_free_i
        - e_warning
        - i_panic
        - index_sync_changes_have
        - index_sync_changes_read
        - mail_index_append
        - mail_index_expunge
        - mail_index_get_header
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_lookup
        - mail_index_lookup_seq_range
        - mail_index_reset
        - mail_index_transaction_open_updated_view
        - mail_index_update_flags
        - mail_index_update_header
        - mail_index_update_keywords
        - mail_index_view_close
        - mailbox_get_private_flags_mask
        - mailbox_recent_flags_reset
        - mailbox_recent_flags_set_seqs
        - mailbox_sync_notify
        - maildir_expunge
        - maildir_expunge_is_valid_guid
        - maildir_file_do
        - maildir_filename_flags_get
        - maildir_get_uidvalidity_next
        - maildir_handle_uid_insertion
        - maildir_sync_flags
        - maildir_sync_mail_keywords
        - maildir_sync_notify
        - maildir_uidlist_get_next_uid
        - maildir_uidlist_get_uid_validity
        - maildir_uidlist_iter_deinit
        - maildir_uidlist_iter_init
        - maildir_uidlist_iter_next
        - maildir_uidlist_set_next_uid
        - maildir_uidlist_set_uid_validity
        - maildir_uidlist_sync_deinit
        - time
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:465,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:468,8'
          Dst:             mail_index_get_header
        - Src:             'maildir-sync-index.c:469,17'
          Dst:             maildir_uidlist_get_uid_validity
        - Src:             'maildir-sync-index.c:475,3'
          Dst:             e_warning
        - Src:             'maildir-sync-index.c:477,3'
          Dst:             mail_index_reset
        - Src:             'maildir-sync-index.c:478,3'
          Dst:             mailbox_recent_flags_reset
        - Src:             'maildir-sync-index.c:488,23'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'maildir-sync-index.c:489,21'
          Dst:             time
        - Src:             'maildir-sync-index.c:492,2'
          Dst:             array_create_i
        - Src:             'maildir-sync-index.c:493,2'
          Dst:             array_create_i
        - Src:             'maildir-sync-index.c:494,9'
          Dst:             maildir_uidlist_iter_init
        - Src:             'maildir-sync-index.c:495,9'
          Dst:             maildir_uidlist_iter_next
        - Src:             'maildir-sync-index.c:496,3'
          Dst:             maildir_filename_flags_get
        - Src:             'maildir-sync-index.c:499,3'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:512,9'
          Dst:             maildir_handle_uid_insertion
        - Src:             'maildir-sync-index.c:530,4'
          Dst:             mail_index_append
        - Src:             'maildir-sync-index.c:531,4'
          Dst:             mail_index_update_flags
        - Src:             'maildir-sync-index.c:533,8'
          Dst:             array_count_i
        - Src:             'maildir-sync-index.c:536,10'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'maildir-sync-index.c:538,5'
          Dst:             mail_index_update_keywords
        - Src:             'maildir-sync-index.c:540,5'
          Dst:             mail_index_keywords_unref
        - Src:             'maildir-sync-index.c:545,9'
          Dst:             mail_index_lookup
        - Src:             'maildir-sync-index.c:549,4'
          Dst:             mail_index_expunge
        - Src:             'maildir-sync-index.c:554,8'
          Dst:             maildir_handle_uid_insertion
        - Src:             'maildir-sync-index.c:561,3'
          Dst:             index_sync_changes_read
        - Src:             'maildir-sync-index.c:564,9'
          Dst:             maildir_expunge_is_valid_guid
        - Src:             'maildir-sync-index.c:568,8'
          Dst:             maildir_file_do
        - Src:             'maildir-sync-index.c:568,8'
          Dst:             maildir_expunge
        - Src:             'maildir-sync-index.c:571,5'
          Dst:             mail_index_expunge
        - Src:             'maildir-sync-index.c:574,5'
          Dst:             maildir_sync_notify
        - Src:             'maildir-sync-index.c:581,7'
          Dst:             index_sync_changes_have
        - Src:             'maildir-sync-index.c:583,8'
          Dst:             maildir_file_do
        - Src:             'maildir-sync-index.c:583,8'
          Dst:             maildir_sync_flags
        - Src:             'maildir-sync-index.c:587,5'
          Dst:             maildir_sync_notify
        - Src:             'maildir-sync-index.c:608,4'
          Dst:             mail_index_update_flags
        - Src:             'maildir-sync-index.c:612,3'
          Dst:             maildir_sync_mail_keywords
        - Src:             'maildir-sync-index.c:614,2'
          Dst:             maildir_uidlist_iter_deinit
        - Src:             'maildir-sync-index.c:619,4'
          Dst:             mail_index_expunge
        - Src:             'maildir-sync-index.c:624,10'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'maildir-sync-index.c:625,6'
          Dst:             mail_index_lookup_seq_range
        - Src:             'maildir-sync-index.c:631,3'
          Dst:             mailbox_recent_flags_set_seqs
        - Src:             'maildir-sync-index.c:633,2'
          Dst:             mail_index_view_close
        - Src:             'maildir-sync-index.c:636,7'
          Dst:             maildir_uidlist_sync_deinit
        - Src:             'maildir-sync-index.c:641,2'
          Dst:             mailbox_sync_notify
        - Src:             'maildir-sync-index.c:647,37'
          Dst:             time_to_uint32
        - Src:             'maildir-sync-index.c:651,4'
          Dst:             maildir_get_uidvalidity_next
        - Src:             'maildir-sync-index.c:652,3'
          Dst:             maildir_uidlist_set_uid_validity
        - Src:             'maildir-sync-index.c:654,2'
          Dst:             maildir_uidlist_set_next_uid
        - Src:             'maildir-sync-index.c:657,3'
          Dst:             mail_index_update_header
        - Src:             'maildir-sync-index.c:662,13'
          Dst:             maildir_uidlist_get_next_uid
        - Src:             'maildir-sync-index.c:664,3'
          Dst:             mail_index_update_header
        - Src:             'maildir-sync-index.c:669,2'
          Dst:             i_panic
        - Src:             'maildir-sync-index.c:671,3'
          Dst:             mail_index_update_header
        - Src:             'maildir-sync-index.c:675,2'
          Dst:             array_free_i
        - Src:             'maildir-sync-index.c:676,2'
          Dst:             array_free_i
    - functionName:    maildir_sync_index_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_sync_index_finish
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:349,8'
          Dst:             maildir_sync_index_finish
    - functionName:    maildir_sync_index_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          132
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - e_warning
        - index_storage_expunging_deinit
        - index_sync_changes_deinit
        - mail_index_sync_commit
        - mail_index_sync_no_warning
        - mail_index_sync_rollback
        - mailbox_set_index_error
        - maildir_keywords_sync_deinit
        - maildir_sync_index_update_ext_header
        - p_free_internal
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:302,14'
          Dst:             time
        - Src:             'maildir-sync-index.c:304,3'
          Dst:             e_warning
        - Src:             'maildir-sync-index.c:309,3'
          Dst:             mail_index_sync_no_warning
        - Src:             'maildir-sync-index.c:313,3'
          Dst:             mail_index_sync_rollback
        - Src:             'maildir-sync-index.c:315,3'
          Dst:             maildir_sync_index_update_ext_header
        - Src:             'maildir-sync-index.c:322,7'
          Dst:             mail_index_sync_commit
        - Src:             'maildir-sync-index.c:323,4'
          Dst:             mailbox_set_index_error
        - Src:             'maildir-sync-index.c:329,2'
          Dst:             index_storage_expunging_deinit
        - Src:             'maildir-sync-index.c:330,2'
          Dst:             maildir_keywords_sync_deinit
        - Src:             'maildir-sync-index.c:331,2'
          Dst:             index_sync_changes_deinit
        - Src:             'maildir-sync-index.c:332,2'
          Dst:             p_free_internal
    - functionName:    maildir_sync_index_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_sync_index_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:341,9'
          Dst:             maildir_sync_index_finish
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_sync_index_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          119
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_expunged_sync_begin
        - index_storage_get_sync_flags
        - index_sync_changes_init
        - maildir_is_backend_readonly
        - maildir_keywords_sync_init
        - malloc_multiply_check
        - p_malloc
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync-index.c:218,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'maildir-sync-index.c:223,6'
          Dst:             index_storage_expunged_sync_begin
        - Src:             'maildir-sync-index.c:227,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-sync-index.c:227,8'
          Dst:             p_malloc
        - Src:             'maildir-sync-index.c:234,3'
          Dst:             maildir_keywords_sync_init
        - Src:             'maildir-sync-index.c:237,6'
          Dst:             maildir_is_backend_readonly
        - Src:             'maildir-sync-index.c:236,3'
          Dst:             index_sync_changes_init
        - Src:             'maildir-sync-index.c:238,20'
          Dst:             time
    - functionName:    maildir_sync_set_new_msgs_count
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_sync_get_keywords_sync_ctx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      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:    maildir_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mailbox_set_critical
        - maildir_set_deleted
        - nfs_safe_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:388,7'
          Dst:             nfs_safe_stat
        - Src:             'maildir-sync.c:390,7'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:393,8'
          Dst:             maildir_set_deleted
        - Src:             'maildir-sync.c:398,2'
          Dst:             mailbox_set_critical
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_fix_duplicate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          263
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - e_warning
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - i_unlink
        - mailbox_get_path
        - mailbox_set_critical
        - maildir_filename_generate
        - maildir_filename_get_size
        - maildir_uidlist_sync_get_full_filename
        - rename
        - stat
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:298,11'
          Dst:             maildir_uidlist_sync_get_full_filename
        - Src:             'maildir-sync.c:300,2'
          Dst:             i_panic
        - Src:             'maildir-sync.c:302,10'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:303,10'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:305,6'
          Dst:             stat
        - Src:             'maildir-sync.c:305,31'
          Dst:             stat
        - Src:             'maildir-sync.c:311,6'
          Dst:             gnu_dev_major
        - Src:             'maildir-sync.c:311,6'
          Dst:             gnu_dev_major
        - Src:             'maildir-sync.c:311,6'
          Dst:             gnu_dev_minor
        - Src:             'maildir-sync.c:311,6'
          Dst:             gnu_dev_minor
        - Src:             'maildir-sync.c:327,8'
          Dst:             i_unlink
        - Src:             'maildir-sync.c:328,5'
          Dst:             e_warning
        - Src:             'maildir-sync.c:333,14'
          Dst:             maildir_filename_generate
        - Src:             'maildir-sync.c:336,6'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-sync.c:337,15'
          Dst:             t_strdup_printf
        - Src:             'maildir-sync.c:340,6'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-sync.c:341,15'
          Dst:             t_strdup_printf
        - Src:             'maildir-sync.c:344,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync.c:344,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:347,6'
          Dst:             rename
        - Src:             'maildir-sync.c:348,3'
          Dst:             e_warning
        - Src:             'maildir-sync.c:349,11'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:350,3'
          Dst:             mailbox_set_critical
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_rename_empty_basename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - e_warning
        - mailbox_get_path
        - mailbox_set_critical
        - maildir_filename_generate
        - rename
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:365,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:366,14'
          Dst:             maildir_filename_generate
        - Src:             'maildir-sync.c:367,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync.c:367,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:369,6'
          Dst:             rename
        - Src:             'maildir-sync.c:370,3'
          Dst:             e_warning
        - Src:             'maildir-sync.c:372,11'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:373,3'
          Dst:             mailbox_set_critical
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    have_recent_messages
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_get_header
        - maildir_uidlist_get_next_uid
        - maildir_uidlist_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:741,8'
          Dst:             mail_index_get_header
        - Src:             'maildir-sync.c:746,9'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-sync.c:747,14'
          Dst:             maildir_uidlist_get_next_uid
    - functionName:    maildir_sync_update_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_get_header
        - maildir_uidlist_get_uid_validity
        - maildir_uidlist_set_next_uid
        - maildir_uidlist_set_uid_validity
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:719,8'
          Dst:             mail_index_get_header
        - Src:             'maildir-sync.c:723,17'
          Dst:             maildir_uidlist_get_uid_validity
        - Src:             'maildir-sync.c:728,3'
          Dst:             maildir_uidlist_set_uid_validity
        - Src:             'maildir-sync.c:730,3'
          Dst:             maildir_uidlist_set_next_uid
    - functionName:    maildir_scan_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         142
      ICount:          901
      EdgeCount:       187
      CyclomaticComplexity: 47
      functionsReached:
        - __errno_location
        - closedir
        - dirfd
        - e_warning
        - eacces_error_get
        - fstat
        - i_panic
        - mailbox_set_critical
        - maildir_fix_duplicate
        - maildir_rename_empty_basename
        - maildir_set_deleted
        - maildir_sync_notify
        - maildir_uidlist_sync_next
        - opendir
        - readdir
        - rename
        - stat
        - str_append
        - str_c
        - str_printfa
        - str_truncate
        - strchr
        - t_pop
        - t_push
        - t_str_new
        - time
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:420,10'
          Dst:             opendir
        - Src:             'maildir-sync.c:424,7'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:425,8'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:425,8'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:425,8'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:427,6'
          Dst:             eacces_error_get
        - Src:             'maildir-sync.c:426,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:429,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:435,8'
          Dst:             maildir_set_deleted
        - Src:             'maildir-sync.c:441,11'
          Dst:             dirfd
        - Src:             'maildir-sync.c:442,2'
          Dst:             i_panic
        - Src:             'maildir-sync.c:443,6'
          Dst:             fstat
        - Src:             'maildir-sync.c:444,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:446,9'
          Dst:             closedir
        - Src:             'maildir-sync.c:456,15'
          Dst:             time
        - Src:             'maildir-sync.c:458,43'
          Dst:             time_to_uint32
        - Src:             'maildir-sync.c:462,43'
          Dst:             time_to_uint32
        - Src:             'maildir-sync.c:467,8'
          Dst:             t_str_new
        - Src:             'maildir-sync.c:468,9'
          Dst:             t_str_new
        - Src:             'maildir-sync.c:474,2'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:475,15'
          Dst:             readdir
        - Src:             'maildir-sync.c:481,8'
          Dst:             maildir_rename_empty_basename
        - Src:             'maildir-sync.c:489,4'
          Dst:             i_panic
        - Src:             'maildir-sync.c:491,4'
          Dst:             str_truncate
        - Src:             'maildir-sync.c:492,4'
          Dst:             str_truncate
        - Src:             'maildir-sync.c:493,4'
          Dst:             str_printfa
        - Src:             'maildir-sync.c:494,4'
          Dst:             str_printfa
        - Src:             'maildir-sync.c:495,8'
          Dst:             strchr
        - Src:             'maildir-sync.c:496,5'
          Dst:             str_append
        - Src:             'maildir-sync.c:498,15'
          Dst:             str_c
        - Src:             'maildir-sync.c:498,27'
          Dst:             str_c
        - Src:             'maildir-sync.c:498,8'
          Dst:             rename
        - Src:             'maildir-sync.c:504,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:504,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:504,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:504,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:510,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:510,15'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:510,34'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:510,34'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:510,34'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:519,6'
          Dst:             str_c
        - Src:             'maildir-sync.c:519,18'
          Dst:             str_c
        - Src:             'maildir-sync.c:517,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:522,5'
          Dst:             maildir_sync_notify
        - Src:             'maildir-sync.c:530,4'
          Dst:             maildir_sync_notify
        - Src:             'maildir-sync.c:532,9'
          Dst:             maildir_uidlist_sync_next
        - Src:             'maildir-sync.c:539,4'
          Dst:             t_push
        - Src:             'maildir-sync.c:540,11'
          Dst:             maildir_fix_duplicate
        - Src:             'maildir-sync.c:542,6'
          Dst:             t_pop
        - Src:             'maildir-sync.c:542,6'
          Dst:             i_panic
        - Src:             'maildir-sync.c:475,39'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:556,6'
          Dst:             __errno_location
        - Src:             'maildir-sync.c:557,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:562,6'
          Dst:             closedir
        - Src:             'maildir-sync.c:563,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-sync.c:572,7'
          Dst:             stat
        - Src:             'maildir-sync.c:579,7'
          Dst:             stat
        - Src:             'maildir-sync.c:587,14'
          Dst:             time
        - Src:             'maildir-sync.c:589,3'
          Dst:             e_warning
    - functionName:    dirfd
      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:    maildir_sync_notify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          136
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - maildir_uidlist_lock_touch
        - t_pop
        - t_push
        - time
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:246,8'
          Dst:             time
        - Src:             'maildir-sync.c:248,9'
          Dst:             maildir_uidlist_lock_touch
        - Src:             'maildir-sync.c:254,56'
          Dst:             t_push
        - Src:             'maildir-sync.c:258,5'
          Dst:             t_pop
        - Src:             'maildir-sync.c:258,5'
          Dst:             i_panic
    - functionName:    maildir_sync_get_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          195
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - have_recent_messages
        - mail_index_refresh
        - mail_index_sync_have_any
        - maildir_sync_quick_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:762,6'
          Dst:             maildir_sync_quick_check
        - Src:             'maildir-sync.c:769,26'
          Dst:             have_recent_messages
        - Src:             'maildir-sync.c:777,26'
          Dst:             have_recent_messages
        - Src:             'maildir-sync.c:792,3'
          Dst:             mail_index_refresh
        - Src:             'maildir-sync.c:794,9'
          Dst:             mail_index_sync_have_any
    - functionName:    maildir_sync_quick_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          523
      EdgeCount:       125
      CyclomaticComplexity: 35
      functionsReached:
        - maildir_stat
        - maildir_sync_get_header
        - maildir_sync_header_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:646,3'
          Dst:             maildir_sync_get_header
        - Src:             'maildir-sync.c:662,7'
          Dst:             maildir_sync_header_refresh
        - Src:             'maildir-sync.c:680,7'
          Dst:             maildir_stat
        - Src:             'maildir-sync.c:685,7'
          Dst:             maildir_stat
        - Src:             'maildir-sync.c:706,7'
          Dst:             maildir_sync_header_refresh
    - functionName:    maildir_sync_get_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:604,2'
          Dst:             mail_index_get_header_ext
        - Src:             'maildir-sync.c:609,3'
          Dst:             i_memcpy
    - functionName:    maildir_sync_header_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_refresh
        - mailbox_set_index_error
        - maildir_sync_get_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:616,6'
          Dst:             mail_index_refresh
        - Src:             'maildir-sync.c:617,3'
          Dst:             mailbox_set_index_error
        - Src:             'maildir-sync.c:620,2'
          Dst:             maildir_sync_get_header
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_storage_list_index_rebuild_and_set_uncorrupted
        - maildir_sync_index_rollback
        - maildir_uidlist_sync_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:282,9'
          Dst:             maildir_uidlist_sync_deinit
        - Src:             'maildir-sync.c:284,3'
          Dst:             maildir_sync_index_rollback
        - Src:             'maildir-sync.c:286,9'
          Dst:             mail_storage_list_index_rebuild_and_set_uncorrupted
    - functionName:    maildir_sync_context
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 987
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         102
      ICount:          602
      EdgeCount:       136
      CyclomaticComplexity: 36
      functionsReached:
        - i_panic
        - maildir_scan_dir
        - maildir_sync_get_changes
        - maildir_sync_index
        - maildir_sync_index_begin
        - maildir_sync_index_commit
        - maildir_sync_index_rollback
        - maildir_sync_update_next_uid
        - maildir_uidlist_is_locked
        - maildir_uidlist_lookup
        - maildir_uidlist_sync_deinit
        - maildir_uidlist_sync_finish
        - maildir_uidlist_sync_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:814,9'
          Dst:             maildir_sync_get_changes
        - Src:             'maildir-sync.c:876,8'
          Dst:             maildir_uidlist_sync_init
        - Src:             'maildir-sync.c:894,9'
          Dst:             maildir_uidlist_sync_init
        - Src:             'maildir-sync.c:898,4'
          Dst:             i_panic
        - Src:             'maildir-sync.c:909,16'
          Dst:             maildir_uidlist_is_locked
        - Src:             'maildir-sync.c:914,7'
          Dst:             maildir_sync_index_begin
        - Src:             'maildir-sync.c:925,17'
          Dst:             maildir_scan_dir
        - Src:             'maildir-sync.c:936,8'
          Dst:             maildir_scan_dir
        - Src:             'maildir-sync.c:940,3'
          Dst:             maildir_sync_update_next_uid
        - Src:             'maildir-sync.c:943,3'
          Dst:             maildir_uidlist_sync_finish
        - Src:             'maildir-sync.c:956,9'
          Dst:             maildir_sync_index
        - Src:             'maildir-sync.c:958,4'
          Dst:             maildir_sync_index_rollback
        - Src:             'maildir-sync.c:959,12'
          Dst:             maildir_sync_index_commit
        - Src:             'maildir-sync.c:967,3'
          Dst:             maildir_uidlist_is_locked
        - Src:             'maildir-sync.c:967,3'
          Dst:             i_panic
        - Src:             'maildir-sync.c:972,9'
          Dst:             maildir_uidlist_lookup
        - Src:             'maildir-sync.c:986,9'
          Dst:             maildir_uidlist_sync_deinit
    - functionName:    maildir_sync_context_new
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_path
        - malloc_multiply_check
        - t_malloc0
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:269,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-sync.c:269,8'
          Dst:             t_malloc0
        - Src:             'maildir-sync.c:271,29'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync.c:271,17'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:272,29'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync.c:272,17'
          Dst:             t_strconcat
    - functionName:    maildir_sync_is_synced
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1119
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mailbox_get_path
        - maildir_sync_quick_check
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:1124,2'
          Dst:             t_push
        - Src:             'maildir-sync.c:1125,26'
          Dst:             mailbox_get_path
        - Src:             'maildir-sync.c:1128,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:1129,13'
          Dst:             t_strconcat
        - Src:             'maildir-sync.c:1131,9'
          Dst:             maildir_sync_quick_check
        - Src:             'maildir-sync.c:1134,4'
          Dst:             t_pop
        - Src:             'maildir-sync.c:1134,4'
          Dst:             i_panic
    - functionName:    maildir_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          144
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
        - maildir_storage_sync_force
        - maildir_sync_refresh_flags_view
        - maildir_sync_run
        - maildir_uidlist_is_locked
        - maildir_uidlist_set_all_nonsynced
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:1096,6'
          Dst:             index_mailbox_want_full_sync
        - Src:             'maildir-sync.c:1097,9'
          Dst:             maildir_sync_run
        - Src:             'maildir-sync.c:1099,3'
          Dst:             maildir_uidlist_is_locked
        - Src:             'maildir-sync.c:1099,3'
          Dst:             i_panic
        - Src:             'maildir-sync.c:1104,10'
          Dst:             maildir_storage_sync_force
        - Src:             'maildir-sync.c:1109,7'
          Dst:             maildir_sync_refresh_flags_view
        - Src:             'maildir-sync.c:1111,3'
          Dst:             maildir_uidlist_set_all_nonsynced
        - Src:             'maildir-sync.c:1115,9'
          Dst:             index_mailbox_sync_init
    - functionName:    maildir_sync_run
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - maildir_sync_context
        - maildir_sync_context_new
        - maildir_sync_deinit
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:1027,2'
          Dst:             t_push
        - Src:             'maildir-sync.c:1028,9'
          Dst:             maildir_sync_context_new
        - Src:             'maildir-sync.c:1029,9'
          Dst:             maildir_sync_context
        - Src:             'maildir-sync.c:1031,3'
          Dst:             maildir_sync_deinit
        - Src:             'maildir-sync.c:1032,4'
          Dst:             t_pop
        - Src:             'maildir-sync.c:1032,4'
          Dst:             i_panic
        - Src:             'maildir-sync.c:1034,13'
          Dst:             t_push
        - Src:             'maildir-sync.c:1039,9'
          Dst:             maildir_sync_context_new
        - Src:             'maildir-sync.c:1040,9'
          Dst:             maildir_sync_context
        - Src:             'maildir-sync.c:1041,3'
          Dst:             maildir_sync_deinit
        - Src:             'maildir-sync.c:1042,4'
          Dst:             t_pop
        - Src:             'maildir-sync.c:1042,4'
          Dst:             i_panic
    - functionName:    maildir_storage_sync_force
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_sync_run
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:1051,8'
          Dst:             maildir_sync_run
        - Src:             'maildir-sync.c:1055,9'
          Dst:             maildir_sync_run
    - functionName:    maildir_sync_refresh_flags_view
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          111
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_map_clone
        - mail_index_map_move_to_memory
        - mail_index_record_map_move_to_private
        - mail_index_refresh
        - mail_index_unmap
        - mail_index_view_open
        - mail_index_view_sync_begin
        - mail_index_view_sync_commit
        - mailbox_set_index_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:1065,2'
          Dst:             mail_index_refresh
        - Src:             'maildir-sync.c:1067,22'
          Dst:             mail_index_view_open
        - Src:             'maildir-sync.c:1069,13'
          Dst:             mail_index_view_sync_begin
        - Src:             'maildir-sync.c:1071,6'
          Dst:             mail_index_view_sync_commit
        - Src:             'maildir-sync.c:1072,3'
          Dst:             mailbox_set_index_error
        - Src:             'maildir-sync.c:1079,9'
          Dst:             mail_index_map_clone
        - Src:             'maildir-sync.c:1080,3'
          Dst:             mail_index_unmap
        - Src:             'maildir-sync.c:1083,2'
          Dst:             mail_index_record_map_move_to_private
        - Src:             'maildir-sync.c:1084,2'
          Dst:             mail_index_map_move_to_memory
    - functionName:    maildir_sync_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - maildir_storage_sync_force
        - maildir_uidlist_is_open
        - maildir_uidlist_lookup
        - maildir_uidlist_refresh
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-sync.c:995,8'
          Dst:             maildir_uidlist_lookup
        - Src:             'maildir-sync.c:999,6'
          Dst:             maildir_uidlist_is_open
        - Src:             'maildir-sync.c:1007,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-sync.c:1011,7'
          Dst:             maildir_storage_sync_force
        - Src:             'maildir-sync.c:1016,9'
          Dst:             maildir_uidlist_lookup
    - functionName:    maildir_sync_set_racing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_iter_update_idx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2098
      functionLinenumberEnd: 2113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          147
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2102,14'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    maildir_uidlist_want_recreate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1525
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - maildir_uidlist_want_compress
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1524,9'
          Dst:             maildir_uidlist_want_compress
    - functionName:    maildir_uidlist_want_compress
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1498
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1509,30'
          Dst:             array_count_i
    - functionName:    maildir_assign_uid_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1929
      functionLinenumberEnd: 1939
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - maildir_filename_sort_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1938,9'
          Dst:             maildir_filename_sort_cmp
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    maildir_uidlist_generate_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_get_header
        - maildir_get_uidvalidity_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1230,9'
          Dst:             mail_index_get_header
        - Src:             'maildir-uidlist.c:1237,3'
          Dst:             maildir_get_uidvalidity_next
    - functionName:    maildir_uidlist_write_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1330
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          417
      EdgeCount:       70
      CyclomaticComplexity: 14
      functionsReached:
        - array_count_i
        - fdatasync
        - guid_128_generate
        - guid_128_to_string
        - i_panic
        - mailbox_set_critical
        - maildir_uidlist_generate_uid_validity
        - maildir_uidlist_iter_deinit
        - maildir_uidlist_iter_init
        - maildir_uidlist_iter_next_rec
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_finish
        - o_stream_get_error
        - o_stream_nsend
        - o_stream_unref
        - str_append
        - str_append_c
        - str_append_data
        - str_append_str
        - str_data
        - str_len
        - str_printfa
        - str_truncate
        - strchr
        - strlen
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1253,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1255,11'
          Dst:             o_stream_create_fd_file
        - Src:             'maildir-uidlist.c:1256,2'
          Dst:             o_stream_cork
        - Src:             'maildir-uidlist.c:1257,8'
          Dst:             t_str_new
        - Src:             'maildir-uidlist.c:1260,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1264,4'
          Dst:             maildir_uidlist_generate_uid_validity
        - Src:             'maildir-uidlist.c:1266,4'
          Dst:             guid_128_generate
        - Src:             'maildir-uidlist.c:1268,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1275,8'
          Dst:             guid_128_to_string
        - Src:             'maildir-uidlist.c:1269,3'
          Dst:             str_printfa
        - Src:             'maildir-uidlist.c:1276,7'
          Dst:             str_len
        - Src:             'maildir-uidlist.c:1277,4'
          Dst:             str_append_c
        - Src:             'maildir-uidlist.c:1278,4'
          Dst:             str_append_str
        - Src:             'maildir-uidlist.c:1280,3'
          Dst:             str_append_c
        - Src:             'maildir-uidlist.c:1281,26'
          Dst:             str_data
        - Src:             'maildir-uidlist.c:1281,41'
          Dst:             str_len
        - Src:             'maildir-uidlist.c:1281,3'
          Dst:             o_stream_nsend
        - Src:             'maildir-uidlist.c:1284,9'
          Dst:             maildir_uidlist_iter_init
        - Src:             'maildir-uidlist.c:1285,2'
          Dst:             array_count_i
        - Src:             'maildir-uidlist.c:1285,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1288,9'
          Dst:             maildir_uidlist_iter_next_rec
        - Src:             'maildir-uidlist.c:1290,3'
          Dst:             str_truncate
        - Src:             'maildir-uidlist.c:1291,3'
          Dst:             str_printfa
        - Src:             'maildir-uidlist.c:1294,5'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1295,11'
          Dst:             strlen
        - Src:             'maildir-uidlist.c:1296,5'
          Dst:             str_append_c
        - Src:             'maildir-uidlist.c:1297,5'
          Dst:             str_append_data
        - Src:             'maildir-uidlist.c:1301,3'
          Dst:             str_append
        - Src:             'maildir-uidlist.c:1302,10'
          Dst:             strchr
        - Src:             'maildir-uidlist.c:1304,4'
          Dst:             str_append
        - Src:             'maildir-uidlist.c:1306,4'
          Dst:             str_append_data
        - Src:             'maildir-uidlist.c:1307,3'
          Dst:             str_append_c
        - Src:             'maildir-uidlist.c:1308,26'
          Dst:             str_data
        - Src:             'maildir-uidlist.c:1308,41'
          Dst:             str_len
        - Src:             'maildir-uidlist.c:1308,3'
          Dst:             o_stream_nsend
        - Src:             'maildir-uidlist.c:1310,2'
          Dst:             maildir_uidlist_iter_deinit
        - Src:             'maildir-uidlist.c:1312,6'
          Dst:             o_stream_finish
        - Src:             'maildir-uidlist.c:1314,16'
          Dst:             o_stream_get_error
        - Src:             'maildir-uidlist.c:1313,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1315,3'
          Dst:             o_stream_unref
        - Src:             'maildir-uidlist.c:1320,2'
          Dst:             o_stream_unref
        - Src:             'maildir-uidlist.c:1323,7'
          Dst:             fdatasync
        - Src:             'maildir-uidlist.c:1324,4'
          Dst:             mailbox_set_critical
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    maildir_uidlist_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2084
      functionLinenumberEnd: 2093
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2088,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:2088,8'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:2090,14'
          Dst:             array_get_i
    - functionName:    maildir_uidlist_iter_next_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2117
      functionLinenumberEnd: 2134
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - maildir_uidlist_iter_update_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2121,3'
          Dst:             maildir_uidlist_iter_update_idx
        - Src:             'maildir-uidlist.c:2127,2'
          Dst:             i_panic
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_uidlist_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2153
      functionLinenumberEnd: 2156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2154,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    maildir_uidlist_records_drop_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          277
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_i
        - hash_table_try_remove
        - i_panic
        - mail_index_get_header
        - mail_index_lookup
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1348,2'
          Dst:             mail_index_refresh
        - Src:             'maildir-uidlist.c:1349,9'
          Dst:             mail_index_view_open
        - Src:             'maildir-uidlist.c:1350,10'
          Dst:             array_count_i
        - Src:             'maildir-uidlist.c:1351,8'
          Dst:             mail_index_get_header
        - Src:             'maildir-uidlist.c:1354,3'
          Dst:             mail_index_view_close
        - Src:             'maildir-uidlist.c:1358,2'
          Dst:             array_create_i
        - Src:             'maildir-uidlist.c:1359,9'
          Dst:             array_get_i
        - Src:             'maildir-uidlist.c:1361,9'
          Dst:             mail_index_lookup
        - Src:             'maildir-uidlist.c:1364,4'
          Dst:             hash_table_try_remove
        - Src:             'maildir-uidlist.c:1364,4'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1371,4'
          Dst:             array_append_i
        - Src:             'maildir-uidlist.c:1378,3'
          Dst:             hash_table_try_remove
        - Src:             'maildir-uidlist.c:1378,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1384,3'
          Dst:             array_append_i
        - Src:             'maildir-uidlist.c:1386,2'
          Dst:             array_free_i
        - Src:             'maildir-uidlist.c:1389,2'
          Dst:             mail_index_view_close
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    3
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_uid_bsearch_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1022
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          36
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uid_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_read_extended
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          220
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_create_dynamic
        - i_memcpy
        - maildir_uidlist_set_corrupted
        - p_malloc
        - pool_datastack_create
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:415,8'
          Dst:             pool_datastack_create
        - Src:             'maildir-uidlist.c:415,8'
          Dst:             buffer_create_dynamic
        - Src:             'maildir-uidlist.c:421,4'
          Dst:             buffer_append
        - Src:             'maildir-uidlist.c:422,4'
          Dst:             buffer_append_c
        - Src:             'maildir-uidlist.c:426,5'
          Dst:             t_strdup_until
        - Src:             'maildir-uidlist.c:424,4'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:434,3'
          Dst:             buffer_append_c
        - Src:             'maildir-uidlist.c:435,21'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:436,3'
          Dst:             i_memcpy
    - functionName:    maildir_uidlist_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_set_critical
        - t_strdup_vprintf
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:359,4'
          Dst:             t_strdup_vprintf
        - Src:             'maildir-uidlist.c:355,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:363,4'
          Dst:             t_strdup_vprintf
        - Src:             'maildir-uidlist.c:361,3'
          Dst:             mailbox_set_critical
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    maildir_uidlist_read_v3_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          190
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - guid_128_from_string
        - maildir_uidlist_set_corrupted
        - str_append_c
        - str_len
        - str_printfa
        - str_to_uint
        - str_truncate
        - t_strdup_until
      functionUses:    1
      BranchProfiles:
        - Branch String:   'maildir-uidlist.c:590,3'
          Branch Sides:    []
      Callsites:
        - Src:             'maildir-uidlist.c:581,2'
          Dst:             str_truncate
        - Src:             'maildir-uidlist.c:588,11'
          Dst:             t_strdup_until
        - Src:             'maildir-uidlist.c:592,8'
          Dst:             str_to_uint
        - Src:             'maildir-uidlist.c:593,5'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:599,8'
          Dst:             str_to_uint
        - Src:             'maildir-uidlist.c:600,5'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:606,8'
          Dst:             guid_128_from_string
        - Src:             'maildir-uidlist.c:608,5'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:615,8'
          Dst:             str_len
        - Src:             'maildir-uidlist.c:616,5'
          Dst:             str_append_c
        - Src:             'maildir-uidlist.c:617,4'
          Dst:             str_printfa
    - functionName:    maildir_uidlist_update_hdr
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          67
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_records_sort_by_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_sort_i
        - maildir_uid_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:696,2'
          Dst:             array_sort_i
        - Src:             'maildir-uidlist.c:696,2'
          Dst:             maildir_uid_cmp
    - functionName:    maildir_uidlist_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          424
      EdgeCount:       73
      CyclomaticComplexity: 20
      functionsReached:
        - array_append_i
        - array_get_i
        - e_warning
        - hash_table_lookup
        - hash_table_update
        - i_panic
        - maildir_uidlist_read_extended
        - maildir_uidlist_records_array_delete
        - maildir_uidlist_set_corrupted
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - strchr
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:464,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:469,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:475,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:488,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:494,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:494,8'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:504,3'
          Dst:             t_push
        - Src:             'maildir-uidlist.c:505,10'
          Dst:             maildir_uidlist_read_extended
        - Src:             'maildir-uidlist.c:507,5'
          Dst:             t_pop
        - Src:             'maildir-uidlist.c:507,5'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:509,4'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:515,6'
          Dst:             strchr
        - Src:             'maildir-uidlist.c:516,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:522,12'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:538,3'
          Dst:             hash_table_update
        - Src:             'maildir-uidlist.c:544,3'
          Dst:             e_warning
        - Src:             'maildir-uidlist.c:553,9'
          Dst:             maildir_uidlist_records_array_delete
        - Src:             'maildir-uidlist.c:560,9'
          Dst:             array_get_i
        - Src:             'maildir-uidlist.c:567,18'
          Dst:             p_strdup
        - Src:             'maildir-uidlist.c:568,2'
          Dst:             hash_table_update
        - Src:             'maildir-uidlist.c:569,2'
          Dst:             array_append_i
    - functionName:    maildir_uidlist_records_array_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - array_bsearch_i
        - array_delete_i
        - array_get_i
        - i_panic
        - maildir_uid_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:391,9'
          Dst:             array_get_i
        - Src:             'maildir-uidlist.c:393,9'
          Dst:             array_bsearch_i
        - Src:             'maildir-uidlist.c:393,9'
          Dst:             maildir_uid_cmp
        - Src:             'maildir-uidlist.c:394,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:401,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:403,2'
          Dst:             array_delete_i
    - functionName:    maildir_uidlist_read_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          227
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - __isoc99_sscanf
        - i_panic
        - i_stream_read_next_line
        - maildir_uidlist_read_v3_header
        - maildir_uidlist_set_corrupted
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'maildir-uidlist.c:650,2'
          Branch Sides:    []
      Callsites:
        - Src:             'maildir-uidlist.c:634,9'
          Dst:             i_stream_read_next_line
        - Src:             'maildir-uidlist.c:642,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:652,7'
          Dst:             __isoc99_sscanf
        - Src:             'maildir-uidlist.c:653,4'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:659,3'
          Dst:             t_push
        - Src:             'maildir-uidlist.c:660,10'
          Dst:             maildir_uidlist_read_v3_header
        - Src:             'maildir-uidlist.c:663,5'
          Dst:             t_pop
        - Src:             'maildir-uidlist.c:663,5'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:668,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:674,3'
          Dst:             maildir_uidlist_set_corrupted
        - Src:             'maildir-uidlist.c:682,3'
          Dst:             maildir_uidlist_set_corrupted
    - functionName:    __isoc99_sscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 915
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          158
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - mailbox_set_critical
        - maildir_uidlist_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:879,13'
          Dst:             maildir_uidlist_stat
        - Src:             'maildir-uidlist.c:887,7'
          Dst:             gnu_dev_major
        - Src:             'maildir-uidlist.c:887,7'
          Dst:             gnu_dev_major
        - Src:             'maildir-uidlist.c:887,7'
          Dst:             gnu_dev_minor
        - Src:             'maildir-uidlist.c:887,7'
          Dst:             gnu_dev_minor
        - Src:             'maildir-uidlist.c:897,7'
          Dst:             fstat
        - Src:             'maildir-uidlist.c:898,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:902,4'
          Dst:             mailbox_set_critical
    - functionName:    maildir_uidlist_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mailbox_set_critical
        - nfs_flush_attr_cache_unlocked
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:856,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'maildir-uidlist.c:857,3'
          Dst:             nfs_flush_attr_cache_unlocked
        - Src:             'maildir-uidlist.c:859,6'
          Dst:             nfs_safe_stat
        - Src:             'maildir-uidlist.c:860,7'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:861,4'
          Dst:             mailbox_set_critical
    - functionName:    maildir_uidlist_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2140
      functionLinenumberEnd: 2150
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_uidlist_iter_next_rec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2143,7'
          Dst:             maildir_uidlist_iter_next_rec
    - functionName:    maildir_uidlist_add_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2073
      functionLinenumberEnd: 2080
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_lookup
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2076,8'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:2077,2'
          Dst:             i_panic
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_uidlist_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2045
      functionLinenumberEnd: 2067
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - array_is_created_i
        - hash_table_destroy
        - maildir_uidlist_mark_all
        - maildir_uidlist_sync_finish
        - maildir_uidlist_unlock
        - p_free_internal
        - pool_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2056,3'
          Dst:             maildir_uidlist_sync_finish
        - Src:             'maildir-uidlist.c:2058,3'
          Dst:             maildir_uidlist_mark_all
        - Src:             'maildir-uidlist.c:2060,3'
          Dst:             maildir_uidlist_unlock
        - Src:             'maildir-uidlist.c:2062,2'
          Dst:             hash_table_destroy
        - Src:             'maildir-uidlist.c:2063,2'
          Dst:             pool_unref
        - Src:             'maildir-uidlist.c:2064,6'
          Dst:             array_is_created_i
        - Src:             'maildir-uidlist.c:2065,3'
          Dst:             array_free_i
        - Src:             'maildir-uidlist.c:2066,2'
          Dst:             p_free_internal
    - functionName:    maildir_uidlist_sync_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2013
      functionLinenumberEnd: 2041
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          239
      EdgeCount:       58
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - maildir_uidlist_assign_uids
        - maildir_uidlist_reset
        - maildir_uidlist_swap
        - maildir_uidlist_sync_update
        - maildir_uidlist_want_compress
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:2016,4'
          Dst:             maildir_uidlist_swap
        - Src:             'maildir-uidlist.c:2019,4'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:2020,4'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:2021,4'
          Dst:             maildir_uidlist_assign_uids
        - Src:             'maildir-uidlist.c:2029,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:2030,23'
          Dst:             maildir_uidlist_want_compress
        - Src:             'maildir-uidlist.c:2032,3'
          Dst:             t_push
        - Src:             'maildir-uidlist.c:2033,8'
          Dst:             maildir_uidlist_sync_update
        - Src:             'maildir-uidlist.c:2036,5'
          Dst:             maildir_uidlist_reset
        - Src:             'maildir-uidlist.c:2039,5'
          Dst:             t_pop
        - Src:             'maildir-uidlist.c:2039,5'
          Dst:             i_panic
    - functionName:    maildir_uidlist_mark_all
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1587
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_modifiable_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1579,9'
          Dst:             array_get_modifiable_i
    - functionName:    maildir_uidlist_unlock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - file_dotlock_delete
        - i_panic
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:238,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:244,2'
          Dst:             file_dotlock_delete
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_uidlist_swap
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1979
      functionLinenumberEnd: 2005
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          106
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_free_i
        - array_is_created_i
        - array_sort_i
        - hash_table_destroy
        - i_panic
        - maildir_uid_cmp
        - maildir_uidlist_assign_uids
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1983,2'
          Dst:             array_sort_i
        - Src:             'maildir-uidlist.c:1983,2'
          Dst:             maildir_uid_cmp
        - Src:             'maildir-uidlist.c:1985,2'
          Dst:             array_free_i
        - Src:             'maildir-uidlist.c:1988,2'
          Dst:             array_is_created_i
        - Src:             'maildir-uidlist.c:1988,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1990,2'
          Dst:             hash_table_destroy
        - Src:             'maildir-uidlist.c:1994,2'
          Dst:             pool_unref
        - Src:             'maildir-uidlist.c:1999,24'
          Dst:             array_count_i
        - Src:             'maildir-uidlist.c:2001,3'
          Dst:             maildir_uidlist_assign_uids
    - functionName:    maildir_uidlist_assign_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1942
      functionLinenumberEnd: 1976
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          274
      EdgeCount:       44
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - maildir_assign_uid_cmp
        - qsort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1946,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1947,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1953,9'
          Dst:             array_get_modifiable_i
        - Src:             'maildir-uidlist.c:1954,2'
          Dst:             qsort
        - Src:             'maildir-uidlist.c:1954,2'
          Dst:             maildir_assign_uid_cmp
        - Src:             'maildir-uidlist.c:1963,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1964,3'
          Dst:             i_panic
    - functionName:    maildir_uidlist_sync_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1571
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          256
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - e_warning
        - fstat
        - i_panic
        - lseek
        - mailbox_set_critical
        - maildir_uidlist_open_latest
        - maildir_uidlist_recreate
        - maildir_uidlist_update_hdr
        - maildir_uidlist_want_recreate
        - maildir_uidlist_write_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1534,6'
          Dst:             maildir_uidlist_want_recreate
        - Src:             'maildir-uidlist.c:1535,10'
          Dst:             maildir_uidlist_recreate
        - Src:             'maildir-uidlist.c:1539,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1540,7'
          Dst:             maildir_uidlist_open_latest
        - Src:             'maildir-uidlist.c:1543,11'
          Dst:             maildir_uidlist_recreate
        - Src:             'maildir-uidlist.c:1545,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1547,6'
          Dst:             lseek
        - Src:             'maildir-uidlist.c:1548,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1553,6'
          Dst:             maildir_uidlist_write_fd
        - Src:             'maildir-uidlist.c:1557,6'
          Dst:             fstat
        - Src:             'maildir-uidlist.c:1558,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1563,3'
          Dst:             e_warning
        - Src:             'maildir-uidlist.c:1568,3'
          Dst:             maildir_uidlist_update_hdr
    - functionName:    maildir_uidlist_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - hash_table_clear
        - maildir_uidlist_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:312,2'
          Dst:             maildir_uidlist_close
        - Src:             'maildir-uidlist.c:317,2'
          Dst:             hash_table_clear
        - Src:             'maildir-uidlist.c:318,2'
          Dst:             array_clear_i
    - functionName:    maildir_uidlist_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - mailbox_set_critical
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:299,7'
          Dst:             close
        - Src:             'maildir-uidlist.c:300,4'
          Dst:             mailbox_set_critical
    - functionName:    maildir_uidlist_recreate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1393
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          341
      EdgeCount:       65
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - file_dotlock_is_locked
        - fstat
        - i_close_fd_path
        - i_panic
        - i_unlink
        - i_unreached
        - mailbox_get_path_to
        - mailbox_get_permissions
        - mailbox_set_critical
        - maildir_set_deleted
        - maildir_uidlist_close
        - maildir_uidlist_records_drop_expunges
        - maildir_uidlist_update_hdr
        - maildir_uidlist_write_fd
        - open
        - rename
        - t_strconcat
        - umask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1395,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-uidlist.c:1402,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1404,2'
          Dst:             maildir_uidlist_records_drop_expunges
        - Src:             'maildir-uidlist.c:1406,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-uidlist.c:1408,3'
          Dst:             i_unreached
        - Src:             'maildir-uidlist.c:1409,14'
          Dst:             t_strconcat
        - Src:             'maildir-uidlist.c:1413,14'
          Dst:             umask
        - Src:             'maildir-uidlist.c:1414,8'
          Dst:             open
        - Src:             'maildir-uidlist.c:1415,3'
          Dst:             umask
        - Src:             'maildir-uidlist.c:1419,7'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:1420,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1426,8'
          Dst:             maildir_set_deleted
        - Src:             'maildir-uidlist.c:1431,6'
          Dst:             fchown
        - Src:             'maildir-uidlist.c:1432,7'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:1434,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'maildir-uidlist.c:1433,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1438,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1444,8'
          Dst:             maildir_uidlist_write_fd
        - Src:             'maildir-uidlist.c:1446,7'
          Dst:             rename
        - Src:             'maildir-uidlist.c:1447,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1455,3'
          Dst:             i_unlink
        - Src:             'maildir-uidlist.c:1456,11'
          Dst:             fstat
        - Src:             'maildir-uidlist.c:1457,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1461,3'
          Dst:             file_dotlock_is_locked
        - Src:             'maildir-uidlist.c:1461,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1462,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1467,3'
          Dst:             maildir_uidlist_close
        - Src:             'maildir-uidlist.c:1476,3'
          Dst:             maildir_uidlist_update_hdr
        - Src:             'maildir-uidlist.c:1479,3'
          Dst:             i_close_fd_path
    - functionName:    maildir_uidlist_open_latest
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          170
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - mailbox_set_critical
        - maildir_uidlist_has_changed
        - maildir_uidlist_reset
        - nfs_safe_open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:923,9'
          Dst:             maildir_uidlist_has_changed
        - Src:             'maildir-uidlist.c:932,3'
          Dst:             maildir_uidlist_reset
        - Src:             'maildir-uidlist.c:935,16'
          Dst:             nfs_safe_open
        - Src:             'maildir-uidlist.c:936,27'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:936,27'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:936,27'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:937,17'
          Dst:             nfs_safe_open
        - Src:             'maildir-uidlist.c:940,27'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:941,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_uidlist_sync_recreate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_get_full_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 1925
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1924,8'
          Dst:             hash_table_lookup
    - functionName:    maildir_uidlist_update_fname
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1906
      functionLinenumberEnd: 1916
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_lookup
        - p_strdup
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1909,8'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:1914,6'
          Dst:             strcmp
        - Src:             'maildir-uidlist.c:1915,19'
          Dst:             p_strdup
    - functionName:    maildir_uidlist_get_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1902
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_lookup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1896,8'
          Dst:             hash_table_lookup
    - functionName:    maildir_uidlist_sync_get_full_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1884
      functionLinenumberEnd: 1888
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1887,8'
          Dst:             hash_table_lookup
    - functionName:    maildir_uidlist_rec_set_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1147
      functionLinenumberEnd: 1174
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          157
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_create_dynamic
        - i_memcpy
        - i_panic
        - p_malloc
        - pool_datastack_create
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1153,8'
          Dst:             pool_datastack_create
        - Src:             'maildir-uidlist.c:1153,8'
          Dst:             buffer_create_dynamic
        - Src:             'maildir-uidlist.c:1158,4'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1160,10'
          Dst:             strlen
        - Src:             'maildir-uidlist.c:1162,5'
          Dst:             buffer_append
        - Src:             'maildir-uidlist.c:1167,3'
          Dst:             buffer_append_c
        - Src:             'maildir-uidlist.c:1168,29'
          Dst:             strlen
        - Src:             'maildir-uidlist.c:1168,3'
          Dst:             buffer_append
        - Src:             'maildir-uidlist.c:1170,2'
          Dst:             buffer_append_c
        - Src:             'maildir-uidlist.c:1172,20'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:1173,2'
          Dst:             i_memcpy
    - functionName:    maildir_uidlist_sync_set_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1872
      functionLinenumberEnd: 1879
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - maildir_uidlist_rec_set_ext
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1876,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1878,2'
          Dst:             maildir_uidlist_rec_set_ext
    - functionName:    maildir_uidlist_sync_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1841
      functionLinenumberEnd: 1866
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          220
      EdgeCount:       39
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_lookup
        - hash_table_try_remove
        - i_panic
        - maildir_uidlist_records_array_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1845,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1846,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1848,8'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:1849,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1850,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1852,2'
          Dst:             hash_table_try_remove
        - Src:             'maildir-uidlist.c:1852,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1853,8'
          Dst:             maildir_uidlist_records_array_delete
        - Src:             'maildir-uidlist.c:1856,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1860,3'
          Dst:             i_panic
    - functionName:    ext_dup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1737
      functionLinenumberEnd: 1753
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - p_malloc
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1743,2'
          Dst:             t_push
        - Src:             'maildir-uidlist.c:1749,9'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:1750,3'
          Dst:             i_memcpy
        - Src:             'maildir-uidlist.c:1751,4'
          Dst:             t_pop
        - Src:             'maildir-uidlist.c:1751,4'
          Dst:             i_panic
    - functionName:    maildir_uidlist_sync_next_partial
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1674
      functionLinenumberEnd: 1734
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          288
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - array_append_i
        - array_count_i
        - array_get_i
        - hash_table_insert
        - hash_table_lookup
        - mailbox_set_critical
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1680,8'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:1688,25'
          Dst:             array_count_i
        - Src:             'maildir-uidlist.c:1694,5'
          Dst:             pool_alloconly_create
        - Src:             'maildir-uidlist.c:1699,9'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:1699,9'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:1702,19'
          Dst:             p_strdup
        - Src:             'maildir-uidlist.c:1703,3'
          Dst:             array_append_i
        - Src:             'maildir-uidlist.c:1706,3'
          Dst:             hash_table_insert
        - Src:             'maildir-uidlist.c:1707,13'
          Dst:             strcmp
        - Src:             'maildir-uidlist.c:1708,19'
          Dst:             p_strdup
        - Src:             'maildir-uidlist.c:1712,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:1721,11'
          Dst:             array_get_i
    - functionName:    maildir_uidlist_sync_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1768
      functionLinenumberEnd: 1837
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          317
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - e_warning
        - ext_dup
        - hash_table_insert
        - hash_table_lookup
        - i_panic
        - maildir_uidlist_sync_next_partial
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1780,4'
          Dst:             e_warning
        - Src:             'maildir-uidlist.c:1787,10'
          Dst:             maildir_uidlist_sync_next_partial
        - Src:             'maildir-uidlist.c:1791,8'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:1804,7'
          Dst:             strcmp
        - Src:             'maildir-uidlist.c:1805,20'
          Dst:             p_strdup
        - Src:             'maildir-uidlist.c:1807,13'
          Dst:             hash_table_lookup
        - Src:             'maildir-uidlist.c:1808,3'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1810,9'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:1810,9'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:1815,5'
          Dst:             ext_dup
        - Src:             'maildir-uidlist.c:1823,19'
          Dst:             p_strdup
        - Src:             'maildir-uidlist.c:1824,3'
          Dst:             hash_table_insert
        - Src:             'maildir-uidlist.c:1826,3'
          Dst:             array_append_i
    - functionName:    maildir_uidlist_sync_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1758
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_sync_next_uid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1761,9'
          Dst:             maildir_uidlist_sync_next_uid
    - functionName:    maildir_uidlist_sync_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1622
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - maildir_uidlist_lock_timeout
        - maildir_uidlist_refresh
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1599,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:1607,8'
          Dst:             maildir_uidlist_lock_timeout
        - Src:             'maildir-uidlist.c:1616,7'
          Dst:             maildir_uidlist_refresh
    - functionName:    maildir_uidlist_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - maildir_uidlist_close
        - maildir_uidlist_open_latest
        - maildir_uidlist_update
        - maildir_uidlist_update_read
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:954,6'
          Dst:             maildir_uidlist_open_latest
        - Src:             'maildir-uidlist.c:958,9'
          Dst:             maildir_uidlist_update_read
        - Src:             'maildir-uidlist.c:963,3'
          Dst:             maildir_uidlist_close
        - Src:             'maildir-uidlist.c:972,10'
          Dst:             maildir_uidlist_update
    - functionName:    maildir_uidlist_lock_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          244
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - eacces_error_get_creating
        - file_dotlock_create
        - index_storage_lock_notify_reset
        - mail_storage_set_error
        - mailbox_get_permissions
        - mailbox_set_critical
        - maildir_set_deleted
        - maildir_uidlist_refresh
        - maildir_uidlist_unlock
        - umask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:140,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-uidlist.c:149,8'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:156,9'
          Dst:             index_storage_lock_notify_reset
        - Src:             'maildir-uidlist.c:159,14'
          Dst:             umask
        - Src:             'maildir-uidlist.c:160,9'
          Dst:             file_dotlock_create
        - Src:             'maildir-uidlist.c:162,3'
          Dst:             umask
        - Src:             'maildir-uidlist.c:168,4'
          Dst:             mail_storage_set_error
        - Src:             'maildir-uidlist.c:172,7'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:173,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:173,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:173,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:175,6'
          Dst:             eacces_error_get_creating
        - Src:             'maildir-uidlist.c:174,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:178,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:186,8'
          Dst:             maildir_set_deleted
        - Src:             'maildir-uidlist.c:196,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:197,4'
          Dst:             maildir_uidlist_unlock
    - functionName:    maildir_uidlist_update_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 848
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         102
      ICount:          658
      EdgeCount:       138
      CyclomaticComplexity: 38
      functionsReached:
        - __errno_location
        - close
        - fstat
        - i_close_fd_path
        - i_stream_create_fd
        - i_stream_destroy
        - i_stream_get_error
        - i_stream_read_next_line
        - i_stream_seek
        - i_unlink
        - lseek
        - mailbox_set_critical
        - maildir_uidlist_next
        - maildir_uidlist_read_header
        - maildir_uidlist_records_sort_by_uid
        - maildir_uidlist_update_hdr
        - nearest_power
        - nfs_safe_open
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:715,8'
          Dst:             nfs_safe_open
        - Src:             'maildir-uidlist.c:716,19'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:716,19'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:716,19'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:717,9'
          Dst:             nfs_safe_open
        - Src:             'maildir-uidlist.c:721,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:722,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:732,7'
          Dst:             lseek
        - Src:             'maildir-uidlist.c:733,8'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:737,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:747,6'
          Dst:             fstat
        - Src:             'maildir-uidlist.c:748,17'
          Dst:             i_close_fd_path
        - Src:             'maildir-uidlist.c:749,21'
          Dst:             __errno_location
        - Src:             'maildir-uidlist.c:753,17'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:762,12'
          Dst:             nearest_power
        - Src:             'maildir-uidlist.c:760,4'
          Dst:             pool_alloconly_create
        - Src:             'maildir-uidlist.c:766,10'
          Dst:             i_stream_create_fd
        - Src:             'maildir-uidlist.c:767,2'
          Dst:             i_stream_seek
        - Src:             'maildir-uidlist.c:772,3'
          Dst:             maildir_uidlist_read_header
        - Src:             'maildir-uidlist.c:779,18'
          Dst:             i_stream_read_next_line
        - Src:             'maildir-uidlist.c:782,9'
          Dst:             maildir_uidlist_next
        - Src:             'maildir-uidlist.c:798,4'
          Dst:             maildir_uidlist_records_sort_by_uid
        - Src:             'maildir-uidlist.c:806,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:817,17'
          Dst:             i_unlink
        - Src:             'maildir-uidlist.c:827,3'
          Dst:             maildir_uidlist_update_hdr
        - Src:             'maildir-uidlist.c:835,5'
          Dst:             i_stream_get_error
        - Src:             'maildir-uidlist.c:833,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-uidlist.c:840,2'
          Dst:             i_stream_destroy
        - Src:             'maildir-uidlist.c:842,7'
          Dst:             close
        - Src:             'maildir-uidlist.c:843,4'
          Dst:             mailbox_set_critical
    - functionName:    maildir_uidlist_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1484
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - maildir_uidlist_lock
        - maildir_uidlist_recreate
        - maildir_uidlist_unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1490,6'
          Dst:             maildir_uidlist_lock
        - Src:             'maildir-uidlist.c:1492,8'
          Dst:             maildir_uidlist_recreate
        - Src:             'maildir-uidlist.c:1493,2'
          Dst:             maildir_uidlist_unlock
    - functionName:    maildir_uidlist_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_lock_timeout
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:206,9'
          Dst:             maildir_uidlist_lock_timeout
    - functionName:    maildir_uidlist_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          157
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - array_create_i
        - hash_table_create
        - i_panic
        - maildir_filename_base_cmp
        - maildir_filename_base_hash
        - maildir_uidlist_mark_all
        - maildir_uidlist_sync_lock
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1637,8'
          Dst:             maildir_uidlist_sync_lock
        - Src:             'maildir-uidlist.c:1641,22'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:1641,22'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:1653,4'
          Dst:             maildir_uidlist_mark_all
        - Src:             'maildir-uidlist.c:1657,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1659,21'
          Dst:             pool_alloconly_create
        - Src:             'maildir-uidlist.c:1661,2'
          Dst:             hash_table_create
        - Src:             'maildir-uidlist.c:1661,2'
          Dst:             maildir_filename_base_hash
        - Src:             'maildir-uidlist.c:1661,2'
          Dst:             maildir_filename_base_cmp
        - Src:             'maildir-uidlist.c:1665,2'
          Dst:             array_count_i
        - Src:             'maildir-uidlist.c:1665,2'
          Dst:             array_create_i
    - functionName:    maildir_uidlist_set_all_nonsynced
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1625
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_mark_all
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1626,2'
          Dst:             maildir_uidlist_mark_all
    - functionName:    maildir_uidlist_unset_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1222
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_set_ext_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1221,2'
          Dst:             maildir_uidlist_set_ext_internal
    - functionName:    maildir_uidlist_set_ext_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          141
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - maildir_uidlist_lookup_rec
        - maildir_uidlist_rec_set_ext
        - maildir_uidlist_refresh
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1184,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:1186,8'
          Dst:             maildir_uidlist_lookup_rec
        - Src:             'maildir-uidlist.c:1192,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:1194,7'
          Dst:             maildir_uidlist_lookup_rec
        - Src:             'maildir-uidlist.c:1200,2'
          Dst:             t_push
        - Src:             'maildir-uidlist.c:1201,3'
          Dst:             maildir_uidlist_rec_set_ext
        - Src:             'maildir-uidlist.c:1203,4'
          Dst:             t_pop
        - Src:             'maildir-uidlist.c:1203,4'
          Dst:             i_panic
    - functionName:    maildir_uidlist_lookup_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1028
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_bsearch_i
        - maildir_uid_bsearch_cmp
        - maildir_uidlist_refresh
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1033,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:1037,8'
          Dst:             array_bsearch_i
        - Src:             'maildir-uidlist.c:1037,8'
          Dst:             maildir_uid_bsearch_cmp
    - functionName:    maildir_uidlist_set_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_set_ext_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1215,2'
          Dst:             maildir_uidlist_set_ext_internal
    - functionName:    maildir_uidlist_set_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1141
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1137,3'
          Dst:             i_panic
    - functionName:    maildir_uidlist_set_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1131
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1125,2'
          Dst:             i_panic
    - functionName:    maildir_uidlist_set_mailbox_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1114,6'
          Dst:             memcmp
        - Src:             'maildir-uidlist.c:1116,3'
          Dst:             i_memcpy
    - functionName:    maildir_uidlist_get_mailbox_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - maildir_uidlist_refresh
        - maildir_uidlist_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1099,7'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:1104,7'
          Dst:             maildir_uidlist_update
        - Src:             'maildir-uidlist.c:1107,2'
          Dst:             i_memcpy
    - functionName:    maildir_uidlist_get_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_get_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_lookup_ext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1083
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - maildir_uidlist_lookup_rec
        - strlen
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1070,8'
          Dst:             maildir_uidlist_lookup_rec
        - Src:             'maildir-uidlist.c:1080,8'
          Dst:             strlen
    - functionName:    maildir_uidlist_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1060
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_uidlist_lookup_rec
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:1054,13'
          Dst:             maildir_uidlist_lookup_rec
    - functionName:    maildir_uidlist_refresh_fast_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          198
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mail_index_is_in_memory
        - mail_index_view_close
        - mail_index_view_open
        - maildir_uidlist_refresh
        - maildir_uidlist_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:987,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:990,10'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-uidlist.c:992,13'
          Dst:             maildir_uidlist_stat
        - Src:             'maildir-uidlist.c:998,8'
          Dst:             mail_index_is_in_memory
        - Src:             'maildir-uidlist.c:1002,10'
          Dst:             mail_index_view_open
        - Src:             'maildir-uidlist.c:1003,9'
          Dst:             mail_index_get_header
        - Src:             'maildir-uidlist.c:1007,3'
          Dst:             mail_index_view_close
        - Src:             'maildir-uidlist.c:1013,10'
          Dst:             maildir_uidlist_refresh
    - functionName:    maildir_uidlist_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash_table_destroy
        - i_panic
        - maildir_uidlist_close
        - maildir_uidlist_update
        - p_free_internal
        - pool_unref
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:325,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:328,8'
          Dst:             maildir_uidlist_update
        - Src:             'maildir-uidlist.c:329,2'
          Dst:             maildir_uidlist_close
        - Src:             'maildir-uidlist.c:331,2'
          Dst:             hash_table_destroy
        - Src:             'maildir-uidlist.c:332,2'
          Dst:             pool_unref
        - Src:             'maildir-uidlist.c:334,2'
          Dst:             array_free_i
        - Src:             'maildir-uidlist.c:335,2'
          Dst:             str_free
        - Src:             'maildir-uidlist.c:336,2'
          Dst:             p_free_internal
        - Src:             'maildir-uidlist.c:337,2'
          Dst:             p_free_internal
    - functionName:    dotlock_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_lock_notify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:251,2'
          Dst:             index_storage_lock_notify
    - functionName:    maildir_uidlist_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          149
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create
        - i_strconcat
        - i_unreached
        - mail_storage_get_lock_timeout
        - mailbox_get_path_to
        - maildir_filename_base_cmp
        - maildir_filename_base_hash
        - malloc_multiply_check
        - p_malloc
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:264,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-uidlist.c:266,3'
          Dst:             i_unreached
        - Src:             'maildir-uidlist.c:268,12'
          Dst:             malloc_multiply_check
        - Src:             'maildir-uidlist.c:268,12'
          Dst:             p_malloc
        - Src:             'maildir-uidlist.c:272,18'
          Dst:             i_strconcat
        - Src:             'maildir-uidlist.c:273,2'
          Dst:             array_create_i
        - Src:             'maildir-uidlist.c:274,2'
          Dst:             hash_table_create
        - Src:             'maildir-uidlist.c:274,2'
          Dst:             maildir_filename_base_hash
        - Src:             'maildir-uidlist.c:274,2'
          Dst:             maildir_filename_base_cmp
        - Src:             'maildir-uidlist.c:278,28'
          Dst:             str_new
        - Src:             'maildir-uidlist.c:286,3'
          Dst:             mail_storage_get_lock_timeout
    - functionName:    maildir_uidlist_is_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_is_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_is_locked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_uidlist_lock_touch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - file_dotlock_touch
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:216,2'
          Dst:             i_panic
        - Src:             'maildir-uidlist.c:218,9'
          Dst:             file_dotlock_touch
    - functionName:    maildir_uidlist_try_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-uidlist.c'
      linkageType:     externalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_uidlist_lock_timeout
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-uidlist.c:211,9'
          Dst:             maildir_uidlist_lock_timeout
    - functionName:    maildir_create_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          128
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mail_storage_copy_list_error
        - mailbox_get_permissions
        - mailbox_list_mkdir_root
        - mailbox_set_critical
        - mailbox_set_deleted
        - maildir_create_path
        - mkdir_chgrp
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:
        - Branch String:   'maildir-util.c:187,2'
          Branch Sides:    []
      Callsites:
        - Src:             'maildir-util.c:180,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-util.c:183,6'
          Dst:             mkdir_chgrp
        - Src:             'maildir-util.c:187,10'
          Dst:             __errno_location
        - Src:             'maildir-util.c:191,7'
          Dst:             strrchr
        - Src:             'maildir-util.c:195,4'
          Dst:             mailbox_set_deleted
        - Src:             'maildir-util.c:199,12'
          Dst:             t_strdup_until
        - Src:             'maildir-util.c:200,7'
          Dst:             mailbox_list_mkdir_root
        - Src:             'maildir-util.c:201,4'
          Dst:             mail_storage_copy_list_error
        - Src:             'maildir-util.c:205,10'
          Dst:             maildir_create_path
        - Src:             'maildir-util.c:207,3'
          Dst:             mailbox_set_critical
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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-storage/index/maildir/../../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_filename_guess
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          170
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - array_create_i
        - mail_index_lookup_seq
        - mail_index_lookup_view_flags
        - mailbox_recent_flags_have_uid
        - maildir_filename_flags_kw_set
        - maildir_filename_flags_set
        - maildir_keywords_sync_deinit
        - maildir_keywords_sync_init_readonly
        - pool_datastack_create
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:39,23'
          Dst:             mail_index_lookup_seq
        - Src:             'maildir-util.c:44,2'
          Dst:             pool_datastack_create
        - Src:             'maildir-util.c:44,2'
          Dst:             array_create_i
        - Src:             'maildir-util.c:45,2'
          Dst:             mail_index_lookup_view_flags
        - Src:             'maildir-util.c:46,6'
          Dst:             array_count_i
        - Src:             'maildir-util.c:48,11'
          Dst:             maildir_filename_flags_set
        - Src:             'maildir-util.c:51,12'
          Dst:             maildir_keywords_sync_init_readonly
        - Src:             'maildir-util.c:53,11'
          Dst:             maildir_filename_flags_kw_set
        - Src:             'maildir-util.c:55,3'
          Dst:             maildir_keywords_sync_deinit
        - Src:             'maildir-util.c:63,7'
          Dst:             mailbox_recent_flags_have_uid
        - Src:             'maildir-util.c:66,7'
          Dst:             strrchr
        - Src:             'maildir-util.c:68,12'
          Dst:             t_strdup_until
    - functionName:    maildir_lose_unexpected_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          164
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - mail_storage_set_critical
        - rename
        - rmdir
        - strrchr
        - t_strconcat
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:284,6'
          Dst:             rmdir
        - Src:             'maildir-util.c:285,3'
          Dst:             mail_storage_set_critical
        - Src:             'maildir-util.c:289,13'
          Dst:             __errno_location
        - Src:             'maildir-util.c:292,13'
          Dst:             __errno_location
        - Src:             'maildir-util.c:293,3'
          Dst:             mail_storage_set_critical
        - Src:             'maildir-util.c:302,6'
          Dst:             strrchr
        - Src:             'maildir-util.c:303,2'
          Dst:             i_panic
        - Src:             'maildir-util.c:306,2'
          Dst:             i_panic
        - Src:             'maildir-util.c:308,21'
          Dst:             t_strdup_until
        - Src:             'maildir-util.c:308,9'
          Dst:             t_strconcat
        - Src:             'maildir-util.c:309,6'
          Dst:             rename
        - Src:             'maildir-util.c:310,3'
          Dst:             mail_storage_set_critical
        - Src:             'maildir-util.c:314,13'
          Dst:             __errno_location
        - Src:             'maildir-util.c:318,3'
          Dst:             mail_storage_set_critical
    - functionName:    maildir_create_subdirs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - mailbox_get_path
        - mailbox_get_path_to
        - mailbox_set_critical
        - maildir_create_path
        - stat
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:224,25'
          Dst:             mailbox_get_path
        - Src:             'maildir-util.c:224,13'
          Dst:             t_strconcat
        - Src:             'maildir-util.c:227,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-util.c:231,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-util.c:236,2'
          Dst:             i_panic
        - Src:             'maildir-util.c:240,7'
          Dst:             stat
        - Src:             'maildir-util.c:242,7'
          Dst:             __errno_location
        - Src:             'maildir-util.c:243,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-util.c:246,7'
          Dst:             maildir_create_path
    - functionName:    maildir_set_deleted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_panic
        - mailbox_get_path
        - mailbox_set_critical
        - mailbox_set_deleted
        - maildir_create_subdirs
        - stat
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:257,11'
          Dst:             mailbox_get_path
        - Src:             'maildir-util.c:257,6'
          Dst:             stat
        - Src:             'maildir-util.c:258,7'
          Dst:             __errno_location
        - Src:             'maildir-util.c:259,4'
          Dst:             mailbox_set_deleted
        - Src:             'maildir-util.c:262,28'
          Dst:             mailbox_get_path
        - Src:             'maildir-util.c:261,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-util.c:268,2'
          Dst:             t_push
        - Src:             'maildir-util.c:269,9'
          Dst:             maildir_create_subdirs
        - Src:             'maildir-util.c:270,4'
          Dst:             t_pop
        - Src:             'maildir-util.c:270,4'
          Dst:             i_panic
    - functionName:    do_racecheck
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - lstat
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:127,8'
          Dst:             lstat
        - Src:             'maildir-util.c:130,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-util.c:133,24'
          Dst:             __errno_location
        - Src:             'maildir-util.c:134,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-util.c:138,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_file_do_try
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          175
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - mailbox_get_path
        - maildir_filename_guess
        - maildir_sync_lookup
        - maildir_uidlist_add_flags
        - maildir_uidlist_update_fname
        - t_strconcat
        - t_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:82,8'
          Dst:             maildir_sync_lookup
        - Src:             'maildir-util.c:88,11'
          Dst:             maildir_filename_guess
        - Src:             'maildir-util.c:93,10'
          Dst:             t_strdup
        - Src:             'maildir-util.c:98,22'
          Dst:             mailbox_get_path
        - Src:             'maildir-util.c:98,10'
          Dst:             t_strconcat
        - Src:             'maildir-util.c:103,22'
          Dst:             mailbox_get_path
        - Src:             'maildir-util.c:103,10'
          Dst:             t_strconcat
        - Src:             'maildir-util.c:109,3'
          Dst:             maildir_uidlist_update_fname
        - Src:             'maildir-util.c:114,3'
          Dst:             maildir_uidlist_add_flags
    - functionName:    maildir_file_do
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          229
      EdgeCount:       59
      CyclomaticComplexity: 10
      functionsReached:
        - do_racecheck
        - i_panic
        - maildir_file_do_try
        - maildir_storage_sync_force
        - maildir_sync_refresh_flags_view
        - t_pop
        - t_push
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-util.c:150,2'
          Dst:             t_push
        - Src:             'maildir-util.c:151,9'
          Dst:             maildir_file_do_try
        - Src:             'maildir-util.c:152,4'
          Dst:             t_pop
        - Src:             'maildir-util.c:152,4'
          Dst:             i_panic
        - Src:             'maildir-util.c:153,64'
          Dst:             t_push
        - Src:             'maildir-util.c:155,7'
          Dst:             maildir_sync_refresh_flags_view
        - Src:             'maildir-util.c:156,10'
          Dst:             maildir_file_do_try
        - Src:             'maildir-util.c:157,4'
          Dst:             t_pop
        - Src:             'maildir-util.c:157,4'
          Dst:             i_panic
        - Src:             'maildir-util.c:162,7'
          Dst:             maildir_storage_sync_force
        - Src:             'maildir-util.c:165,3'
          Dst:             t_push
        - Src:             'maildir-util.c:166,10'
          Dst:             maildir_file_do_try
        - Src:             'maildir-util.c:167,5'
          Dst:             t_pop
        - Src:             'maildir-util.c:167,5'
          Dst:             i_panic
        - Src:             'maildir-util.c:170,39'
          Dst:             t_push
        - Src:             'maildir-util.c:171,9'
          Dst:             maildir_file_do_try
        - Src:             'maildir-util.c:171,9'
          Dst:             do_racecheck
        - Src:             'maildir-util.c:172,4'
          Dst:             t_pop
        - Src:             'maildir-util.c:172,4'
          Dst:             i_panic
    - functionName:    mbox_transaction_unlock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          150
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mbox_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:755,3'
          Dst:             mbox_unlock
        - Src:             'mbox-storage.c:757,3'
          Dst:             mbox_unlock
        - Src:             'mbox-storage.c:759,3'
          Dst:             i_panic
        - Src:             'mbox-storage.c:760,3'
          Dst:             i_panic
        - Src:             'mbox-storage.c:765,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_mailbox_get_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          161
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - mail_index_is_in_memory
        - mail_storage_set_error
        - mailbox_alloc
        - mailbox_free
        - mailbox_sync
        - mbox_file_open
        - mbox_sync_header_refresh
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:630,6'
          Dst:             mail_index_is_in_memory
        - Src:             'mbox-storage.c:633,13'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:636,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:640,6'
          Dst:             mbox_sync_header_refresh
        - Src:             'mbox-storage.c:643,7'
          Dst:             guid_128_is_empty
        - Src:             'mbox-storage.c:645,13'
          Dst:             mbox_file_open
        - Src:             'mbox-storage.c:648,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:657,3'
          Dst:             i_panic
        - Src:             'mbox-storage.c:658,10'
          Dst:             mailbox_alloc
        - Src:             'mbox-storage.c:659,9'
          Dst:             mailbox_sync
        - Src:             'mbox-storage.c:661,3'
          Dst:             i_memcpy
        - Src:             'mbox-storage.c:662,3'
          Dst:             mailbox_free
        - Src:             'mbox-storage.c:665,2'
          Dst:             i_memcpy
    - functionName:    create_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          133
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - i_close_fd_path
        - mail_error_create_eacces_msg
        - mail_storage_set_error
        - mailbox_get_path
        - mailbox_set_critical
        - open
        - restrict_access_drop_priv_gid
        - restrict_access_use_priv_gid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:536,15'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:538,7'
          Dst:             open
        - Src:             'mbox-storage.c:539,18'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:539,18'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:539,18'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:541,9'
          Dst:             restrict_access_use_priv_gid
        - Src:             'mbox-storage.c:542,8'
          Dst:             open
        - Src:             'mbox-storage.c:543,3'
          Dst:             restrict_access_drop_priv_gid
        - Src:             'mbox-storage.c:546,3'
          Dst:             i_close_fd_path
        - Src:             'mbox-storage.c:548,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:548,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:548,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:550,4'
          Dst:             mail_error_create_eacces_msg
        - Src:             'mbox-storage.c:549,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-storage.c:552,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:553,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:557,3'
          Dst:             mailbox_set_critical
    - functionName:    mbox_lock_touch_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mbox_dotlock_touch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:409,2'
          Dst:             mbox_dotlock_touch
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    want_memory_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mail_storage_set_critical
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:359,6'
          Dst:             stat
        - Src:             'mbox-storage.c:360,7'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:363,4'
          Dst:             mail_storage_set_critical
    - functionName:    mbox_mailbox_open_existing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          148
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - mailbox_get_path
        - mailbox_list_get_root_forced
        - mbox_lock
        - mbox_lock_touch_timeout
        - mbox_mailbox_open_finish
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - timeout_add
        - want_memory_indexes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:431,35'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:434,19'
          Dst:             want_memory_indexes
        - Src:             'mbox-storage.c:436,24'
          Dst:             strcmp
        - Src:             'mbox-storage.c:439,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mbox-storage.c:441,8'
          Dst:             strlen
        - Src:             'mbox-storage.c:441,8'
          Dst:             strncmp
        - Src:             'mbox-storage.c:441,8'
          Dst:             str_begins_with
        - Src:             'mbox-storage.c:445,7'
          Dst:             mbox_lock
        - Src:             'mbox-storage.c:450,5'
          Dst:             timeout_add
        - Src:             'mbox-storage.c:450,5'
          Dst:             mbox_lock_touch_timeout
        - Src:             'mbox-storage.c:454,9'
          Dst:             mbox_mailbox_open_finish
    - functionName:    mbox_mailbox_open_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_mailbox_open
        - mail_index_ext_register
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:415,6'
          Dst:             index_storage_mailbox_open
        - Src:             'mbox-storage.c:419,3'
          Dst:             mail_index_ext_register
        - Src:             'mbox-storage.c:423,3'
          Dst:             mail_index_ext_register
    - functionName:    mbox_is_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          144
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:243,6'
          Dst:             stat
        - Src:             'mbox-storage.c:244,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:244,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:244,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:249,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:249,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:249,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:253,6'
          Dst:             i_faccessat2
        - Src:             'mbox-storage.c:254,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:254,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:254,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:259,2'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:259,2'
          Dst:             e_debug
        - Src:             'mbox-storage.c:259,2'
          Dst:             event_send_abort
    - functionName:    mbox_storage_find_inbox_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          137
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:301,9'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:302,6'
          Dst:             i_faccessat2
        - Src:             'mbox-storage.c:303,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:303,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:303,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:306,2'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:306,2'
          Dst:             e_debug
        - Src:             'mbox-storage.c:306,2'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:308,9'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:309,6'
          Dst:             i_faccessat2
        - Src:             'mbox-storage.c:310,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:310,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:310,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:313,2'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:313,2'
          Dst:             e_debug
        - Src:             'mbox-storage.c:313,2'
          Dst:             event_send_abort
    - functionName:    mbox_storage_find_root_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_user_get_home
        - mbox_storage_is_root_dir
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:281,6'
          Dst:             mail_user_get_home
        - Src:             'mbox-storage.c:282,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:282,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:282,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:286,9'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:287,6'
          Dst:             mbox_storage_is_root_dir
        - Src:             'mbox-storage.c:290,9'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:291,6'
          Dst:             mbox_storage_is_root_dir
    - functionName:    mbox_storage_is_root_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mbox_is_dir
        - mbox_is_file
        - t_strconcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:265,18'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:265,6'
          Dst:             mbox_is_dir
        - Src:             'mbox-storage.c:268,19'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:268,6'
          Dst:             mbox_is_file
        - Src:             'mbox-storage.c:270,19'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:270,6'
          Dst:             mbox_is_file
    - functionName:    mbox_is_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          144
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - stat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:219,6'
          Dst:             stat
        - Src:             'mbox-storage.c:220,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:220,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:220,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:225,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:225,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:225,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:229,6'
          Dst:             i_faccessat2
        - Src:             'mbox-storage.c:230,3'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:230,3'
          Dst:             e_debug
        - Src:             'mbox-storage.c:230,3'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:235,2'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:235,2'
          Dst:             e_debug
        - Src:             'mbox-storage.c:235,2'
          Dst:             event_send_abort
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    mbox_is_internal_name
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - module_context_get_require
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:699,36'
          Dst:             module_context_get_require
        - Src:             'mbox-storage.c:703,8'
          Dst:             strlen
        - Src:             'mbox-storage.c:704,17'
          Dst:             strcmp
        - Src:             'mbox-storage.c:707,6'
          Dst:             strcmp
    - functionName:    mbox_list_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          180
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - i_unreached
        - module_context_get_require
        - strrchr
        - t_strconcat
        - t_strdup_until
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mbox-storage.c:124,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mbox-storage.c:114,36'
          Dst:             module_context_get_require
        - Src:             'mbox-storage.c:138,14'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:142,7'
          Dst:             strrchr
        - Src:             'mbox-storage.c:146,25'
          Dst:             t_strdup_until
        - Src:             'mbox-storage.c:146,13'
          Dst:             t_strconcat
        - Src:             'mbox-storage.c:157,3'
          Dst:             i_unreached
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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-storage/index/mbox/../../../../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:    mbox_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - index_transaction_rollback
        - mbox_transaction_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:800,3'
          Dst:             i_panic
        - Src:             'mbox-storage.c:804,2'
          Dst:             index_transaction_rollback
        - Src:             'mbox-storage.c:805,2'
          Dst:             mbox_transaction_unlock
    - functionName:    mbox_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - index_transaction_commit
        - mbox_transaction_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:781,3'
          Dst:             i_panic
        - Src:             'mbox-storage.c:785,8'
          Dst:             index_transaction_commit
        - Src:             'mbox-storage.c:786,2'
          Dst:             mbox_transaction_unlock
    - functionName:    mbox_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_transaction_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:743,7'
          Dst:             malloc_multiply_check
        - Src:             'mbox-storage.c:743,7'
          Dst:             p_malloc
        - Src:             'mbox-storage.c:744,2'
          Dst:             index_transaction_init
    - functionName:    mbox_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_get_path
        - mailbox_watch_add
        - mailbox_watch_remove_all
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:690,3'
          Dst:             mailbox_watch_remove_all
        - Src:             'mbox-storage.c:692,26'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:692,3'
          Dst:             mailbox_watch_add
    - functionName:    mbox_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_get_metadata
        - mbox_mailbox_get_guid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:676,6'
          Dst:             index_mailbox_get_metadata
        - Src:             'mbox-storage.c:679,7'
          Dst:             mbox_mailbox_get_guid
    - functionName:    mbox_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_is_empty
        - index_storage_mailbox_update
        - mailbox_open
        - mbox_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:515,7'
          Dst:             mailbox_open
        - Src:             'mbox-storage.c:520,7'
          Dst:             guid_128_is_empty
        - Src:             'mbox-storage.c:522,9'
          Dst:             mbox_sync
        - Src:             'mbox-storage.c:527,9'
          Dst:             index_storage_mailbox_update
    - functionName:    mbox_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - create_inbox
        - i_close_fd_path
        - index_storage_mailbox_create
        - mail_storage_set_error
        - mailbox_create_fd
        - mailbox_get_path
        - mbox_mailbox_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:569,13'
          Dst:             index_storage_mailbox_create
        - Src:             'mbox-storage.c:573,7'
          Dst:             create_inbox
        - Src:             'mbox-storage.c:577,32'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:577,9'
          Dst:             mailbox_create_fd
        - Src:             'mbox-storage.c:582,4'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:586,3'
          Dst:             i_close_fd_path
        - Src:             'mbox-storage.c:588,30'
          Dst:             mbox_mailbox_update
    - functionName:    mbox_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - i_stream_destroy
        - index_storage_mailbox_close
        - istream_raw_mbox_is_corrupted
        - mail_index_get_header
        - mbox_file_close
        - mbox_is_backend_readonly
        - mbox_sync
        - mbox_unlock
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:598,6'
          Dst:             istream_raw_mbox_is_corrupted
        - Src:             'mbox-storage.c:604,9'
          Dst:             mail_index_get_header
        - Src:             'mbox-storage.c:606,8'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-storage.c:613,9'
          Dst:             mbox_sync
        - Src:             'mbox-storage.c:616,3'
          Dst:             mbox_unlock
        - Src:             'mbox-storage.c:617,2'
          Dst:             timeout_remove
        - Src:             'mbox-storage.c:619,9'
          Dst:             mbox_file_close
        - Src:             'mbox-storage.c:620,2'
          Dst:             i_stream_destroy
        - Src:             'mbox-storage.c:622,2'
          Dst:             index_storage_mailbox_close
    - functionName:    mbox_is_backend_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_faccessat2
        - mailbox_get_path
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:812,30'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:812,7'
          Dst:             i_faccessat2
        - Src:             'mbox-storage.c:813,7'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:813,7'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:813,7'
          Dst:             __errno_location
    - functionName:    mbox_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       29
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - i_stream_ref
        - mail_storage_set_error
        - mail_storage_set_error_from_errno
        - mailbox_get_path
        - mailbox_set_critical
        - mbox_mailbox_open_existing
        - mbox_mailbox_open_finish
        - stat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:480,3'
          Dst:             i_stream_ref
        - Src:             'mbox-storage.c:485,10'
          Dst:             mbox_mailbox_open_finish
        - Src:             'mbox-storage.c:488,13'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:488,8'
          Dst:             stat
        - Src:             'mbox-storage.c:491,11'
          Dst:             mbox_mailbox_open_existing
        - Src:             'mbox-storage.c:492,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:495,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:495,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:495,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:495,13'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:497,4'
          Dst:             t_strdup_printf
        - Src:             'mbox-storage.c:496,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:499,13'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'mbox-storage.c:503,27'
          Dst:             mailbox_get_path
        - Src:             'mbox-storage.c:502,3'
          Dst:             mailbox_set_critical
    - functionName:    mbox_storage_is_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_is_readonly
        - mailbox_get_private_flags_mask
        - mbox_is_backend_readonly
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:461,6'
          Dst:             index_storage_is_readonly
        - Src:             'mbox-storage.c:464,6'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-storage.c:467,7'
          Dst:             mailbox_get_private_flags_mask
    - functionName:    mbox_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          142
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_fatal
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:378,9'
          Dst:             pool_alloconly_create
        - Src:             'mbox-storage.c:379,9'
          Dst:             malloc_multiply_check
        - Src:             'mbox-storage.c:379,9'
          Dst:             p_malloc
        - Src:             'mbox-storage.c:386,2'
          Dst:             index_storage_mailbox_alloc
        - Src:             'mbox-storage.c:393,6'
          Dst:             strcmp
        - Src:             'mbox-storage.c:395,11'
          Dst:             strcmp
        - Src:             'mbox-storage.c:398,3'
          Dst:             i_fatal
    - functionName:    mbox_storage_autodetect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mbox_is_file
        - mbox_storage_find_inbox_file
        - mbox_storage_find_root_dir
        - mbox_storage_is_root_dir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:330,7'
          Dst:             mbox_is_file
        - Src:             'mbox-storage.c:334,15'
          Dst:             mbox_storage_is_root_dir
        - Src:             'mbox-storage.c:338,14'
          Dst:             mbox_storage_find_root_dir
        - Src:             'mbox-storage.c:340,4'
          Dst:             event_want_level
        - Src:             'mbox-storage.c:340,4'
          Dst:             e_debug
        - Src:             'mbox-storage.c:340,4'
          Dst:             event_send_abort
        - Src:             'mbox-storage.c:345,16'
          Dst:             mbox_storage_find_inbox_file
    - functionName:    mbox_storage_add_list
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_set_i
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:720,10'
          Dst:             malloc_multiply_check
        - Src:             'mbox-storage.c:720,10'
          Dst:             p_malloc
        - Src:             'mbox-storage.c:729,2'
          Dst:             module_get_context_id
        - Src:             'mbox-storage.c:729,2'
          Dst:             array_idx_set_i
    - functionName:    mbox_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_destroy
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:211,2'
          Dst:             pool_unref
        - Src:             'mbox-storage.c:212,2'
          Dst:             index_storage_destroy
    - functionName:    mbox_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          120
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_get_temp_prefix
        - master_service_get_client_limit
        - p_strconcat
        - settings_get
        - stat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:182,6'
          Dst:             master_service_get_client_limit
        - Src:             'mbox-storage.c:188,6'
          Dst:             settings_get
        - Src:             'mbox-storage.c:192,6'
          Dst:             mailbox_list_get_root_path
        - Src:             'mbox-storage.c:194,9'
          Dst:             mailbox_list_get_temp_prefix
        - Src:             'mbox-storage.c:193,32'
          Dst:             p_strconcat
        - Src:             'mbox-storage.c:196,6'
          Dst:             stat
        - Src:             'mbox-storage.c:198,14'
          Dst:             t_strdup_printf
    - functionName:    mbox_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:167,9'
          Dst:             pool_alloconly_create
        - Src:             'mbox-storage.c:168,12'
          Dst:             malloc_multiply_check
        - Src:             'mbox-storage.c:168,12'
          Dst:             p_malloc
    - functionName:    mbox_ostream_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - mbox_set_syscall_error_str
        - o_stream_get_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:106,2'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:107,45'
          Dst:             o_stream_get_error
        - Src:             'mbox-storage.c:107,2'
          Dst:             mbox_set_syscall_error_str
    - functionName:    mbox_set_syscall_error_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - i_panic
        - mail_storage_set_error
        - mailbox_set_critical
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:76,2'
          Dst:             i_panic
        - Src:             'mbox-storage.c:78,6'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:79,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-storage.c:82,30'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:84,3'
          Dst:             mailbox_set_critical
    - functionName:    mbox_istream_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - i_stream_get_error
        - mbox_set_syscall_error_str
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:98,2'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:99,45'
          Dst:             i_stream_get_error
        - Src:             'mbox-storage.c:99,2'
          Dst:             mbox_set_syscall_error_str
    - functionName:    mbox_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - mbox_set_syscall_error_str
        - strerror
      functionUses:    42
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-storage.c:91,54'
          Dst:             __errno_location
        - Src:             'mbox-storage.c:91,45'
          Dst:             strerror
        - Src:             'mbox-storage.c:91,2'
          Dst:             mbox_set_syscall_error_str
    - functionName:    mbox_list_index_update_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_list_index_update_sync
        - mail_index_lookup_ext
        - mail_index_transaction_get_view
        - mail_index_update_ext
        - mbox_list_get_ext_id
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-list-index.c:92,2'
          Dst:             index_storage_list_index_update_sync
        - Src:             'mbox-sync-list-index.c:95,14'
          Dst:             mail_index_transaction_get_view
        - Src:             'mbox-sync-list-index.c:96,11'
          Dst:             mbox_list_get_ext_id
        - Src:             'mbox-sync-list-index.c:97,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync-list-index.c:107,6'
          Dst:             memcmp
        - Src:             'mbox-sync-list-index.c:108,3'
          Dst:             mail_index_update_ext
    - functionName:    mbox_list_get_ext_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-list-index.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_ext_register
        - mail_index_view_get_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-list-index.c:13,28'
          Dst:             mail_index_view_get_index
        - Src:             'mbox-sync-list-index.c:13,4'
          Dst:             mail_index_ext_register
    - functionName:    mbox_list_index_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-list-index.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          210
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - index_storage_list_index_has_changed
        - mail_index_lookup_ext
        - mailbox_get_path_to
        - mailbox_set_critical
        - mbox_list_get_ext_id
        - stat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-list-index.c:34,8'
          Dst:             index_storage_list_index_has_changed
        - Src:             'mbox-sync-list-index.c:39,11'
          Dst:             mbox_list_get_ext_id
        - Src:             'mbox-sync-list-index.c:40,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync-list-index.c:55,8'
          Dst:             mailbox_get_path_to
        - Src:             'mbox-sync-list-index.c:58,2'
          Dst:             i_panic
        - Src:             'mbox-sync-list-index.c:60,6'
          Dst:             stat
        - Src:             'mbox-sync-list-index.c:61,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-sync-list-index.c:65,15'
          Dst:             t_strdup_printf
        - Src:             'mbox-sync-list-index.c:72,15'
          Dst:             t_strdup_printf
    - functionName:    mbox_get_uidvalidity_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1458
      functionLinenumberEnd: 1463
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_uidvalidity_next
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1461,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mbox-sync.c:1462,9'
          Dst:             t_strconcat
        - Src:             'mbox-sync.c:1463,9'
          Dst:             mailbox_uidvalidity_next
    - functionName:    mbox_write_pseudo
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          258
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - dec2str
        - ftruncate
        - i_panic
        - mbox_from_create
        - mbox_set_syscall_error
        - message_date_create
        - pwrite_full
        - str_data
        - str_len
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1225,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1246,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1248,8'
          Dst:             t_str_new
        - Src:             'mbox-sync.c:1258,21'
          Dst:             mbox_from_create
        - Src:             'mbox-sync.c:1259,7'
          Dst:             message_date_create
        - Src:             'mbox-sync.c:1260,20'
          Dst:             dec2str
        - Src:             'mbox-sync.c:1249,2'
          Dst:             str_printfa
        - Src:             'mbox-sync.c:1264,4'
          Dst:             str_data
        - Src:             'mbox-sync.c:1264,19'
          Dst:             str_len
        - Src:             'mbox-sync.c:1263,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync.c:1265,8'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1265,8'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1266,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1272,7'
          Dst:             ftruncate
        - Src:             'mbox-sync.c:1273,4'
          Dst:             mbox_set_syscall_error
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_append_zero
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1306
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - ftruncate
        - mbox_set_syscall_error
        - pwrite
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1291,9'
          Dst:             pwrite
        - Src:             'mbox-sync.c:1300,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1301,7'
          Dst:             ftruncate
        - Src:             'mbox-sync.c:1302,4'
          Dst:             mbox_set_syscall_error
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_sync_seek_to_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 890
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          125
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_size
        - istream_raw_mbox_seek
        - mail_index_lookup_seq_range
        - mail_index_view_get_messages_count
        - mbox_istream_set_syscall_error
        - mbox_sync_seek_to_seq
        - mbox_sync_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:896,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:898,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mbox-sync.c:901,9'
          Dst:             i_stream_get_size
        - Src:             'mbox-sync.c:903,4'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:907,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:909,7'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-sync.c:911,4'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:916,4'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mbox-sync.c:920,9'
          Dst:             mbox_sync_seek_to_seq
    - functionName:    mbox_sync_set_critical
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_set_critical
        - t_strdup_vprintf
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:74,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-sync.c:82,9'
          Dst:             t_strdup_vprintf
        - Src:             'mbox-sync.c:80,2'
          Dst:             mailbox_set_critical
    - functionName:    mbox_sync_seek_to_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          217
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - dec2str
        - istream_raw_mbox_get_body_offset
        - istream_raw_mbox_get_start_offset
        - istream_raw_mbox_seek
        - mail_index_lookup_uid
        - mail_storage_set_error
        - mbox_file_seek
        - mbox_sync_set_critical
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:832,7'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-sync.c:834,4'
          Dst:             mail_storage_set_error
        - Src:             'mbox-sync.c:841,16'
          Dst:             istream_raw_mbox_get_start_offset
        - Src:             'mbox-sync.c:843,9'
          Dst:             mbox_file_seek
        - Src:             'mbox-sync.c:846,5'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:852,8'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-sync.c:856,19'
          Dst:             dec2str
        - Src:             'mbox-sync.c:854,5'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:866,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mbox-sync.c:873,6'
          Dst:             istream_raw_mbox_get_start_offset
        - Src:             'mbox-sync.c:880,6'
          Dst:             istream_raw_mbox_get_body_offset
        - Src:             'mbox-sync.c:881,3'
          Dst:             mbox_sync_set_critical
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_from_offsets
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - mail_index_update_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:591,10'
          Dst:             array_get_i
        - Src:             'mbox-sync.c:598,3'
          Dst:             mail_index_update_ext
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mbox_sync_update_from_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_lookup_ext
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:291,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync.c:300,2'
          Dst:             mail_index_update_ext
    - functionName:    mbox_sync_update_md5_if_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_ext
        - mail_index_update_ext
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:326,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync.c:329,6'
          Dst:             memcmp
        - Src:             'mbox-sync.c:330,3'
          Dst:             mail_index_update_ext
    - functionName:    mbox_sync_update_index_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_is_created_i
        - mail_index_keywords_create
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_update_keywords
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:311,14'
          Dst:             array_is_created_i
        - Src:             'mbox-sync.c:312,3'
          Dst:             mail_index_keywords_create
        - Src:             'mbox-sync.c:313,3'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'mbox-sync.c:315,2'
          Dst:             mail_index_update_keywords
        - Src:             'mbox-sync.c:317,2'
          Dst:             mail_index_keywords_unref
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mbox_write_from_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mbox_set_syscall_error
        - mbox_sync_file_updated
        - pwrite_full
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:572,43'
          Dst:             str_data
        - Src:             'mbox-sync.c:572,58'
          Dst:             str_len
        - Src:             'mbox-sync.c:572,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync.c:574,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:578,2'
          Dst:             mbox_sync_file_updated
    - functionName:    mbox_sync_file_updated
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fstat
        - i_stream_sync
        - mbox_set_syscall_error
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:123,6'
          Dst:             fstat
        - Src:             'mbox-sync.c:124,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:125,2'
          Dst:             i_stream_sync
    - functionName:    mbox_read_from_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - buffer_set_used_size
        - i_stream_get_data
        - i_stream_read
        - i_stream_seek
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:492,2'
          Dst:             buffer_set_used_size
        - Src:             'mbox-sync.c:495,2'
          Dst:             i_stream_seek
        - Src:             'mbox-sync.c:497,10'
          Dst:             i_stream_get_data
        - Src:             'mbox-sync.c:501,3'
          Dst:             buffer_append
        - Src:             'mbox-sync.c:502,3'
          Dst:             i_stream_skip
        - Src:             'mbox-sync.c:508,7'
          Dst:             i_stream_read
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    mbox_sync_get_dirty_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          144
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - index_keyword_array_cmp
        - mail_index_lookup_keywords
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:357,2'
          Dst:             pool_datastack_create
        - Src:             'mbox-sync.c:357,2'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:358,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'mbox-sync.c:360,7'
          Dst:             index_keyword_array_cmp
        - Src:             'mbox-sync.c:364,8'
          Dst:             array_is_created_i
        - Src:             'mbox-sync.c:365,4'
          Dst:             array_count_i
        - Src:             'mbox-sync.c:365,4'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:369,3'
          Dst:             array_clear_i
        - Src:             'mbox-sync.c:370,3'
          Dst:             array_append_array_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    6
      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:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_sync_hdr_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          129
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:998,3'
          Dst:             i_panic
    - functionName:    mbox_sync_partial_seek_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 984
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          247
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - index_sync_changes_delete_to
        - index_sync_changes_get_next_uid
        - index_sync_changes_have
        - mail_index_view_get_messages_count
        - mbox_sync_seek_to_seq
        - mbox_sync_seek_to_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:930,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:934,2'
          Dst:             index_sync_changes_delete_to
        - Src:             'mbox-sync.c:935,6'
          Dst:             index_sync_changes_have
        - Src:             'mbox-sync.c:944,8'
          Dst:             index_sync_changes_get_next_uid
        - Src:             'mbox-sync.c:959,9'
          Dst:             mbox_sync_seek_to_uid
        - Src:             'mbox-sync.c:967,4'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mbox-sync.c:969,10'
          Dst:             mbox_sync_seek_to_seq
    - functionName:    mbox_sync_handle_missing_space
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          355
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_array_i
        - array_append_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_is_created_i
        - i_panic
        - mbox_sync_file_update_ext_modified
        - mbox_sync_rewrite
        - p_clear
        - update_from_offsets
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:744,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:747,6'
          Dst:             array_is_created_i
        - Src:             'mbox-sync.c:751,3'
          Dst:             array_count_i
        - Src:             'mbox-sync.c:751,3'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:753,3'
          Dst:             array_append_array_i
        - Src:             'mbox-sync.c:756,2'
          Dst:             array_append_i
        - Src:             'mbox-sync.c:761,4'
          Dst:             i_panic
        - Src:             'mbox-sync.c:774,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:789,3'
          Dst:             array_count_i
        - Src:             'mbox-sync.c:789,3'
          Dst:             array_delete_i
        - Src:             'mbox-sync.c:802,2'
          Dst:             mbox_sync_file_update_ext_modified
        - Src:             'mbox-sync.c:803,6'
          Dst:             mbox_sync_rewrite
        - Src:             'mbox-sync.c:809,2'
          Dst:             update_from_offsets
        - Src:             'mbox-sync.c:817,2'
          Dst:             array_clear_i
        - Src:             'mbox-sync.c:818,2'
          Dst:             p_clear
    - functionName:    mbox_sync_file_update_ext_modified
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - fstat
        - mbox_set_syscall_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:103,6'
          Dst:             fstat
        - Src:             'mbox-sync.c:104,3'
          Dst:             mbox_set_syscall_error
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mbox_sync_update_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          289
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - array_create_i
        - index_keyword_array_cmp
        - mail_index_append
        - mail_index_lookup_keywords
        - mail_index_update_ext
        - mail_index_update_flags
        - mbox_sync_update_from_offset
        - mbox_sync_update_index_keywords
        - mbox_sync_update_md5_if_changed
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:433,3'
          Dst:             mail_index_append
        - Src:             'mbox-sync.c:434,3'
          Dst:             mail_index_update_flags
        - Src:             'mbox-sync.c:436,3'
          Dst:             mbox_sync_update_index_keywords
        - Src:             'mbox-sync.c:439,4'
          Dst:             mail_index_update_ext
        - Src:             'mbox-sync.c:447,4'
          Dst:             mail_index_update_flags
        - Src:             'mbox-sync.c:455,4'
          Dst:             mail_index_update_flags
        - Src:             'mbox-sync.c:461,3'
          Dst:             pool_datastack_create
        - Src:             'mbox-sync.c:461,3'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:462,3'
          Dst:             mail_index_lookup_keywords
        - Src:             'mbox-sync.c:464,8'
          Dst:             index_keyword_array_cmp
        - Src:             'mbox-sync.c:465,4'
          Dst:             mbox_sync_update_index_keywords
        - Src:             'mbox-sync.c:469,4'
          Dst:             mbox_sync_update_md5_if_changed
        - Src:             'mbox-sync.c:482,3'
          Dst:             mbox_sync_update_from_offset
    - functionName:    mbox_sync_handle_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          132
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - istream_raw_mbox_has_crlf_ending
        - mail_index_expunge
        - mailbox_sync_notify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:608,2'
          Dst:             mailbox_sync_notify
        - Src:             'mbox-sync.c:610,2'
          Dst:             mail_index_expunge
        - Src:             'mbox-sync.c:624,7'
          Dst:             istream_raw_mbox_has_crlf_ending
    - functionName:    mbox_sync_handle_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         65
      ICount:          437
      EdgeCount:       82
      CyclomaticComplexity: 19
      functionsReached:
        - array_append_i
        - i_panic
        - mbox_read_from_line
        - mbox_sync_try_rewrite
        - mbox_sync_update_header
        - mbox_write_from_line
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:659,7'
          Dst:             mbox_read_from_line
        - Src:             'mbox-sync.c:661,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:664,3'
          Dst:             mbox_sync_update_header
        - Src:             'mbox-sync.c:665,9'
          Dst:             mbox_sync_try_rewrite
        - Src:             'mbox-sync.c:672,4'
          Dst:             i_panic
        - Src:             'mbox-sync.c:676,8'
          Dst:             mbox_write_from_line
        - Src:             'mbox-sync.c:686,3'
          Dst:             mbox_sync_update_header
        - Src:             'mbox-sync.c:695,14'
          Dst:             mbox_sync_try_rewrite
        - Src:             'mbox-sync.c:715,4'
          Dst:             i_panic
        - Src:             'mbox-sync.c:727,4'
          Dst:             i_panic
        - Src:             'mbox-sync.c:730,4'
          Dst:             array_append_i
    - functionName:    mbox_sync_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          159
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_array_i
        - array_create_i
        - array_is_created_i
        - index_keyword_array_cmp
        - index_sync_changes_apply
        - index_sync_type_convert
        - mailbox_sync_notify
        - mbox_sync_get_dirty_flags
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:388,4'
          Dst:             mbox_sync_get_dirty_flags
        - Src:             'mbox-sync.c:393,6'
          Dst:             array_is_created_i
        - Src:             'mbox-sync.c:394,3'
          Dst:             pool_datastack_create
        - Src:             'mbox-sync.c:394,3'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:395,3'
          Dst:             array_append_array_i
        - Src:             'mbox-sync.c:399,2'
          Dst:             index_sync_changes_apply
        - Src:             'mbox-sync.c:403,7'
          Dst:             index_keyword_array_cmp
        - Src:             'mbox-sync.c:410,8'
          Dst:             index_sync_type_convert
        - Src:             'mbox-sync.c:409,3'
          Dst:             mailbox_sync_notify
    - functionName:    mbox_sync_find_index_md5
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_expunge
        - mail_index_lookup
        - mail_index_lookup_ext
        - mail_index_view_get_messages_count
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:262,3'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mbox-sync.c:264,9'
          Dst:             mail_index_lookup
        - Src:             'mbox-sync.c:265,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync.c:269,23'
          Dst:             memcmp
        - Src:             'mbox-sync.c:273,3'
          Dst:             mail_index_expunge
    - functionName:    mbox_sync_read_index_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          168
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - mail_index_expunge
        - mail_index_lookup
        - mail_index_view_get_messages_count
        - mbox_sync_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:213,3'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mbox-sync.c:215,9'
          Dst:             mail_index_lookup
        - Src:             'mbox-sync.c:220,3'
          Dst:             mail_index_expunge
        - Src:             'mbox-sync.c:227,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:235,3'
          Dst:             mbox_sync_set_critical
    - functionName:    mbox_sync_imapbase
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - e_warning
        - mbox_sync_hdr_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1013,3'
          Dst:             e_warning
        - Src:             'mbox-sync.c:1021,3'
          Dst:             mbox_sync_hdr_update
    - functionName:    mbox_sync_read_next_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          248
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - istream_raw_mbox_get_body_size
        - istream_raw_mbox_get_header_offset
        - istream_raw_mbox_get_start_offset
        - istream_raw_mbox_is_corrupted
        - istream_raw_mbox_is_eof
        - mbox_sync_parse_next_mail
        - mbox_sync_set_critical
        - p_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:135,8'
          Dst:             istream_raw_mbox_get_header_offset
        - Src:             'mbox-sync.c:136,6'
          Dst:             istream_raw_mbox_is_eof
        - Src:             'mbox-sync.c:139,2'
          Dst:             p_clear
        - Src:             'mbox-sync.c:146,3'
          Dst:             istream_raw_mbox_get_start_offset
        - Src:             'mbox-sync.c:147,6'
          Dst:             istream_raw_mbox_get_header_offset
        - Src:             'mbox-sync.c:148,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:153,6'
          Dst:             mbox_sync_parse_next_mail
        - Src:             'mbox-sync.c:155,6'
          Dst:             istream_raw_mbox_is_corrupted
        - Src:             'mbox-sync.c:158,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:161,6'
          Dst:             istream_raw_mbox_get_body_size
        - Src:             'mbox-sync.c:164,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:168,2'
          Dst:             i_panic
    - functionName:    mbox_sync_update_index_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1467
      functionLinenumberEnd: 1561
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          425
      EdgeCount:       75
      CyclomaticComplexity: 19
      functionsReached:
        - i_panic
        - i_sleep_msecs
        - i_stream_stat
        - istream_raw_mbox_is_eof
        - mail_index_lookup_seq_range
        - mail_index_transaction_open_updated_view
        - mail_index_update_header
        - mail_index_view_close
        - mailbox_get_path
        - mailbox_recent_flags_set_seqs
        - mbox_get_uidvalidity_next
        - mbox_istream_set_syscall_error
        - mbox_set_syscall_error
        - mbox_sync_index_update_ext_header
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1472,6'
          Dst:             i_stream_stat
        - Src:             'mbox-sync.c:1473,3'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:1494,4'
          Dst:             i_sleep_msecs
        - Src:             'mbox-sync.c:1495,14'
          Dst:             mailbox_get_path
        - Src:             'mbox-sync.c:1495,8'
          Dst:             utime
        - Src:             'mbox-sync.c:1496,5'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1501,8'
          Dst:             i_stream_stat
        - Src:             'mbox-sync.c:1502,5'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:1511,2'
          Dst:             mbox_sync_index_update_ext_header
        - Src:             'mbox-sync.c:1515,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1520,4'
          Dst:             mbox_get_uidvalidity_next
        - Src:             'mbox-sync.c:1523,3'
          Dst:             mail_index_update_header
        - Src:             'mbox-sync.c:1529,6'
          Dst:             istream_raw_mbox_is_eof
        - Src:             'mbox-sync.c:1531,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1532,3'
          Dst:             mail_index_update_header
        - Src:             'mbox-sync.c:1545,9'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'mbox-sync.c:1546,6'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mbox-sync.c:1548,3'
          Dst:             mailbox_recent_flags_set_seqs
        - Src:             'mbox-sync.c:1551,2'
          Dst:             mail_index_view_close
        - Src:             'mbox-sync.c:1556,3'
          Dst:             mail_index_update_header
    - functionName:    mbox_sync_index_update_ext_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_generate
        - guid_128_is_empty
        - i_memcpy
        - mail_index_ext_resize
        - mail_index_get_header_ext
        - mail_index_update_header_ext
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1433,25'
          Dst:             guid_128_is_empty
        - Src:             'mbox-sync.c:1434,3'
          Dst:             i_memcpy
        - Src:             'mbox-sync.c:1436,13'
          Dst:             guid_128_is_empty
        - Src:             'mbox-sync.c:1437,3'
          Dst:             guid_128_generate
        - Src:             'mbox-sync.c:1440,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mbox-sync.c:1443,6'
          Dst:             memcmp
        - Src:             'mbox-sync.c:1446,4'
          Dst:             mail_index_ext_resize
        - Src:             'mbox-sync.c:1451,3'
          Dst:             mail_index_update_header_ext
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_rewrite_base_uid_last
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - mbox_set_syscall_error
        - mbox_sync_file_updated
        - mbox_sync_set_critical
        - pread_full
        - pwrite_full
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:523,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:528,8'
          Dst:             pread_full
        - Src:             'mbox-sync.c:531,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:535,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:549,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:555,8'
          Dst:             t_strdup_printf
        - Src:             'mbox-sync.c:556,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync.c:558,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:561,2'
          Dst:             mbox_sync_file_updated
    - functionName:    mbox_sync_handle_eof_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         95
      ICount:          589
      EdgeCount:       116
      CyclomaticComplexity: 23
      functionsReached:
        - array_clear_i
        - ftruncate
        - i_panic
        - i_stream_get_size
        - istream_raw_mbox_is_eof
        - mbox_append_zero
        - mbox_istream_set_syscall_error
        - mbox_move
        - mbox_set_syscall_error
        - mbox_sync_file_update_ext_modified
        - mbox_sync_file_updated
        - mbox_sync_rewrite
        - mbox_sync_set_critical
        - mbox_write_pseudo
        - p_clear
        - str_append_c
        - update_from_offsets
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1314,7'
          Dst:             istream_raw_mbox_is_eof
        - Src:             'mbox-sync.c:1315,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1316,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1320,8'
          Dst:             i_stream_get_size
        - Src:             'mbox-sync.c:1322,3'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:1332,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:1339,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1342,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1344,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1349,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1354,4'
          Dst:             str_append_c
        - Src:             'mbox-sync.c:1356,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1358,7'
          Dst:             mbox_append_zero
        - Src:             'mbox-sync.c:1361,3'
          Dst:             mbox_sync_file_updated
        - Src:             'mbox-sync.c:1363,7'
          Dst:             mbox_sync_rewrite
        - Src:             'mbox-sync.c:1369,3'
          Dst:             update_from_offsets
        - Src:             'mbox-sync.c:1372,3'
          Dst:             array_clear_i
        - Src:             'mbox-sync.c:1373,3'
          Dst:             p_clear
        - Src:             'mbox-sync.c:1377,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1379,3'
          Dst:             mbox_sync_file_update_ext_modified
        - Src:             'mbox-sync.c:1395,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1397,3'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1399,7'
          Dst:             mbox_move
        - Src:             'mbox-sync.c:1403,7'
          Dst:             ftruncate
        - Src:             'mbox-sync.c:1405,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1410,8'
          Dst:             mbox_write_pseudo
        - Src:             'mbox-sync.c:1415,3'
          Dst:             mbox_sync_file_updated
        - Src:             'mbox-sync.c:1418,8'
          Dst:             mbox_write_pseudo
    - functionName:    mbox_sync_loop
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1028
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         144
      ICount:          829
      EdgeCount:       192
      CyclomaticComplexity: 50
      functionsReached:
        - i_panic
        - istream_raw_mbox_get_start_offset
        - istream_raw_mbox_is_eof
        - istream_raw_mbox_next
        - mail_index_expunge
        - mail_index_view_get_messages_count
        - mailbox_set_critical
        - mbox_move
        - mbox_sync_file_update_ext_modified
        - mbox_sync_find_index_md5
        - mbox_sync_handle_expunge
        - mbox_sync_handle_header
        - mbox_sync_handle_missing_space
        - mbox_sync_imapbase
        - mbox_sync_partial_seek_next
        - mbox_sync_read_index_rec
        - mbox_sync_read_index_syncs
        - mbox_sync_read_next_mail
        - mbox_sync_seek
        - mbox_sync_seek_to_seq
        - mbox_sync_set_critical
        - mbox_sync_update_flags
        - mbox_sync_update_index
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1036,3'
          Dst:             mail_index_view_get_messages_count
        - Src:             'mbox-sync.c:1040,8'
          Dst:             mbox_sync_seek_to_seq
        - Src:             'mbox-sync.c:1047,4'
          Dst:             mail_index_expunge
        - Src:             'mbox-sync.c:1053,16'
          Dst:             mbox_sync_read_next_mail
        - Src:             'mbox-sync.c:1057,8'
          Dst:             mbox_sync_imapbase
        - Src:             'mbox-sync.c:1069,4'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync.c:1083,9'
          Dst:             mbox_sync_read_index_rec
        - Src:             'mbox-sync.c:1099,4'
          Dst:             mbox_sync_find_index_md5
        - Src:             'mbox-sync.c:1108,3'
          Dst:             mbox_sync_read_index_syncs
        - Src:             'mbox-sync.c:1127,5'
          Dst:             mail_index_expunge
        - Src:             'mbox-sync.c:1135,5'
          Dst:             mailbox_set_critical
        - Src:             'mbox-sync.c:1150,32'
          Dst:             t_push
        - Src:             'mbox-sync.c:1151,5'
          Dst:             mbox_sync_update_flags
        - Src:             'mbox-sync.c:1152,6'
          Dst:             t_pop
        - Src:             'mbox-sync.c:1152,6'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1153,8'
          Dst:             mbox_sync_handle_header
        - Src:             'mbox-sync.c:1157,4'
          Dst:             mbox_sync_handle_expunge
        - Src:             'mbox-sync.c:1161,19'
          Dst:             t_push
        - Src:             'mbox-sync.c:1162,5'
          Dst:             mbox_sync_update_index
        - Src:             'mbox-sync.c:1163,6'
          Dst:             t_pop
        - Src:             'mbox-sync.c:1163,6'
          Dst:             i_panic
        - Src:             'mbox-sync.c:1167,7'
          Dst:             istream_raw_mbox_next
        - Src:             'mbox-sync.c:1170,12'
          Dst:             istream_raw_mbox_get_start_offset
        - Src:             'mbox-sync.c:1173,8'
          Dst:             mbox_sync_handle_missing_space
        - Src:             'mbox-sync.c:1175,8'
          Dst:             mbox_sync_seek
        - Src:             'mbox-sync.c:1180,5'
          Dst:             mbox_sync_file_update_ext_modified
        - Src:             'mbox-sync.c:1181,9'
          Dst:             mbox_move
        - Src:             'mbox-sync.c:1187,9'
          Dst:             mbox_sync_seek
        - Src:             'mbox-sync.c:1191,10'
          Dst:             mbox_sync_partial_seek_next
        - Src:             'mbox-sync.c:1201,6'
          Dst:             istream_raw_mbox_is_eof
        - Src:             'mbox-sync.c:1204,4'
          Dst:             mail_index_expunge
    - functionName:    mbox_sync_read_index_syncs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_sync_changes_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:191,2'
          Dst:             index_sync_changes_read
    - functionName:    mbox_sync_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - istream_raw_mbox_seek
        - mbox_sync_set_critical
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:88,6'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-sync.c:89,3'
          Dst:             mbox_sync_set_critical
    - functionName:    mbox_sync_restart
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1564
      functionLinenumberEnd: 1595
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          126
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_clear_i
        - index_sync_changes_reset
        - mail_index_reset
        - mail_index_sync_reset
        - mail_index_transaction_reset
        - mailbox_recent_flags_reset
        - p_clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1569,2'
          Dst:             array_clear_i
        - Src:             'mbox-sync.c:1570,2'
          Dst:             p_clear
        - Src:             'mbox-sync.c:1572,2'
          Dst:             index_sync_changes_reset
        - Src:             'mbox-sync.c:1573,9'
          Dst:             mail_index_sync_reset
        - Src:             'mbox-sync.c:1574,2'
          Dst:             mail_index_transaction_reset
        - Src:             'mbox-sync.c:1577,3'
          Dst:             mail_index_reset
        - Src:             'mbox-sync.c:1580,3'
          Dst:             mailbox_recent_flags_reset
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_sync_do
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1599
      functionLinenumberEnd: 1690
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          381
      EdgeCount:       85
      CyclomaticComplexity: 24
      functionsReached:
        - i_stream_stat
        - index_sync_changes_reset
        - mbox_istream_set_syscall_error
        - mbox_rewrite_base_uid_last
        - mbox_sync_handle_eof_updates
        - mbox_sync_loop
        - mbox_sync_restart
        - mbox_sync_update_index_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1607,6'
          Dst:             i_stream_stat
        - Src:             'mbox-sync.c:1608,3'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:1644,2'
          Dst:             mbox_sync_restart
        - Src:             'mbox-sync.c:1646,9'
          Dst:             mbox_sync_loop
        - Src:             'mbox-sync.c:1665,3'
          Dst:             mbox_sync_restart
        - Src:             'mbox-sync.c:1669,6'
          Dst:             mbox_sync_handle_eof_updates
        - Src:             'mbox-sync.c:1675,2'
          Dst:             index_sync_changes_reset
        - Src:             'mbox-sync.c:1682,23'
          Dst:             mbox_rewrite_base_uid_last
        - Src:             'mbox-sync.c:1687,6'
          Dst:             mbox_sync_update_index_header
    - functionName:    mbox_sync_context_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1785
      functionLinenumberEnd: 1795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - index_storage_expunging_deinit
        - index_sync_changes_deinit
        - mail_index_sync_rollback
        - pool_unref
        - str_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1786,2'
          Dst:             index_sync_changes_deinit
        - Src:             'mbox-sync.c:1787,2'
          Dst:             index_storage_expunging_deinit
        - Src:             'mbox-sync.c:1789,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mbox-sync.c:1790,2'
          Dst:             pool_unref
        - Src:             'mbox-sync.c:1791,2'
          Dst:             pool_unref
        - Src:             'mbox-sync.c:1792,2'
          Dst:             str_free
        - Src:             'mbox-sync.c:1793,2'
          Dst:             str_free
        - Src:             'mbox-sync.c:1794,2'
          Dst:             array_free_i
    - functionName:    mbox_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 2046
      functionLinenumberEnd: 2063
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
        - mbox_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:2051,6'
          Dst:             index_mailbox_want_full_sync
        - Src:             'mbox-sync.c:2060,9'
          Dst:             mbox_sync
        - Src:             'mbox-sync.c:2063,9'
          Dst:             index_mailbox_sync_init
    - functionName:    mbox_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 2011
      functionLinenumberEnd: 2041
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          156
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mailbox_sync_notify
        - mbox_lock
        - mbox_sync_int
        - mbox_unlock
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:2015,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:2019,8'
          Dst:             mbox_sync_int
        - Src:             'mbox-sync.c:2025,4'
          Dst:             mbox_unlock
        - Src:             'mbox-sync.c:2027,8'
          Dst:             mbox_unlock
        - Src:             'mbox-sync.c:2033,8'
          Dst:             mbox_lock
        - Src:             'mbox-sync.c:2035,8'
          Dst:             mbox_unlock
        - Src:             'mbox-sync.c:2040,2'
          Dst:             mailbox_sync_notify
    - functionName:    mbox_sync_int
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1799
      functionLinenumberEnd: 2008
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         133
      ICount:          840
      EdgeCount:       181
      CyclomaticComplexity: 50
      functionsReached:
        - __errno_location
        - array_create_i
        - fdatasync
        - fstat
        - i_panic
        - i_stream_sync
        - index_storage_expunged_sync_begin
        - index_storage_expunging_deinit
        - index_storage_get_sync_flags
        - index_sync_changes_get_next_uid
        - index_sync_changes_init
        - mail_index_get_header
        - mail_index_get_keywords
        - mail_index_sync_commit
        - mail_index_sync_have_more
        - mail_index_sync_rollback
        - mailbox_get_path
        - mailbox_set_index_error
        - mbox_file_open_stream
        - mbox_is_backend_readonly
        - mbox_lock
        - mbox_set_syscall_error
        - mbox_sync_context_free
        - mbox_sync_do
        - mbox_sync_has_changed
        - mbox_sync_header_refresh
        - mbox_sync_read_index_syncs
        - mbox_unlock
        - pool_alloconly_create
        - str_new
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1808,13'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-sync.c:1819,7'
          Dst:             mbox_lock
        - Src:             'mbox-sync.c:1825,7'
          Dst:             mbox_sync_header_refresh
        - Src:             'mbox-sync.c:1830,14'
          Dst:             mbox_sync_has_changed
        - Src:             'mbox-sync.c:1842,3'
          Dst:             mbox_unlock
        - Src:             'mbox-sync.c:1848,3'
          Dst:             i_stream_sync
        - Src:             'mbox-sync.c:1850,3'
          Dst:             i_stream_sync
        - Src:             'mbox-sync.c:1860,14'
          Dst:             mbox_lock
        - Src:             'mbox-sync.c:1865,8'
          Dst:             mbox_lock
        - Src:             'mbox-sync.c:1873,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'mbox-sync.c:1877,8'
          Dst:             index_storage_expunged_sync_begin
        - Src:             'mbox-sync.c:1884,18'
          Dst:             mail_index_get_header
        - Src:             'mbox-sync.c:1889,19'
          Dst:             mail_index_sync_have_more
        - Src:             'mbox-sync.c:1894,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'mbox-sync.c:1895,7'
          Dst:             mail_index_sync_commit
        - Src:             'mbox-sync.c:1896,4'
          Dst:             mailbox_set_index_error
        - Src:             'mbox-sync.c:1907,17'
          Dst:             mail_index_get_header
        - Src:             'mbox-sync.c:1908,23'
          Dst:             str_new
        - Src:             'mbox-sync.c:1909,20'
          Dst:             str_new
        - Src:             'mbox-sync.c:1915,3'
          Dst:             pool_alloconly_create
        - Src:             'mbox-sync.c:1917,3'
          Dst:             pool_alloconly_create
        - Src:             'mbox-sync.c:1920,8'
          Dst:             mail_index_get_keywords
        - Src:             'mbox-sync.c:1922,2'
          Dst:             array_create_i
        - Src:             'mbox-sync.c:1929,3'
          Dst:             index_sync_changes_init
        - Src:             'mbox-sync.c:1938,3'
          Dst:             mbox_sync_read_index_syncs
        - Src:             'mbox-sync.c:1940,4'
          Dst:             index_sync_changes_get_next_uid
        - Src:             'mbox-sync.c:1943,4'
          Dst:             mbox_sync_context_free
        - Src:             'mbox-sync.c:1951,3'
          Dst:             mbox_sync_context_free
        - Src:             'mbox-sync.c:1956,6'
          Dst:             mbox_file_open_stream
        - Src:             'mbox-sync.c:1957,3'
          Dst:             mbox_sync_context_free
        - Src:             'mbox-sync.c:1966,8'
          Dst:             mbox_sync_do
        - Src:             'mbox-sync.c:1969,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mbox-sync.c:1970,11'
          Dst:             mail_index_sync_commit
        - Src:             'mbox-sync.c:1971,3'
          Dst:             mailbox_set_index_error
        - Src:             'mbox-sync.c:1985,7'
          Dst:             fstat
        - Src:             'mbox-sync.c:1986,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1990,14'
          Dst:             mailbox_get_path
        - Src:             'mbox-sync.c:1990,8'
          Dst:             utime
        - Src:             'mbox-sync.c:1991,9'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1991,9'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1991,9'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1992,5'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1996,2'
          Dst:             i_panic
        - Src:             'mbox-sync.c:2000,7'
          Dst:             fdatasync
        - Src:             'mbox-sync.c:2001,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:2006,2'
          Dst:             mbox_sync_context_free
    - functionName:    mbox_sync_header_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1693
      functionLinenumberEnd: 1714
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
        - mail_index_refresh
        - mailbox_set_index_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1697,6'
          Dst:             mail_index_refresh
        - Src:             'mbox-sync.c:1698,3'
          Dst:             mailbox_set_index_error
        - Src:             'mbox-sync.c:1702,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mbox-sync.c:1710,2'
          Dst:             i_memcpy
    - functionName:    mbox_sync_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1737
      functionLinenumberEnd: 1782
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          183
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - guid_128_is_empty
        - i_stream_stat
        - mailbox_get_path
        - mailbox_set_deleted
        - mbox_istream_set_syscall_error
        - mbox_set_syscall_error
        - mbox_sync_header_refresh
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1743,7'
          Dst:             i_stream_stat
        - Src:             'mbox-sync.c:1744,8'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1745,5'
          Dst:             mailbox_set_deleted
        - Src:             'mbox-sync.c:1748,4'
          Dst:             mbox_istream_set_syscall_error
        - Src:             'mbox-sync.c:1753,12'
          Dst:             mailbox_get_path
        - Src:             'mbox-sync.c:1753,7'
          Dst:             stat
        - Src:             'mbox-sync.c:1754,8'
          Dst:             __errno_location
        - Src:             'mbox-sync.c:1755,5'
          Dst:             mailbox_set_deleted
        - Src:             'mbox-sync.c:1758,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync.c:1764,6'
          Dst:             mbox_sync_header_refresh
        - Src:             'mbox-sync.c:1767,6'
          Dst:             guid_128_is_empty
    - functionName:    mbox_sync_get_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 1717
      functionLinenumberEnd: 1734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mbox_lock
        - mbox_sync_header_refresh
        - mbox_sync_index_update_ext_header
        - mbox_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync.c:1722,6'
          Dst:             mbox_lock
        - Src:             'mbox-sync.c:1725,8'
          Dst:             mbox_sync_header_refresh
        - Src:             'mbox-sync.c:1727,11'
          Dst:             mail_index_transaction_begin
        - Src:             'mbox-sync.c:1729,3'
          Dst:             mbox_sync_index_update_ext_header
        - Src:             'mbox-sync.c:1730,9'
          Dst:             mail_index_transaction_commit
        - Src:             'mbox-sync.c:1732,2'
          Dst:             mbox_unlock
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mdbox_deleted_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          233
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - index_storage_get_sync_flags
        - mail_index_append
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_rollback
        - mail_index_update_ext
        - mailbox_set_index_error
        - mdbox_deleted_mailbox_create_indexes
        - mdbox_map_get_messages_count
        - mdbox_map_lookup_seq_full
        - mdbox_map_lookup_uid
        - mdbox_map_open
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:180,6'
          Dst:             mdbox_map_open
        - Src:             'mdbox-deleted-storage.c:183,6'
          Dst:             mdbox_deleted_mailbox_create_indexes
        - Src:             'mdbox-deleted-storage.c:187,18'
          Dst:             time_to_uint32
        - Src:             'mdbox-deleted-storage.c:189,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'mdbox-deleted-storage.c:190,6'
          Dst:             mail_index_sync_begin
        - Src:             'mdbox-deleted-storage.c:192,3'
          Dst:             mailbox_set_index_error
        - Src:             'mdbox-deleted-storage.c:196,14'
          Dst:             mdbox_map_get_messages_count
        - Src:             'mdbox-deleted-storage.c:198,7'
          Dst:             mdbox_map_lookup_seq_full
        - Src:             'mdbox-deleted-storage.c:204,18'
          Dst:             mdbox_map_lookup_uid
        - Src:             'mdbox-deleted-storage.c:206,4'
          Dst:             mail_index_append
        - Src:             'mdbox-deleted-storage.c:207,4'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-deleted-storage.c:213,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mdbox-deleted-storage.c:215,7'
          Dst:             mail_index_sync_commit
        - Src:             'mdbox-deleted-storage.c:216,4'
          Dst:             mailbox_set_index_error
    - functionName:    mdbox_deleted_mailbox_create_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header
        - mailbox_set_index_error
        - mdbox_update_header
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:69,26'
          Dst:             time_to_uint32
        - Src:             'mdbox-deleted-storage.c:76,15'
          Dst:             mail_index_transaction_begin
        - Src:             'mdbox-deleted-storage.c:80,2'
          Dst:             mail_index_update_header
        - Src:             'mdbox-deleted-storage.c:83,2'
          Dst:             mail_index_update_header
        - Src:             'mdbox-deleted-storage.c:87,2'
          Dst:             mdbox_update_header
        - Src:             'mdbox-deleted-storage.c:91,7'
          Dst:             mail_index_transaction_commit
        - Src:             'mdbox-deleted-storage.c:92,4'
          Dst:             mailbox_set_index_error
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mdbox_get_attachment_path_suffix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 102
      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:    mdbox_deleted_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_save_context_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:152,2'
          Dst:             index_save_context_free
    - functionName:    mdbox_deleted_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_save_context_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:145,2'
          Dst:             index_save_context_free
    - functionName:    mdbox_deleted_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_deleted_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:132,2'
          Dst:             mail_storage_set_error
    - functionName:    mdbox_deleted_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:123,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-deleted-storage.c:123,8'
          Dst:             p_malloc
    - functionName:    mdbox_deleted_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
        - mdbox_deleted_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:233,6'
          Dst:             index_mailbox_want_full_sync
        - Src:             'mdbox-deleted-storage.c:235,9'
          Dst:             mdbox_deleted_sync
        - Src:             'mdbox-deleted-storage.c:237,9'
          Dst:             index_mailbox_sync_init
    - functionName:    mdbox_deleted_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - guid_128_generate
        - index_mailbox_get_metadata
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:110,6'
          Dst:             index_mailbox_get_metadata
        - Src:             'mdbox-deleted-storage.c:114,3'
          Dst:             guid_128_generate
    - functionName:    mdbox_deleted_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          68
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:48,9'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-deleted-storage.c:49,9'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-deleted-storage.c:49,9'
          Dst:             p_malloc
        - Src:             'mdbox-deleted-storage.c:56,2'
          Dst:             index_storage_mailbox_alloc
    - functionName:    mdbox_deleted_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-deleted-storage.c:30,9'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-deleted-storage.c:31,12'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-deleted-storage.c:31,12'
          Dst:             p_malloc
    - functionName:    mdbox_file_close_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_delete_i
        - dbox_file_free
        - mdbox_find_oldest_unused_file
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:250,19'
          Dst:             mdbox_find_oldest_unused_file
        - Src:             'mdbox-file.c:253,3'
          Dst:             array_delete_i
        - Src:             'mdbox-file.c:254,3'
          Dst:             dbox_file_free
        - Src:             'mdbox-file.c:258,3'
          Dst:             timeout_remove
    - functionName:    mdbox_find_oldest_unused_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:230,10'
          Dst:             array_get_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_file_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          144
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - e_error
        - file_preallocate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mdbox-file.c:121,4'
          Branch Sides:    []
      Callsites:
        - Src:             'mdbox-file.c:118,9'
          Dst:             file_preallocate
        - Src:             'mdbox-file.c:121,12'
          Dst:             __errno_location
        - Src:             'mdbox-file.c:127,5'
          Dst:             e_error
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_close_open_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_delete_i
        - array_get_i
        - dbox_file_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:72,10'
          Dst:             array_get_i
        - Src:             'mdbox-file.c:75,4'
          Dst:             dbox_file_free
        - Src:             'mdbox-file.c:76,4'
          Dst:             array_delete_i
        - Src:             'mdbox-file.c:81,12'
          Dst:             array_get_i
    - functionName:    mdbox_find_and_move_open_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:33,10'
          Dst:             array_get_i
    - functionName:    mdbox_file_create_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          203
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - mail_storage_copy_list_error
        - mail_storage_set_critical
        - mailbox_list_get_root_permissions
        - mailbox_list_mkdir_root
        - open
        - strrchr
        - t_strdup_until
        - umask
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:311,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mdbox-file.c:313,13'
          Dst:             umask
        - Src:             'mdbox-file.c:314,7'
          Dst:             open
        - Src:             'mdbox-file.c:315,2'
          Dst:             umask
        - Src:             'mdbox-file.c:316,18'
          Dst:             __errno_location
        - Src:             'mdbox-file.c:317,11'
          Dst:             strrchr
        - Src:             'mdbox-file.c:318,9'
          Dst:             t_strdup_until
        - Src:             'mdbox-file.c:319,7'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mdbox-file.c:323,4'
          Dst:             mail_storage_copy_list_error
        - Src:             'mdbox-file.c:328,14'
          Dst:             umask
        - Src:             'mdbox-file.c:329,8'
          Dst:             open
        - Src:             'mdbox-file.c:330,3'
          Dst:             umask
        - Src:             'mdbox-file.c:333,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-file.c:337,13'
          Dst:             fchown
        - Src:             'mdbox-file.c:338,7'
          Dst:             __errno_location
        - Src:             'mdbox-file.c:340,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'mdbox-file.c:339,4'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-file.c:344,4'
          Dst:             mail_storage_set_critical
    - functionName:    mdbox_file_close_later
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mdbox_file_close_timeout
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:265,4'
          Dst:             timeout_add
        - Src:             'mdbox-file.c:265,4'
          Dst:             mdbox_file_close_timeout
    - functionName:    mdbox_file_unrefed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_delete_i
        - dbox_file_free
        - i_panic
        - mdbox_file_close_later
        - mdbox_find_oldest_unused_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:281,11'
          Dst:             array_count_i
        - Src:             'mdbox-file.c:284,4'
          Dst:             mdbox_file_close_later
        - Src:             'mdbox-file.c:289,17'
          Dst:             mdbox_find_oldest_unused_file
        - Src:             'mdbox-file.c:290,3'
          Dst:             i_panic
        - Src:             'mdbox-file.c:291,3'
          Dst:             array_delete_i
        - Src:             'mdbox-file.c:293,4'
          Dst:             dbox_file_free
        - Src:             'mdbox-file.c:294,4'
          Dst:             mdbox_file_close_later
        - Src:             'mdbox-file.c:299,2'
          Dst:             dbox_file_free
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mdbox_file_init_paths
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup_printf
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:91,2'
          Dst:             p_free_internal
        - Src:             'mdbox-file.c:92,2'
          Dst:             p_free_internal
        - Src:             'mdbox-file.c:94,3'
          Dst:             i_strdup_printf
        - Src:             'mdbox-file.c:97,4'
          Dst:             i_strdup_printf
    - functionName:    mdbox_file_assign_file_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          160
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - i_panic
        - mail_storage_set_critical
        - mdbox_file_init_paths
        - mdbox_storage_set_corrupted
        - rename
        - stat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:196,2'
          Dst:             i_panic
        - Src:             'mdbox-file.c:197,2'
          Dst:             i_panic
        - Src:             'mdbox-file.c:200,14'
          Dst:             t_strdup_printf
        - Src:             'mdbox-file.c:203,13'
          Dst:             t_strdup_printf
        - Src:             'mdbox-file.c:205,6'
          Dst:             stat
        - Src:             'mdbox-file.c:206,3'
          Dst:             mdbox_storage_set_corrupted
        - Src:             'mdbox-file.c:210,6'
          Dst:             rename
        - Src:             'mdbox-file.c:211,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-file.c:216,2'
          Dst:             mdbox_file_init_paths
        - Src:             'mdbox-file.c:219,2'
          Dst:             array_append_i
    - functionName:    mdbox_file_init_new_alt
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_file_init_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:187,9'
          Dst:             mdbox_file_init_full
    - functionName:    mdbox_file_init_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          158
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_count_i
        - dbox_file_init
        - dbox_generate_tmp_filename
        - malloc_multiply_check
        - mdbox_close_open_files
        - mdbox_file_create
        - mdbox_file_init_paths
        - mdbox_find_and_move_open_file
        - p_malloc
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:148,3'
          Dst:             mdbox_find_and_move_open_file
        - Src:             'mdbox-file.c:154,10'
          Dst:             array_count_i
        - Src:             'mdbox-file.c:156,3'
          Dst:             mdbox_close_open_files
        - Src:             'mdbox-file.c:160,9'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-file.c:160,9'
          Dst:             p_malloc
        - Src:             'mdbox-file.c:164,25'
          Dst:             dbox_generate_tmp_filename
        - Src:             'mdbox-file.c:165,3'
          Dst:             t_strdup_printf
        - Src:             'mdbox-file.c:166,2'
          Dst:             mdbox_file_init_paths
        - Src:             'mdbox-file.c:167,2'
          Dst:             dbox_file_init
        - Src:             'mdbox-file.c:172,3'
          Dst:             array_append_i
        - Src:             'mdbox-file.c:174,9'
          Dst:             mdbox_file_create
    - functionName:    mdbox_file_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_file_init_full
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:181,9'
          Dst:             mdbox_file_init_full
    - functionName:    mdbox_files_sync_input
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_stream_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:59,10'
          Dst:             array_get_i
        - Src:             'mdbox-file.c:62,4'
          Dst:             i_stream_sync
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_files_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_clear_i
        - array_get_i
        - array_is_created_i
        - dbox_file_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-file.c:46,7'
          Dst:             array_is_created_i
        - Src:             'mdbox-file.c:48,10'
          Dst:             array_get_i
        - Src:             'mdbox-file.c:50,3'
          Dst:             dbox_file_free
        - Src:             'mdbox-file.c:51,2'
          Dst:             array_clear_i
    - functionName:    mdbox_mail_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_update_flags
        - mdbox_purge_alt_flag_change
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:232,3'
          Dst:             mdbox_purge_alt_flag_change
        - Src:             'mdbox-mail.c:238,2'
          Dst:             index_mail_update_flags
    - functionName:    mdbox_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          166
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_header_have_flag
        - dbox_mail_get_special
        - mdbox_mail_lookup
        - mdbox_map_lookup_full
        - p_strdup_printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mdbox-mail.c:187,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mdbox-mail.c:189,7'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-mail.c:192,7'
          Dst:             mdbox_map_lookup_full
        - Src:             'mdbox-mail.c:195,14'
          Dst:             p_strdup_printf
        - Src:             'mdbox-mail.c:199,7'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-mail.c:202,14'
          Dst:             p_strdup_printf
        - Src:             'mdbox-mail.c:206,8'
          Dst:             dbox_header_have_flag
        - Src:             'mdbox-mail.c:214,8'
          Dst:             dbox_header_have_flag
        - Src:             'mdbox-mail.c:224,9'
          Dst:             dbox_mail_get_special
    - functionName:    mdbox_mail_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          142
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mdbox_map_get_uid_validity
        - mdbox_map_open_or_create
        - mdbox_read_header
        - mdbox_set_mailbox_corrupted
        - t_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:25,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-mail.c:28,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-mail.c:29,43'
          Dst:             t_strdup_printf
        - Src:             'mdbox-mail.c:29,3'
          Dst:             mdbox_set_mailbox_corrupted
        - Src:             'mdbox-mail.c:35,7'
          Dst:             mdbox_read_header
        - Src:             'mdbox-mail.c:39,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-mail.c:42,25'
          Dst:             mdbox_map_get_uid_validity
        - Src:             'mdbox-mail.c:44,43'
          Dst:             t_strdup_printf
        - Src:             'mdbox-mail.c:44,3'
          Dst:             mdbox_set_mailbox_corrupted
    - functionName:    mdbox_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mail_get_save_date
        - mail_index_lookup_ext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:165,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-mail.c:170,10'
          Dst:             dbox_mail_get_save_date
    - functionName:    dbox_mail_set_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_is_expunged
        - mail_index_refresh
        - mail_set_expunged
        - mailbox_get_vname
        - mdbox_map_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:58,2'
          Dst:             mail_index_refresh
        - Src:             'mdbox-mail.c:59,6'
          Dst:             mail_index_is_expunged
        - Src:             'mdbox-mail.c:60,3'
          Dst:             mail_set_expunged
        - Src:             'mdbox-mail.c:66,5'
          Dst:             mailbox_get_vname
        - Src:             'mdbox-mail.c:64,2'
          Dst:             mdbox_map_set_corrupted
    - functionName:    mdbox_mail_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - dbox_file_open
        - dbox_file_unref
        - dbox_mail_set_expunged
        - mail_stream_access_start
        - mdbox_mail_file_set
        - mdbox_mail_lookup
        - mdbox_map_refresh
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:124,7'
          Dst:             mail_stream_access_start
        - Src:             'mdbox-mail.c:128,7'
          Dst:             mdbox_mail_file_set
        - Src:             'mdbox-mail.c:132,7'
          Dst:             dbox_file_open
        - Src:             'mdbox-mail.c:141,9'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-mail.c:144,5'
          Dst:             dbox_mail_set_expunged
        - Src:             'mdbox-mail.c:148,8'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-mail.c:150,4'
          Dst:             dbox_file_unref
    - functionName:    mdbox_mail_file_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_mail_open_init
        - mdbox_mail_lookup
        - mdbox_save_file_get_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:101,7'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-mail.c:104,7'
          Dst:             dbox_mail_open_init
        - Src:             'mdbox-mail.c:109,4'
          Dst:             mdbox_save_file_get_file
    - functionName:    dbox_mail_open_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mail_set_expunged
        - mdbox_file_init
        - mdbox_map_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-mail.c:76,13'
          Dst:             mdbox_map_lookup
        - Src:             'mdbox-mail.c:84,3'
          Dst:             dbox_mail_set_expunged
        - Src:             'mdbox-mail.c:87,21'
          Dst:             mdbox_file_init
    - functionName:    mdbox_find_highest_file_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - closedir
        - e_error
        - opendir
        - readdir
        - str_to_uint
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1205,8'
          Dst:             opendir
        - Src:             'mdbox-map.c:1207,3'
          Dst:             e_error
        - Src:             'mdbox-map.c:1210,14'
          Dst:             readdir
        - Src:             'mdbox-map.c:1211,7'
          Dst:             strncmp
        - Src:             'mdbox-map.c:1212,7'
          Dst:             str_to_uint
        - Src:             'mdbox-map.c:1217,8'
          Dst:             closedir
    - functionName:    dbox_file_is_ok_at
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          62
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_seek
        - dbox_file_seek_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:830,6'
          Dst:             dbox_file_seek
        - Src:             'mdbox-map.c:833,16'
          Dst:             dbox_file_seek_next
    - functionName:    dbox_try_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_open
        - dbox_file_open_primary
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:804,7'
          Dst:             dbox_file_open
        - Src:             'mdbox-map.c:807,7'
          Dst:             dbox_file_open_primary
    - functionName:    mdbox_map_file_try_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      bool
      argCount:        8
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          227
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - dbox_file_append_init
        - dbox_file_append_rollback
        - dbox_file_get_append_stream
        - dbox_file_is_ok_at
        - dbox_file_try_lock
        - dbox_file_unlock
        - dbox_file_unref
        - dbox_try_open
        - e_error
        - mdbox_file_init
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:860,9'
          Dst:             mdbox_file_init
        - Src:             'mdbox-map.c:861,7'
          Dst:             dbox_try_open
        - Src:             'mdbox-map.c:862,3'
          Dst:             dbox_file_unref
        - Src:             'mdbox-map.c:868,18'
          Dst:             dbox_file_try_lock
        - Src:             'mdbox-map.c:871,13'
          Dst:             stat
        - Src:             'mdbox-map.c:872,7'
          Dst:             __errno_location
        - Src:             'mdbox-map.c:873,4'
          Dst:             e_error
        - Src:             'mdbox-map.c:881,7'
          Dst:             dbox_file_is_ok_at
        - Src:             'mdbox-map.c:884,17'
          Dst:             dbox_file_append_init
        - Src:             'mdbox-map.c:885,7'
          Dst:             dbox_file_get_append_stream
        - Src:             'mdbox-map.c:894,3'
          Dst:             dbox_file_append_rollback
        - Src:             'mdbox-map.c:898,2'
          Dst:             dbox_file_unlock
        - Src:             'mdbox-map.c:899,2'
          Dst:             dbox_file_unref
    - functionName:    mdbox_map_is_appending
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:911,17'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_map_find_primary_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - closedir
        - mail_storage_set_critical
        - opendir
        - readdir
        - seq_range_array_add
        - str_to_uint32
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:979,8'
          Dst:             opendir
        - Src:             'mdbox-map.c:981,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-map.c:986,7'
          Dst:             __errno_location
        - Src:             'mdbox-map.c:986,23'
          Dst:             readdir
        - Src:             'mdbox-map.c:987,7'
          Dst:             strncmp
        - Src:             'mdbox-map.c:990,7'
          Dst:             str_to_uint32
        - Src:             'mdbox-map.c:994,3'
          Dst:             seq_range_array_add
        - Src:             'mdbox-map.c:986,46'
          Dst:             __errno_location
        - Src:             'mdbox-map.c:996,6'
          Dst:             __errno_location
        - Src:             'mdbox-map.c:997,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-map.c:1001,6'
          Dst:             closedir
        - Src:             'mdbox-map.c:1002,3'
          Dst:             mail_storage_set_critical
    - functionName:    day_begin_stamp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - localtime
        - mktime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:779,8'
          Dst:             localtime
        - Src:             'mdbox-map.c:792,10'
          Dst:             mktime
        - Src:             'mdbox-map.c:794,3'
          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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_generate_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1469
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_set_reason
        - mail_index_update_header
        - mdbox_map_sync_handle
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1479,8'
          Dst:             mail_index_sync_begin
        - Src:             'mdbox-map.c:1482,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1485,2'
          Dst:             mdbox_map_sync_handle
        - Src:             'mdbox-map.c:1487,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:1491,18'
          Dst:             time_to_uint32
        - Src:             'mdbox-map.c:1492,3'
          Dst:             mail_index_update_header
        - Src:             'mdbox-map.c:1496,2'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-map.c:1497,9'
          Dst:             mail_index_sync_commit
    - functionName:    mdbox_map_sync_handle
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_sync_get_offsets
        - mail_index_sync_next
        - mdbox_storage_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:483,2'
          Dst:             mail_index_sync_get_offsets
        - Src:             'mdbox-map.c:486,3'
          Dst:             mdbox_storage_set_corrupted
        - Src:             'mdbox-map.c:491,9'
          Dst:             mail_index_sync_next
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mdbox_map_mkdir_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_storage_copy_list_error
        - mailbox_list_mkdir_root
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:114,6'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mdbox-map.c:116,3'
          Dst:             mail_storage_copy_list_error
        - Src:             'mdbox-map.c:120,6'
          Dst:             strcmp
        - Src:             'mdbox-map.c:121,6'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mdbox-map.c:123,3'
          Dst:             mail_storage_copy_list_error
    - functionName:    mdbox_map_get_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1501
      functionLinenumberEnd: 1509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mdbox_map_set_corrupted
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1504,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1506,17'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:1508,3'
          Dst:             mdbox_map_set_corrupted
    - functionName:    mdbox_map_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_storage_set_corrupted
        - t_strdup_vprintf
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:37,9'
          Dst:             t_strdup_vprintf
        - Src:             'mdbox-map.c:35,2'
          Dst:             mdbox_storage_set_corrupted
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mdbox_map_append_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1439
      functionLinenumberEnd: 1466
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_free_i
        - array_get_modifiable_i
        - dbox_file_append_rollback
        - dbox_file_unlock
        - dbox_file_unref
        - mail_index_transaction_rollback
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1448,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'mdbox-map.c:1450,17'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1453,4'
          Dst:             dbox_file_append_rollback
        - Src:             'mdbox-map.c:1456,10'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1458,3'
          Dst:             dbox_file_unlock
        - Src:             'mdbox-map.c:1459,3'
          Dst:             dbox_file_unref
        - Src:             'mdbox-map.c:1462,2'
          Dst:             array_free_i
        - Src:             'mdbox-map.c:1463,2'
          Dst:             array_free_i
        - Src:             'mdbox-map.c:1464,2'
          Dst:             array_free_i
        - Src:             'mdbox-map.c:1465,2'
          Dst:             p_free_internal
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_append_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - dbox_file_append_commit
        - i_panic
        - mdbox_map_atomic_set_success
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1427,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1429,17'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1431,7'
          Dst:             dbox_file_append_commit
        - Src:             'mdbox-map.c:1434,2'
          Dst:             mdbox_map_atomic_set_success
    - functionName:    mdbox_map_atomic_set_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_map_append_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1420
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - dbox_file_append_flush
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1412,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1414,17'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1416,7'
          Dst:             dbox_file_append_flush
    - functionName:    mdbox_map_append_move
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          224
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - i_panic
        - i_unreached
        - mail_index_append
        - mail_index_expunge
        - mail_index_get_header
        - mail_index_lookup_seq
        - mail_index_update_ext
        - mdbox_map_assign_file_ids
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1364,6'
          Dst:             mdbox_map_assign_file_ids
        - Src:             'mdbox-map.c:1368,12'
          Dst:             array_get_i
        - Src:             'mdbox-map.c:1370,13'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:1371,9'
          Dst:             array_get_i
        - Src:             'mdbox-map.c:1376,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1384,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mdbox-map.c:1391,4'
          Dst:             mail_index_append
        - Src:             'mdbox-map.c:1394,3'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-map.c:1398,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mdbox-map.c:1399,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mdbox-map.c:1400,8'
          Dst:             mail_index_lookup_seq
        - Src:             'mdbox-map.c:1401,4'
          Dst:             i_unreached
        - Src:             'mdbox-map.c:1402,3'
          Dst:             mail_index_expunge
    - functionName:    mdbox_map_assign_file_ids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          230
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_i
        - dbox_file_append_flush
        - mail_index_transaction_begin
        - mail_index_update_header_ext
        - mdbox_file_assign_file_id
        - mdbox_find_highest_file_id
        - mdbox_map_atomic_lock
        - mdbox_map_get_ext_hdr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1234,6'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-map.c:1237,2'
          Dst:             mdbox_map_get_ext_hdr
        - Src:             'mdbox-map.c:1245,7'
          Dst:             mdbox_find_highest_file_id
        - Src:             'mdbox-map.c:1253,17'
          Dst:             array_get_i
        - Src:             'mdbox-map.c:1258,7'
          Dst:             dbox_file_append_flush
        - Src:             'mdbox-map.c:1262,8'
          Dst:             mdbox_file_assign_file_id
        - Src:             'mdbox-map.c:1268,3'
          Dst:             mail_index_transaction_begin
        - Src:             'mdbox-map.c:1274,3'
          Dst:             mail_index_update_header_ext
    - functionName:    mdbox_map_atomic_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          144
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_index_reset_fscked
        - mail_index_sync_begin
        - mail_index_sync_set_reason
        - mail_storage_set_index_error
        - mdbox_map_open_or_create
        - mdbox_map_sync_handle
        - mdbox_storage_set_corrupted
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:502,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-map.c:507,8'
          Dst:             mail_index_sync_begin
        - Src:             'mdbox-map.c:510,6'
          Dst:             mail_index_reset_fscked
        - Src:             'mdbox-map.c:511,3'
          Dst:             mdbox_storage_set_corrupted
        - Src:             'mdbox-map.c:515,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:516,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:520,2'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-map.c:525,2'
          Dst:             mdbox_map_sync_handle
    - functionName:    mdbox_map_get_ext_hdr
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:256,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mdbox-map.c:259,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_open_or_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_map_open_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:199,9'
          Dst:             mdbox_map_open_internal
    - functionName:    mdbox_map_open_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          237
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mail_index_close
        - mail_index_get_header
        - mail_index_open
        - mail_index_set_permissions
        - mail_index_view_open
        - mail_storage_set_index_error
        - mail_storage_settings_to_index_flags
        - mailbox_list_get_root_permissions
        - mdbox_map_generate_uid_validity
        - mdbox_map_mkdir_storage
        - mdbox_map_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:140,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mdbox-map.c:141,2'
          Dst:             mail_index_set_permissions
        - Src:             'mdbox-map.c:146,3'
          Dst:             mail_storage_settings_to_index_flags
        - Src:             'mdbox-map.c:148,14'
          Dst:             mdbox_map_mkdir_storage
        - Src:             'mdbox-map.c:157,8'
          Dst:             mail_index_open
        - Src:             'mdbox-map.c:164,9'
          Dst:             mail_index_open
        - Src:             'mdbox-map.c:167,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:172,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:176,14'
          Dst:             mail_index_view_open
        - Src:             'mdbox-map.c:178,6'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:179,7'
          Dst:             mdbox_map_generate_uid_validity
        - Src:             'mdbox-map.c:180,4'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:181,4'
          Dst:             mail_index_close
        - Src:             'mdbox-map.c:184,7'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-map.c:185,4'
          Dst:             mail_index_close
    - functionName:    mdbox_map_refresh
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_refresh
        - mail_index_reset_fscked
        - mail_index_view_have_transactions
        - mail_index_view_sync_begin
        - mail_index_view_sync_commit
        - mail_storage_set_index_error
        - mdbox_files_sync_input
        - mdbox_storage_set_corrupted
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:211,2'
          Dst:             mdbox_files_sync_input
        - Src:             'mdbox-map.c:213,6'
          Dst:             mail_index_refresh
        - Src:             'mdbox-map.c:214,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:217,6'
          Dst:             mail_index_view_have_transactions
        - Src:             'mdbox-map.c:222,8'
          Dst:             mail_index_view_sync_begin
        - Src:             'mdbox-map.c:224,11'
          Dst:             mail_index_reset_fscked
        - Src:             'mdbox-map.c:225,6'
          Dst:             mail_index_view_sync_commit
        - Src:             'mdbox-map.c:226,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:230,3'
          Dst:             mdbox_storage_set_corrupted
    - functionName:    mdbox_map_append_assign_map_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          260
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_create_i
        - array_get_i
        - array_idx_i
        - i_panic
        - mail_index_append
        - mail_index_append_finish_uids
        - mail_index_get_header
        - mail_index_transaction_commit
        - mail_index_update_ext
        - mail_index_update_header
        - mail_storage_set_index_error
        - mdbox_map_assign_file_ids
        - pool_datastack_create
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1296,6'
          Dst:             array_count_i
        - Src:             'mdbox-map.c:1302,6'
          Dst:             mdbox_map_assign_file_ids
        - Src:             'mdbox-map.c:1308,12'
          Dst:             array_get_i
        - Src:             'mdbox-map.c:1319,3'
          Dst:             mail_index_append
        - Src:             'mdbox-map.c:1320,3'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-map.c:1322,3'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-map.c:1327,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:1328,2'
          Dst:             pool_datastack_create
        - Src:             'mdbox-map.c:1328,2'
          Dst:             array_create_i
        - Src:             'mdbox-map.c:1329,2'
          Dst:             mail_index_append_finish_uids
        - Src:             'mdbox-map.c:1330,10'
          Dst:             array_idx_i
        - Src:             'mdbox-map.c:1331,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1335,27'
          Dst:             time_to_uint32
        - Src:             'mdbox-map.c:1336,3'
          Dst:             mail_index_update_header
        - Src:             'mdbox-map.c:1341,6'
          Dst:             mail_index_transaction_commit
        - Src:             'mdbox-map.c:1342,3'
          Dst:             mail_storage_set_index_error
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../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-storage/index/dbox-multi/../../../../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:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_append_abort
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1191,12'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1192,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1193,2'
          Dst:             array_delete_i
    - functionName:    mdbox_map_append_close_if_unneeded
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_append_flush
        - dbox_file_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1163,6'
          Dst:             dbox_file_append_flush
        - Src:             'mdbox-map.c:1164,3'
          Dst:             dbox_file_close
    - functionName:    mdbox_map_append_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1184
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_modifiable_i
        - dbox_file_append_checkpoint
        - i_panic
        - mdbox_map_append_close_if_unneeded
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1173,12'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-map.c:1174,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1176,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1179,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1181,2'
          Dst:             dbox_file_append_checkpoint
        - Src:             'mdbox-map.c:1183,2'
          Dst:             mdbox_map_append_close_if_unneeded
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_find_appendable_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          238
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - array_create_i
        - day_begin_stamp
        - mail_index_get_header
        - mail_index_lookup_seq_range
        - mail_index_lookup_uid
        - mdbox_map_file_try_append
        - mdbox_map_find_primary_files
        - mdbox_map_is_appending
        - mdbox_map_lookup_seq
        - pool_datastack_create
        - seq_range_array_add
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1028,10'
          Dst:             day_begin_stamp
        - Src:             'mdbox-map.c:1029,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:1032,2'
          Dst:             pool_datastack_create
        - Src:             'mdbox-map.c:1032,2'
          Dst:             array_create_i
        - Src:             'mdbox-map.c:1036,7'
          Dst:             mdbox_map_find_primary_files
        - Src:             'mdbox-map.c:1041,7'
          Dst:             mdbox_map_lookup_seq
        - Src:             'mdbox-map.c:1044,7'
          Dst:             seq_range_exists
        - Src:             'mdbox-map.c:1046,3'
          Dst:             seq_range_array_add
        - Src:             'mdbox-map.c:1065,7'
          Dst:             mdbox_map_is_appending
        - Src:             'mdbox-map.c:1070,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-map.c:1071,8'
          Dst:             mdbox_map_file_try_append
        - Src:             'mdbox-map.c:1083,8'
          Dst:             mail_index_lookup_seq_range
    - functionName:    mdbox_map_lookup_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mdbox_map_set_corrupted
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:278,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:282,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-map.c:283,3'
          Dst:             mdbox_map_set_corrupted
    - functionName:    mdbox_map_find_existing_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 961
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          170
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_i
        - dbox_file_append_flush
        - dbox_file_close
        - dbox_file_get_append_stream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:934,17'
          Dst:             array_get_i
        - Src:             'mdbox-map.c:949,7'
          Dst:             dbox_file_get_append_stream
        - Src:             'mdbox-map.c:956,30'
          Dst:             dbox_file_append_flush
        - Src:             'mdbox-map.c:957,4'
          Dst:             dbox_file_close
    - functionName:    mdbox_map_append_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 1095
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          229
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_append_space_i
        - dbox_file_append_init
        - dbox_file_append_rollback
        - dbox_file_get_append_stream
        - dbox_file_unref
        - i_panic
        - mdbox_file_init
        - mdbox_file_init_new_alt
        - mdbox_map_find_appendable_file
        - mdbox_map_find_existing_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:1106,16'
          Dst:             mdbox_map_find_existing_append
        - Src:             'mdbox-map.c:1112,9'
          Dst:             mdbox_map_find_appendable_file
        - Src:             'mdbox-map.c:1123,4'
          Dst:             mdbox_file_init
        - Src:             'mdbox-map.c:1124,4'
          Dst:             mdbox_file_init_new_alt
        - Src:             'mdbox-map.c:1125,17'
          Dst:             dbox_file_append_init
        - Src:             'mdbox-map.c:1127,9'
          Dst:             dbox_file_get_append_stream
        - Src:             'mdbox-map.c:1129,4'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1130,4'
          Dst:             dbox_file_append_rollback
        - Src:             'mdbox-map.c:1131,4'
          Dst:             dbox_file_unref
        - Src:             'mdbox-map.c:1136,11'
          Dst:             array_append_space_i
        - Src:             'mdbox-map.c:1141,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:1143,3'
          Dst:             array_append_i
        - Src:             'mdbox-map.c:1144,3'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_append_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - mdbox_map_open_or_create
        - mdbox_map_refresh
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:747,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-map.c:747,8'
          Dst:             p_malloc
        - Src:             'mdbox-map.c:751,2'
          Dst:             array_create_i
        - Src:             'mdbox-map.c:752,2'
          Dst:             array_create_i
        - Src:             'mdbox-map.c:753,2'
          Dst:             array_create_i
        - Src:             'mdbox-map.c:755,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-map.c:760,7'
          Dst:             mdbox_map_refresh
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_map_remove_file_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          131
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_expunge
        - mail_index_get_header
        - mail_index_lookup_ext
        - mdbox_map_atomic_begin
        - mdbox_map_atomic_finish
        - mdbox_map_set_corrupted
        - mdbox_map_transaction_begin
        - mdbox_map_transaction_commit
        - mdbox_map_transaction_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:715,11'
          Dst:             mdbox_map_atomic_begin
        - Src:             'mdbox-map.c:716,14'
          Dst:             mdbox_map_transaction_begin
        - Src:             'mdbox-map.c:718,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:720,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:723,4'
          Dst:             mdbox_map_set_corrupted
        - Src:             'mdbox-map.c:731,4'
          Dst:             mail_index_expunge
        - Src:             'mdbox-map.c:735,9'
          Dst:             mdbox_map_transaction_commit
        - Src:             'mdbox-map.c:736,2'
          Dst:             mdbox_map_transaction_free
        - Src:             'mdbox-map.c:737,6'
          Dst:             mdbox_map_atomic_finish
    - functionName:    mdbox_map_atomic_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:470,11'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-map.c:470,11'
          Dst:             p_malloc
    - functionName:    mdbox_map_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_transaction_begin
        - malloc_multiply_check
        - mdbox_map_open
        - mdbox_map_refresh
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:587,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-map.c:587,8'
          Dst:             p_malloc
        - Src:             'mdbox-map.c:593,13'
          Dst:             mdbox_map_open
        - Src:             'mdbox-map.c:594,4'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-map.c:599,16'
          Dst:             mail_index_transaction_begin
    - functionName:    mdbox_map_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_transaction_commit
        - mail_storage_set_index_error
        - mdbox_map_atomic_lock
        - mdbox_map_atomic_set_success
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:608,2'
          Dst:             i_panic
        - Src:             'mdbox-map.c:614,6'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-map.c:617,6'
          Dst:             mail_index_transaction_commit
        - Src:             'mdbox-map.c:618,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:622,2'
          Dst:             mdbox_map_atomic_set_success
    - functionName:    mdbox_map_transaction_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_transaction_rollback
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:633,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'mdbox-map.c:634,2'
          Dst:             p_free_internal
    - functionName:    mdbox_map_atomic_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_sync_commit
        - mail_index_sync_rollback
        - mail_storage_set_index_error
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:561,3'
          Dst:             i_panic
        - Src:             'mdbox-map.c:563,7'
          Dst:             mail_index_sync_commit
        - Src:             'mdbox-map.c:564,4'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-map.c:569,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mdbox-map.c:571,2'
          Dst:             p_free_internal
    - functionName:    mdbox_map_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_map_open_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:194,9'
          Dst:             mdbox_map_open_internal
    - functionName:    mdbox_map_update_refcounts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - mdbox_map_update_refcount
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:692,10'
          Dst:             array_count_i
        - Src:             'mdbox-map.c:694,10'
          Dst:             array_idx_i
        - Src:             'mdbox-map.c:695,7'
          Dst:             mdbox_map_update_refcount
    - functionName:    mdbox_map_update_refcount
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - mail_index_atomic_inc_ext
        - mail_index_lookup_ext
        - mail_index_lookup_seq
        - mail_storage_set_error
        - mdbox_map_set_corrupted
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:648,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mdbox-map.c:653,4'
          Dst:             mail_storage_set_error
        - Src:             'mdbox-map.c:656,4'
          Dst:             mdbox_map_set_corrupted
        - Src:             'mdbox-map.c:661,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:664,13'
          Dst:             mail_index_atomic_inc_ext
        - Src:             'mdbox-map.c:667,3'
          Dst:             mdbox_map_set_corrupted
        - Src:             'mdbox-map.c:676,4'
          Dst:             t_strdup_printf
        - Src:             'mdbox-map.c:675,3'
          Dst:             mail_storage_set_error
    - functionName:    mdbox_map_atomic_unset_fscked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_unset_fscked
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:549,3'
          Dst:             mail_index_unset_fscked
    - functionName:    mdbox_map_atomic_set_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_map_atomic_is_locked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_map_get_zero_ref_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - mail_index_get_header
        - mail_index_lookup_ext
        - mdbox_map_open
        - mdbox_map_refresh
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:439,13'
          Dst:             mdbox_map_open
        - Src:             'mdbox-map.c:443,6'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-map.c:446,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:448,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:456,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:460,4'
          Dst:             seq_range_array_add
    - functionName:    mdbox_map_get_file_msgs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          106
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - mail_index_get_header
        - mdbox_map_refresh
        - mdbox_map_view_lookup_rec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:409,6'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-map.c:411,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:415,7'
          Dst:             mdbox_map_view_lookup_rec
        - Src:             'mdbox-map.c:422,4'
          Dst:             array_append_i
    - functionName:    mdbox_map_view_lookup_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mdbox_map_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:382,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-map.c:384,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:386,3'
          Dst:             mdbox_map_set_corrupted
        - Src:             'mdbox-map.c:389,2'
          Dst:             i_memcpy
        - Src:             'mdbox-map.c:391,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:393,3'
          Dst:             mdbox_map_set_corrupted
    - functionName:    mdbox_map_get_messages_count
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_view_get_messages_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:371,9'
          Dst:             mail_index_view_get_messages_count
    - functionName:    mdbox_map_lookup_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_lookup_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:365,2'
          Dst:             mail_index_lookup_uid
    - functionName:    mdbox_map_lookup_seq_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_ext
        - mdbox_map_lookup_seq
        - mdbox_map_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:347,6'
          Dst:             mdbox_map_lookup_seq
        - Src:             'mdbox-map.c:351,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-map.c:353,3'
          Dst:             mdbox_map_set_corrupted
    - functionName:    mdbox_map_lookup_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mdbox_map_get_seq
        - mdbox_map_lookup_seq_full
        - mdbox_map_open_or_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:330,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-map.c:333,13'
          Dst:             mdbox_map_get_seq
        - Src:             'mdbox-map.c:336,9'
          Dst:             mdbox_map_lookup_seq_full
    - functionName:    mdbox_map_get_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_lookup_seq
        - mdbox_map_refresh
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:293,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mdbox-map.c:295,7'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-map.c:297,8'
          Dst:             mail_index_lookup_seq
    - functionName:    mdbox_map_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mdbox_map_get_seq
        - mdbox_map_lookup_seq
        - mdbox_map_open_or_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:310,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-map.c:313,13'
          Dst:             mdbox_map_get_seq
        - Src:             'mdbox-map.c:316,6'
          Dst:             mdbox_map_lookup_seq
    - functionName:    mdbox_map_get_rebuild_count
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_map_get_ext_hdr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:266,2'
          Dst:             mdbox_map_get_ext_hdr
    - functionName:    mdbox_map_is_fscked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_get_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:245,8'
          Dst:             mail_index_get_header
    - functionName:    mdbox_map_deinit_cleanup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mailbox_list_cleanup
        - index_mailbox_view_update_last_temp_file_scan
        - mail_index_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:86,3'
          Dst:             mail_index_get_header
        - Src:             'mdbox-map.c:87,6'
          Dst:             dbox_mailbox_list_cleanup
        - Src:             'mdbox-map.c:89,3'
          Dst:             index_mailbox_view_update_last_temp_file_scan
    - functionName:    mdbox_map_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - mail_index_close
        - mail_index_free
        - mail_index_view_close
        - mdbox_map_deinit_cleanup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:100,2'
          Dst:             mdbox_map_deinit_cleanup
        - Src:             'mdbox-map.c:102,3'
          Dst:             mail_index_view_close
        - Src:             'mdbox-map.c:103,3'
          Dst:             mail_index_close
        - Src:             'mdbox-map.c:105,2'
          Dst:             mail_index_free
        - Src:             'mdbox-map.c:106,2'
          Dst:             event_unref
        - Src:             'mdbox-map.c:107,2'
          Dst:             p_free_internal
        - Src:             'mdbox-map.c:108,2'
          Dst:             p_free_internal
        - Src:             'mdbox-map.c:109,2'
          Dst:             p_free_internal
    - functionName:    mdbox_map_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          133
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - event_drop_parent_log_prefixes
        - event_set_append_log_prefix
        - i_strconcat
        - mail_index_alloc
        - mail_index_ext_register
        - mail_index_set_fsync_mode
        - mail_index_set_lock_method
        - mail_storage_get_lock_timeout
        - mailbox_list_get_root_forced
        - malloc_multiply_check
        - p_malloc
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-map.c:47,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mdbox-map.c:48,15'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mdbox-map.c:50,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-map.c:50,8'
          Dst:             p_malloc
        - Src:             'mdbox-map.c:53,14'
          Dst:             i_strconcat
        - Src:             'mdbox-map.c:55,3'
          Dst:             i_strconcat
        - Src:             'mdbox-map.c:56,15'
          Dst:             mail_index_alloc
        - Src:             'mdbox-map.c:59,2'
          Dst:             mail_index_set_fsync_mode
        - Src:             'mdbox-map.c:63,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'mdbox-map.c:61,2'
          Dst:             mail_index_set_lock_method
        - Src:             'mdbox-map.c:65,20'
          Dst:             mail_index_ext_register
        - Src:             'mdbox-map.c:69,20'
          Dst:             mail_index_ext_register
        - Src:             'mdbox-map.c:72,15'
          Dst:             event_create
        - Src:             'mdbox-map.c:73,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'mdbox-map.c:74,42'
          Dst:             t_strdup_printf
        - Src:             'mdbox-map.c:74,2'
          Dst:             event_set_append_log_prefix
    - functionName:    mdbox_file_metadata_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_set_corrupted
        - i_stream_get_max_buffer_size
        - i_stream_read_next_line
        - i_stream_set_max_buffer_size
        - mdbox_file_read_metadata_hdr
        - o_stream_nsend
        - o_stream_nsend_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:104,13'
          Dst:             mdbox_file_read_metadata_hdr
        - Src:             'mdbox-purge.c:107,2'
          Dst:             o_stream_nsend
        - Src:             'mdbox-purge.c:108,13'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'mdbox-purge.c:110,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'mdbox-purge.c:111,17'
          Dst:             i_stream_read_next_line
        - Src:             'mdbox-purge.c:116,3'
          Dst:             o_stream_nsend_str
        - Src:             'mdbox-purge.c:117,3'
          Dst:             o_stream_nsend
        - Src:             'mdbox-purge.c:119,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'mdbox-purge.c:122,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:125,2'
          Dst:             o_stream_nsend
    - functionName:    mdbox_file_read_metadata_hdr
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_set_corrupted
        - i_memcpy
        - i_panic
        - i_stream_get_error
        - i_stream_read_bytes
        - i_stream_skip
        - mail_storage_set_critical
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:72,8'
          Dst:             i_stream_read_bytes
        - Src:             'mdbox-purge.c:75,3'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:77,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:82,4'
          Dst:             i_stream_get_error
        - Src:             'mdbox-purge.c:80,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-purge.c:86,2'
          Dst:             i_memcpy
        - Src:             'mdbox-purge.c:87,6'
          Dst:             memcmp
        - Src:             'mdbox-purge.c:89,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:92,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mdbox_purge_want_altpath
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - hash_table_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:181,10'
          Dst:             hash_table_lookup
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_purge_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - index_attachment_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:282,7'
          Dst:             index_attachment_delete
    - functionName:    mdbox_file_purge_check_refcounts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          123
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - mdbox_map_atomic_lock
        - mdbox_map_lookup_full
        - mdbox_map_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:249,6'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-purge.c:252,9'
          Dst:             array_get_i
        - Src:             'mdbox-purge.c:257,9'
          Dst:             mdbox_map_lookup_full
        - Src:             'mdbox-purge.c:262,4'
          Dst:             mdbox_map_set_corrupted
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_purge_save_msg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          221
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_set_corrupted
        - i_panic
        - i_stream_create_limit
        - i_stream_read_eof
        - i_stream_unref
        - mail_storage_set_critical
        - mdbox_file_metadata_copy
        - mdbox_map_append_begin
        - mdbox_map_append_finish
        - mdbox_map_append_next
        - mdbox_purge_want_altpath
        - o_stream_flush
        - o_stream_get_error
        - o_stream_nsend_istream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:198,21'
          Dst:             mdbox_map_append_begin
        - Src:             'mdbox-purge.c:200,18'
          Dst:             mdbox_purge_want_altpath
        - Src:             'mdbox-purge.c:203,6'
          Dst:             mdbox_map_append_next
        - Src:             'mdbox-purge.c:207,2'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:209,10'
          Dst:             i_stream_create_limit
        - Src:             'mdbox-purge.c:210,2'
          Dst:             o_stream_nsend_istream
        - Src:             'mdbox-purge.c:211,6'
          Dst:             o_stream_flush
        - Src:             'mdbox-purge.c:215,8'
          Dst:             o_stream_get_error
        - Src:             'mdbox-purge.c:212,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-purge.c:218,3'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:219,3'
          Dst:             i_stream_read_eof
        - Src:             'mdbox-purge.c:219,3'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:221,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:226,2'
          Dst:             i_stream_unref
        - Src:             'mdbox-purge.c:230,14'
          Dst:             mdbox_file_metadata_copy
        - Src:             'mdbox-purge.c:233,3'
          Dst:             mdbox_map_append_finish
    - functionName:    mdbox_metadata_get_extrefs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          149
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_set_corrupted
        - e_warning
        - i_panic
        - i_stream_get_max_buffer_size
        - i_stream_read_next_line
        - i_stream_set_max_buffer_size
        - index_attachment_parse_extrefs
        - mdbox_file_read_metadata_hdr
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:140,13'
          Dst:             mdbox_file_read_metadata_hdr
        - Src:             'mdbox-purge.c:143,13'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'mdbox-purge.c:145,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'mdbox-purge.c:146,17'
          Dst:             i_stream_read_next_line
        - Src:             'mdbox-purge.c:151,39'
          Dst:             t_push
        - Src:             'mdbox-purge.c:152,9'
          Dst:             index_attachment_parse_extrefs
        - Src:             'mdbox-purge.c:154,5'
          Dst:             e_warning
        - Src:             'mdbox-purge.c:157,5'
          Dst:             t_pop
        - Src:             'mdbox-purge.c:157,5'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:159,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'mdbox-purge.c:162,3'
          Dst:             dbox_file_set_corrupted
    - functionName:    mdbox_map_file_msg_offset_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    uint32_t_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_purge_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash_table_destroy
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:489,2'
          Dst:             hash_table_destroy
        - Src:             'mdbox-purge.c:490,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:491,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:492,2'
          Dst:             pool_unref
    - functionName:    mdbox_file_purge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          515
      EdgeCount:       104
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - array_append_i
        - array_create_i
        - array_free_i
        - array_get_i
        - array_sort_i
        - dbox_file_seek
        - dbox_file_set_corrupted
        - dbox_file_try_lock
        - dbox_file_unlink
        - dbox_file_unlock
        - i_panic
        - i_stream_seek
        - mail_storage_set_critical
        - mdbox_file_purge_check_refcounts
        - mdbox_map_append_commit
        - mdbox_map_append_flush
        - mdbox_map_append_free
        - mdbox_map_append_move
        - mdbox_map_atomic_begin
        - mdbox_map_atomic_finish
        - mdbox_map_file_msg_offset_cmp
        - mdbox_map_get_file_msgs
        - mdbox_map_remove_file_id
        - mdbox_metadata_get_extrefs
        - mdbox_purge_attachments
        - mdbox_purge_save_msg
        - pool_alloconly_create
        - pool_unref
        - seq_range_array_add
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:306,2'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:307,2'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:309,13'
          Dst:             dbox_file_try_lock
        - Src:             'mdbox-purge.c:314,6'
          Dst:             stat
        - Src:             'mdbox-purge.c:315,3'
          Dst:             dbox_file_unlock
        - Src:             'mdbox-purge.c:316,7'
          Dst:             __errno_location
        - Src:             'mdbox-purge.c:319,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-purge.c:326,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:327,6'
          Dst:             mdbox_map_get_file_msgs
        - Src:             'mdbox-purge.c:329,3'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:330,3'
          Dst:             dbox_file_unlock
        - Src:             'mdbox-purge.c:334,2'
          Dst:             array_sort_i
        - Src:             'mdbox-purge.c:334,2'
          Dst:             mdbox_map_file_msg_offset_cmp
        - Src:             'mdbox-purge.c:336,18'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-purge.c:337,16'
          Dst:             mdbox_map_atomic_begin
        - Src:             'mdbox-purge.c:338,9'
          Dst:             array_get_i
        - Src:             'mdbox-purge.c:339,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:340,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:341,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:344,14'
          Dst:             dbox_file_seek
        - Src:             'mdbox-purge.c:349,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:359,4'
          Dst:             i_stream_seek
        - Src:             'mdbox-purge.c:363,10'
          Dst:             mdbox_metadata_get_extrefs
        - Src:             'mdbox-purge.c:367,4'
          Dst:             seq_range_array_add
        - Src:             'mdbox-purge.c:371,4'
          Dst:             i_stream_seek
        - Src:             'mdbox-purge.c:372,10'
          Dst:             mdbox_purge_save_msg
        - Src:             'mdbox-purge.c:375,4'
          Dst:             array_append_i
        - Src:             'mdbox-purge.c:381,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-purge.c:388,7'
          Dst:             mdbox_map_append_flush
        - Src:             'mdbox-purge.c:401,9'
          Dst:             mdbox_file_purge_check_refcounts
        - Src:             'mdbox-purge.c:403,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:412,7'
          Dst:             mdbox_map_append_move
        - Src:             'mdbox-purge.c:414,7'
          Dst:             mdbox_map_append_commit
        - Src:             'mdbox-purge.c:420,3'
          Dst:             mdbox_map_append_free
        - Src:             'mdbox-purge.c:421,8'
          Dst:             mdbox_map_atomic_finish
        - Src:             'mdbox-purge.c:426,9'
          Dst:             dbox_file_unlink
        - Src:             'mdbox-purge.c:427,7'
          Dst:             mdbox_map_remove_file_id
        - Src:             'mdbox-purge.c:430,3'
          Dst:             dbox_file_unlock
        - Src:             'mdbox-purge.c:432,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:433,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:435,8'
          Dst:             mdbox_purge_attachments
        - Src:             'mdbox-purge.c:436,2'
          Dst:             array_free_i
        - Src:             'mdbox-purge.c:437,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    7
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mdbox_altmove_add_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          261
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_i
        - array_is_created_i
        - array_sort_i
        - hash_table_count
        - hash_table_insert
        - hash_table_update
        - mdbox_map_lookup
        - mdbox_map_lookup_full
        - seq_range_array_add
        - seq_range_exists
        - uint32_t_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:580,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-purge.c:581,3'
          Dst:             array_sort_i
        - Src:             'mdbox-purge.c:581,3'
          Dst:             uint32_t_cmp
        - Src:             'mdbox-purge.c:582,14'
          Dst:             array_get_i
        - Src:             'mdbox-purge.c:591,8'
          Dst:             mdbox_map_lookup_full
        - Src:             'mdbox-purge.c:602,7'
          Dst:             seq_range_exists
        - Src:             'mdbox-purge.c:605,4'
          Dst:             hash_table_insert
        - Src:             'mdbox-purge.c:608,4'
          Dst:             seq_range_array_add
        - Src:             'mdbox-purge.c:616,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-purge.c:617,14'
          Dst:             array_get_i
        - Src:             'mdbox-purge.c:628,7'
          Dst:             mdbox_map_lookup
        - Src:             'mdbox-purge.c:633,7'
          Dst:             seq_range_exists
        - Src:             'mdbox-purge.c:639,3'
          Dst:             hash_table_update
        - Src:             'mdbox-purge.c:641,3'
          Dst:             seq_range_array_add
        - Src:             'mdbox-purge.c:643,23'
          Dst:             hash_table_count
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_purge_get_primary_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          241
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - closedir
        - mail_storage_set_critical
        - opendir
        - readdir
        - seq_range_array_add
        - str_append
        - str_append_c
        - str_begins
        - str_begins_builtin_success
        - str_len
        - str_to_uint32
        - str_truncate
        - strncmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:507,7'
          Dst:             array_is_created_i
        - Src:             'mdbox-purge.c:508,7'
          Dst:             array_is_created_i
        - Src:             'mdbox-purge.c:514,8'
          Dst:             opendir
        - Src:             'mdbox-purge.c:516,7'
          Dst:             __errno_location
        - Src:             'mdbox-purge.c:520,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-purge.c:525,9'
          Dst:             t_str_new
        - Src:             'mdbox-purge.c:526,2'
          Dst:             str_append
        - Src:             'mdbox-purge.c:527,2'
          Dst:             str_append_c
        - Src:             'mdbox-purge.c:528,12'
          Dst:             str_len
        - Src:             'mdbox-purge.c:530,7'
          Dst:             __errno_location
        - Src:             'mdbox-purge.c:530,23'
          Dst:             readdir
        - Src:             'mdbox-purge.c:531,8'
          Dst:             str_begins
        - Src:             'mdbox-purge.c:531,8'
          Dst:             strncmp
        - Src:             'mdbox-purge.c:531,8'
          Dst:             str_begins_builtin_success
        - Src:             'mdbox-purge.c:533,7'
          Dst:             str_to_uint32
        - Src:             'mdbox-purge.c:536,3'
          Dst:             str_truncate
        - Src:             'mdbox-purge.c:537,3'
          Dst:             str_append
        - Src:             'mdbox-purge.c:538,3'
          Dst:             seq_range_array_add
        - Src:             'mdbox-purge.c:530,46'
          Dst:             __errno_location
        - Src:             'mdbox-purge.c:540,6'
          Dst:             array_count_i
        - Src:             'mdbox-purge.c:542,4'
          Dst:             array_idx_i
        - Src:             'mdbox-purge.c:545,6'
          Dst:             __errno_location
        - Src:             'mdbox-purge.c:546,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-purge.c:550,6'
          Dst:             closedir
        - Src:             'mdbox-purge.c:551,3'
          Dst:             mail_storage_set_critical
    - functionName:    mdbox_purge_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create_direct
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:472,9'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-purge.c:473,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-purge.c:473,8'
          Dst:             p_malloc
        - Src:             'mdbox-purge.c:477,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:478,2'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:479,2'
          Dst:             hash_table_create_direct
    - functionName:    mdbox_purge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          190
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - dbox_file_open
        - dbox_file_unref
        - i_panic
        - mdbox_altmove_add_files
        - mdbox_file_init
        - mdbox_file_purge
        - mdbox_map_get_zero_ref_files
        - mdbox_map_remove_file_id
        - mdbox_purge_alloc
        - mdbox_purge_free
        - mdbox_purge_get_primary_files
        - mdbox_storage_rebuild
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:658,8'
          Dst:             mdbox_purge_alloc
        - Src:             'mdbox-purge.c:659,8'
          Dst:             mdbox_map_get_zero_ref_files
        - Src:             'mdbox-purge.c:661,7'
          Dst:             mdbox_purge_get_primary_files
        - Src:             'mdbox-purge.c:665,8'
          Dst:             mdbox_altmove_add_files
        - Src:             'mdbox-purge.c:670,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mdbox-purge.c:672,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mdbox-purge.c:672,57'
          Dst:             t_push
        - Src:             'mdbox-purge.c:673,10'
          Dst:             mdbox_file_init
        - Src:             'mdbox-purge.c:674,7'
          Dst:             dbox_file_open
        - Src:             'mdbox-purge.c:675,8'
          Dst:             mdbox_file_purge
        - Src:             'mdbox-purge.c:678,8'
          Dst:             mdbox_map_remove_file_id
        - Src:             'mdbox-purge.c:681,3'
          Dst:             dbox_file_unref
        - Src:             'mdbox-purge.c:682,4'
          Dst:             t_pop
        - Src:             'mdbox-purge.c:682,4'
          Dst:             i_panic
        - Src:             'mdbox-purge.c:683,2'
          Dst:             mdbox_purge_free
        - Src:             'mdbox-purge.c:687,9'
          Dst:             mdbox_storage_rebuild
    - functionName:    mdbox_purge_alt_flag_change
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c'
      linkageType:     externalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - mdbox_mail_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-purge.c:455,6'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-purge.c:461,7'
          Dst:             array_is_created_i
        - Src:             'mdbox-purge.c:462,3'
          Dst:             array_create_i
        - Src:             'mdbox-purge.c:463,2'
          Dst:             array_append_i
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mdbox_save_mail_write_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          135
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_file_set_syscall_error
        - dbox_msg_header_fill
        - dbox_save_write_metadata
        - i_panic
        - mail_index_update_ext
        - o_stream_pwrite
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:170,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:175,2'
          Dst:             dbox_save_write_metadata
        - Src:             'mdbox-save.c:179,2'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-save.c:182,2'
          Dst:             dbox_msg_header_fill
        - Src:             'mdbox-save.c:183,6'
          Dst:             o_stream_pwrite
        - Src:             'mdbox-save.c:185,3'
          Dst:             dbox_file_set_syscall_error
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mdbox_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          262
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - dbox_save_add_to_index
        - guid_128_from_string
        - guid_128_is_empty
        - index_copy_cache_fields
        - index_save_context_free
        - mail_index_lookup_ext
        - mail_index_update_ext
        - mail_set_seq_saving
        - mail_storage_copy
        - mdbox_mail_lookup
        - memcmp
        - time_to_uint32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:451,10'
          Dst:             mail_storage_copy
        - Src:             'mdbox-save.c:455,18'
          Dst:             time_to_uint32
        - Src:             'mdbox-save.c:456,6'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-save.c:458,3'
          Dst:             index_save_context_free
        - Src:             'mdbox-save.c:462,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-save.c:464,27'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-save.c:467,10'
          Dst:             mail_storage_copy
        - Src:             'mdbox-save.c:469,7'
          Dst:             guid_128_from_string
        - Src:             'mdbox-save.c:470,7'
          Dst:             memcmp
        - Src:             'mdbox-save.c:473,10'
          Dst:             mail_storage_copy
        - Src:             'mdbox-save.c:477,7'
          Dst:             array_is_created_i
        - Src:             'mdbox-save.c:478,3'
          Dst:             array_create_i
        - Src:             'mdbox-save.c:479,2'
          Dst:             array_append_i
        - Src:             'mdbox-save.c:482,2'
          Dst:             dbox_save_add_to_index
        - Src:             'mdbox-save.c:483,2'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-save.c:486,2'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-save.c:488,2'
          Dst:             index_copy_cache_fields
        - Src:             'mdbox-save.c:490,14'
          Dst:             array_append_space_i
        - Src:             'mdbox-save.c:493,2'
          Dst:             mail_set_seq_saving
        - Src:             'mdbox-save.c:494,2'
          Dst:             index_save_context_free
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mdbox_transaction_save_commit_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - fdatasync_path
        - mail_index_sync_set_commit_result
        - mailbox_set_critical
        - mdbox_map_append_commit
        - mdbox_map_append_free
        - mdbox_map_atomic_finish
        - mdbox_map_atomic_set_failed
        - mdbox_map_transaction_commit
        - mdbox_sync_finish
        - mdbox_transaction_save_rollback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:387,2'
          Dst:             mail_index_sync_set_commit_result
        - Src:             'mdbox-save.c:391,6'
          Dst:             mdbox_sync_finish
        - Src:             'mdbox-save.c:394,8'
          Dst:             mdbox_map_transaction_commit
        - Src:             'mdbox-save.c:395,5'
          Dst:             mdbox_map_atomic_set_failed
        - Src:             'mdbox-save.c:398,7'
          Dst:             mdbox_map_append_commit
        - Src:             'mdbox-save.c:399,4'
          Dst:             mdbox_map_atomic_set_failed
        - Src:             'mdbox-save.c:401,2'
          Dst:             mdbox_map_append_free
        - Src:             'mdbox-save.c:404,8'
          Dst:             mdbox_map_atomic_finish
        - Src:             'mdbox-save.c:407,7'
          Dst:             fdatasync_path
        - Src:             'mdbox-save.c:408,4'
          Dst:             mailbox_set_critical
        - Src:             'mdbox-save.c:413,2'
          Dst:             mdbox_transaction_save_rollback
    - functionName:    mdbox_transaction_save_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          131
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_free_i
        - array_is_created_i
        - mdbox_map_append_free
        - mdbox_map_atomic_finish
        - mdbox_map_transaction_free
        - mdbox_save_cancel
        - mdbox_sync_finish
        - p_free_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:421,3'
          Dst:             mdbox_save_cancel
        - Src:             'mdbox-save.c:423,3'
          Dst:             mdbox_map_append_free
        - Src:             'mdbox-save.c:425,3'
          Dst:             mdbox_map_transaction_free
        - Src:             'mdbox-save.c:427,9'
          Dst:             mdbox_map_atomic_finish
        - Src:             'mdbox-save.c:428,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-save.c:429,3'
          Dst:             array_free_i
        - Src:             'mdbox-save.c:432,9'
          Dst:             mdbox_sync_finish
        - Src:             'mdbox-save.c:434,2'
          Dst:             array_free_i
        - Src:             'mdbox-save.c:435,2'
          Dst:             p_free_internal
    - functionName:    mdbox_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_save_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:242,8'
          Dst:             mdbox_save_finish
    - functionName:    mdbox_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_save_context_free
        - mdbox_save_finish_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:232,8'
          Dst:             mdbox_save_finish_write
        - Src:             'mdbox-save.c:233,2'
          Dst:             index_save_context_free
    - functionName:    mdbox_save_finish_write
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          173
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_modifiable_i
        - dbox_save_end
        - i_panic
        - i_stream_sync
        - i_stream_unref
        - index_storage_save_abort_last
        - mdbox_map_append_abort
        - mdbox_map_append_finish
        - mdbox_save_mail_write_metadata
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:202,2'
          Dst:             dbox_save_end
        - Src:             'mdbox-save.c:204,9'
          Dst:             array_count_i
        - Src:             'mdbox-save.c:204,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mdbox-save.c:205,24'
          Dst:             t_push
        - Src:             'mdbox-save.c:206,7'
          Dst:             mdbox_save_mail_write_metadata
        - Src:             'mdbox-save.c:209,4'
          Dst:             mdbox_map_append_finish
        - Src:             'mdbox-save.c:210,4'
          Dst:             t_pop
        - Src:             'mdbox-save.c:210,4'
          Dst:             i_panic
        - Src:             'mdbox-save.c:215,3'
          Dst:             i_stream_sync
        - Src:             'mdbox-save.c:217,2'
          Dst:             i_stream_unref
        - Src:             'mdbox-save.c:220,3'
          Dst:             index_storage_save_abort_last
        - Src:             'mdbox-save.c:221,3'
          Dst:             mdbox_map_append_abort
        - Src:             'mdbox-save.c:222,3'
          Dst:             array_count_i
        - Src:             'mdbox-save.c:222,3'
          Dst:             array_delete_i
    - functionName:    mdbox_save_set_map_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          168
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_lookup_ext
        - mail_index_update_ext
        - mdbox_update_header
        - time_to_uint32
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:258,2'
          Dst:             mdbox_update_header
        - Src:             'mdbox-save.c:261,10'
          Dst:             array_get_i
        - Src:             'mdbox-save.c:263,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-save.c:272,20'
          Dst:             time_to_uint32_trunc
        - Src:             'mdbox-save.c:274,20'
          Dst:             time_to_uint32
        - Src:             'mdbox-save.c:276,3'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-save.c:279,2'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_transaction_save_commit_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          330
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - array_idx_i
        - array_is_created_i
        - dbox_save_update_header_flags
        - i_panic
        - i_unreached
        - index_pop3_uidl_set_max_uid
        - mail_index_append_finish_uids
        - mail_index_get_header
        - mail_index_sync_set_reason
        - mailbox_set_critical
        - mdbox_map_append_assign_map_uids
        - mdbox_map_append_flush
        - mdbox_map_atomic_lock
        - mdbox_map_transaction_begin
        - mdbox_map_update_refcounts
        - mdbox_save_set_map_uids
        - mdbox_sync_begin
        - mdbox_transaction_save_rollback
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:290,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:293,6'
          Dst:             mdbox_map_append_flush
        - Src:             'mdbox-save.c:294,3'
          Dst:             mdbox_transaction_save_rollback
        - Src:             'mdbox-save.c:299,6'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-save.c:300,3'
          Dst:             mdbox_transaction_save_rollback
        - Src:             'mdbox-save.c:306,6'
          Dst:             mdbox_sync_begin
        - Src:             'mdbox-save.c:311,4'
          Dst:             mailbox_set_critical
        - Src:             'mdbox-save.c:314,3'
          Dst:             mdbox_transaction_save_rollback
        - Src:             'mdbox-save.c:317,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:323,6'
          Dst:             mdbox_map_append_assign_map_uids
        - Src:             'mdbox-save.c:325,3'
          Dst:             mdbox_transaction_save_rollback
        - Src:             'mdbox-save.c:330,2'
          Dst:             dbox_save_update_header_flags
        - Src:             'mdbox-save.c:334,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-save.c:335,2'
          Dst:             mail_index_append_finish_uids
        - Src:             'mdbox-save.c:344,11'
          Dst:             array_idx_i
        - Src:             'mdbox-save.c:347,3'
          Dst:             i_panic
        - Src:             'mdbox-save.c:349,3'
          Dst:             seq_range_array_iter_init
        - Src:             'mdbox-save.c:350,8'
          Dst:             seq_range_array_iter_nth
        - Src:             'mdbox-save.c:351,4'
          Dst:             i_unreached
        - Src:             'mdbox-save.c:352,3'
          Dst:             index_pop3_uidl_set_max_uid
        - Src:             'mdbox-save.c:357,3'
          Dst:             mdbox_save_set_map_uids
        - Src:             'mdbox-save.c:360,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-save.c:361,20'
          Dst:             mdbox_map_transaction_begin
        - Src:             'mdbox-save.c:362,7'
          Dst:             mdbox_map_update_refcounts
        - Src:             'mdbox-save.c:364,4'
          Dst:             mdbox_transaction_save_rollback
        - Src:             'mdbox-save.c:367,3'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-save.c:369,3'
          Dst:             mail_index_sync_set_reason
    - functionName:    mdbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          129
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - dbox_save_begin
        - i_stream_get_size
        - mdbox_map_append_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:136,6'
          Dst:             i_stream_get_size
        - Src:             'mdbox-save.c:141,7'
          Dst:             i_stream_get_size
        - Src:             'mdbox-save.c:144,6'
          Dst:             mdbox_map_append_next
        - Src:             'mdbox-save.c:153,2'
          Dst:             dbox_save_begin
        - Src:             'mdbox-save.c:155,14'
          Dst:             array_append_space_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          144
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - mdbox_map_append_begin
        - mdbox_map_atomic_begin
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:105,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:118,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-save.c:118,8'
          Dst:             p_malloc
        - Src:             'mdbox-save.c:122,16'
          Dst:             mdbox_map_atomic_begin
        - Src:             'mdbox-save.c:123,20'
          Dst:             mdbox_map_append_begin
        - Src:             'mdbox-save.c:124,2'
          Dst:             array_create_i
    - functionName:    mdbox_copy_file_get_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          71
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - mail_index_lookup_ext
        - mdbox_file_init
        - mdbox_map_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:59,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-save.c:62,6'
          Dst:             mdbox_map_lookup
        - Src:             'mdbox-save.c:64,3'
          Dst:             i_unreached
        - Src:             'mdbox-save.c:66,9'
          Dst:             mdbox_file_init
    - functionName:    mdbox_save_file_get_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - dbox_file_append_flush
        - i_panic
        - mdbox_copy_file_get_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-save.c:77,10'
          Dst:             array_get_i
        - Src:             'mdbox-save.c:78,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:79,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:82,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:86,10'
          Dst:             mdbox_copy_file_get_file
        - Src:             'mdbox-save.c:90,2'
          Dst:             i_panic
        - Src:             'mdbox-save.c:91,6'
          Dst:             dbox_file_append_flush
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    rebuild_msg_mailbox_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_sync_commit
        - mail_index_sync_set_reason
        - mailbox_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:655,2'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-storage-rebuild.c:656,6'
          Dst:             mail_index_sync_commit
        - Src:             'mdbox-storage-rebuild.c:658,2'
          Dst:             mailbox_free
    - functionName:    rebuild_restore_msg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         75
      ICount:          483
      EdgeCount:       98
      CyclomaticComplexity: 25
      functionsReached:
        - dbox_file_metadata_get
        - dbox_file_metadata_read
        - dbox_file_open
        - dbox_file_seek
        - dbox_file_unref
        - i_panic
        - mail_index_append
        - mail_index_get_header
        - mail_index_sync_begin
        - mail_index_update_ext
        - mailbox_alloc
        - mailbox_create
        - mailbox_free
        - mailbox_get_last_mail_error
        - mailbox_list_get_vname
        - mailbox_open
        - mailbox_set_index_error
        - mdbox_file_init
        - rebuild_msg_mailbox_commit
        - rebuild_scan_metadata
        - strcmp
        - t_strdup
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:680,9'
          Dst:             mdbox_file_init
        - Src:             'mdbox-storage-rebuild.c:681,8'
          Dst:             dbox_file_open
        - Src:             'mdbox-storage-rebuild.c:683,9'
          Dst:             dbox_file_seek
        - Src:             'mdbox-storage-rebuild.c:684,29'
          Dst:             dbox_file_metadata_read
        - Src:             'mdbox-storage-rebuild.c:685,13'
          Dst:             dbox_file_metadata_get
        - Src:             'mdbox-storage-rebuild.c:688,14'
          Dst:             mailbox_list_get_vname
        - Src:             'mdbox-storage-rebuild.c:689,14'
          Dst:             t_strdup
        - Src:             'mdbox-storage-rebuild.c:691,3'
          Dst:             rebuild_scan_metadata
        - Src:             'mdbox-storage-rebuild.c:693,2'
          Dst:             dbox_file_unref
        - Src:             'mdbox-storage-rebuild.c:709,3'
          Dst:             strcmp
        - Src:             'mdbox-storage-rebuild.c:712,9'
          Dst:             mailbox_alloc
        - Src:             'mdbox-storage-rebuild.c:715,3'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:716,7'
          Dst:             mailbox_open
        - Src:             'mdbox-storage-rebuild.c:719,11'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mdbox-storage-rebuild.c:724,10'
          Dst:             mailbox_create
        - Src:             'mdbox-storage-rebuild.c:725,4'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:729,3'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:733,7'
          Dst:             strcmp
        - Src:             'mdbox-storage-rebuild.c:745,7'
          Dst:             rebuild_msg_mailbox_commit
        - Src:             'mdbox-storage-rebuild.c:749,9'
          Dst:             mail_index_sync_begin
        - Src:             'mdbox-storage-rebuild.c:754,4'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:755,4'
          Dst:             mailbox_set_index_error
        - Src:             'mdbox-storage-rebuild.c:756,4'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:760,9'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage-rebuild.c:767,23'
          Dst:             time_to_uint32
        - Src:             'mdbox-storage-rebuild.c:768,2'
          Dst:             mail_index_append
        - Src:             'mdbox-storage-rebuild.c:769,2'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-storage-rebuild.c:771,2'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-storage-rebuild.c:774,2'
          Dst:             i_panic
    - functionName:    rebuild_scan_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_metadata_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:136,6'
          Dst:             dbox_file_metadata_get
        - Src:             'mdbox-storage-rebuild.c:138,6'
          Dst:             dbox_file_metadata_get
    - functionName:    rebuild_update_refcounts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          216
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - mail_index_get_header
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:819,9'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-storage-rebuild.c:820,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage-rebuild.c:822,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-storage-rebuild.c:825,4'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:829,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-storage-rebuild.c:834,4'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-storage-rebuild.c:843,3'
          Dst:             mail_index_update_ext
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    rebuild_handle_zero_refs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          108
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_modifiable_i
        - rebuild_msg_mailbox_commit
        - rebuild_restore_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:787,9'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-storage-rebuild.c:799,7'
          Dst:             rebuild_restore_msg
        - Src:             'mdbox-storage-rebuild.c:803,7'
          Dst:             rebuild_msg_mailbox_commit
    - functionName:    guid_hash_have_map_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rebuild_lookup_map_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_i
        - mdbox_rebuild_msg_uid_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:395,8'
          Dst:             array_bsearch_i
        - Src:             'mdbox-storage-rebuild.c:395,8'
          Dst:             mdbox_rebuild_msg_uid_cmp
    - functionName:    mdbox_rebuild_msg_uid_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mdbox_rebuild_get_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - mail_index_get_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:496,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mdbox-storage-rebuild.c:499,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    rebuild_mailbox_multi
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          248
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - guid_hash_have_map_uid
        - hash_table_lookup
        - i_memcpy
        - i_panic
        - index_rebuild_index_metadata
        - mail_index_append
        - mail_index_get_header
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mail_index_update_ext
        - rebuild_lookup_map_uid
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:431,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage-rebuild.c:433,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-storage-rebuild.c:439,4'
          Dst:             i_memcpy
        - Src:             'mdbox-storage-rebuild.c:443,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-storage-rebuild.c:450,4'
          Dst:             hash_table_lookup
        - Src:             'mdbox-storage-rebuild.c:456,5'
          Dst:             rebuild_lookup_map_uid
        - Src:             'mdbox-storage-rebuild.c:458,15'
          Dst:             guid_hash_have_map_uid
        - Src:             'mdbox-storage-rebuild.c:470,45'
          Dst:             t_push
        - Src:             'mdbox-storage-rebuild.c:472,4'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:475,4'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-storage-rebuild.c:476,4'
          Dst:             mail_index_append
        - Src:             'mdbox-storage-rebuild.c:477,4'
          Dst:             index_rebuild_index_metadata
        - Src:             'mdbox-storage-rebuild.c:481,4'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-storage-rebuild.c:483,4'
          Dst:             mail_index_update_ext
        - Src:             'mdbox-storage-rebuild.c:485,5'
          Dst:             t_pop
        - Src:             'mdbox-storage-rebuild.c:485,5'
          Dst:             i_panic
    - functionName:    mdbox_header_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_generate
        - guid_128_is_empty
        - i_memcpy
        - mail_index_ext_resize_hdr
        - mail_index_update_header_ext
        - mdbox_map_get_uid_validity
        - mdbox_rebuild_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:510,2'
          Dst:             mdbox_rebuild_get_header
        - Src:             'mdbox-storage-rebuild.c:516,3'
          Dst:             mdbox_rebuild_get_header
        - Src:             'mdbox-storage-rebuild.c:522,6'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage-rebuild.c:523,8'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage-rebuild.c:524,4'
          Dst:             i_memcpy
        - Src:             'mdbox-storage-rebuild.c:527,4'
          Dst:             guid_128_generate
        - Src:             'mdbox-storage-rebuild.c:532,25'
          Dst:             mdbox_map_get_uid_validity
        - Src:             'mdbox-storage-rebuild.c:541,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'mdbox-storage-rebuild.c:544,2'
          Dst:             mail_index_update_header_ext
    - functionName:    rebuild_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          160
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - dbox_get_uidvalidity_next
        - e_error
        - i_panic
        - index_index_rebuild_deinit
        - index_index_rebuild_init
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_set_reason
        - mail_index_unset_fscked
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_get_last_mail_error
        - mailbox_open
        - mailbox_set_index_error
        - mdbox_header_update
        - rebuild_mailbox_multi
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:561,8'
          Dst:             mailbox_alloc
        - Src:             'mdbox-storage-rebuild.c:565,3'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:568,6'
          Dst:             mailbox_open
        - Src:             'mdbox-storage-rebuild.c:569,11'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mdbox-storage-rebuild.c:570,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mdbox-storage-rebuild.c:570,3'
          Dst:             e_error
        - Src:             'mdbox-storage-rebuild.c:572,3'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:580,8'
          Dst:             mail_index_sync_begin
        - Src:             'mdbox-storage-rebuild.c:583,3'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:584,3'
          Dst:             mailbox_set_index_error
        - Src:             'mdbox-storage-rebuild.c:585,3'
          Dst:             mailbox_free
        - Src:             'mdbox-storage-rebuild.c:589,16'
          Dst:             index_index_rebuild_init
        - Src:             'mdbox-storage-rebuild.c:590,2'
          Dst:             mdbox_header_update
        - Src:             'mdbox-storage-rebuild.c:591,2'
          Dst:             rebuild_mailbox_multi
        - Src:             'mdbox-storage-rebuild.c:592,2'
          Dst:             index_index_rebuild_deinit
        - Src:             'mdbox-storage-rebuild.c:592,2'
          Dst:             dbox_get_uidvalidity_next
        - Src:             'mdbox-storage-rebuild.c:593,2'
          Dst:             mail_index_unset_fscked
        - Src:             'mdbox-storage-rebuild.c:595,2'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-storage-rebuild.c:596,6'
          Dst:             mail_index_sync_commit
        - Src:             'mdbox-storage-rebuild.c:597,3'
          Dst:             mailbox_set_index_error
        - Src:             'mdbox-storage-rebuild.c:601,2'
          Dst:             mailbox_free
    - functionName:    rebuild_namespace_mailboxes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          131
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - rebuild_mailbox
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:617,9'
          Dst:             mailbox_list_iter_init
        - Src:             'mdbox-storage-rebuild.c:620,17'
          Dst:             mailbox_list_iter_next
        - Src:             'mdbox-storage-rebuild.c:623,4'
          Dst:             t_push
        - Src:             'mdbox-storage-rebuild.c:624,11'
          Dst:             rebuild_mailbox
        - Src:             'mdbox-storage-rebuild.c:625,6'
          Dst:             t_pop
        - Src:             'mdbox-storage-rebuild.c:625,6'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:632,6'
          Dst:             mailbox_list_iter_deinit
    - functionName:    rebuild_add_missing_map_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          123
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - mail_index_append
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:319,9'
          Dst:             array_get_modifiable_i
        - Src:             'mdbox-storage-rebuild.c:329,3'
          Dst:             mail_index_append
        - Src:             'mdbox-storage-rebuild.c:331,3'
          Dst:             mail_index_update_ext
    - functionName:    mdbox_rebuild_msg_offset_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    rebuild_file_mails
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          353
      EdgeCount:       72
      CyclomaticComplexity: 20
      functionsReached:
        - array_append_i
        - dbox_file_fix
        - dbox_file_get_plaintext_size
        - dbox_file_metadata_get
        - dbox_file_metadata_read
        - dbox_file_seek
        - dbox_file_seek_next
        - dbox_file_seek_rewind
        - dbox_file_set_corrupted
        - e_error
        - guid_128_is_empty
        - hash_table_insert
        - hash_table_lookup
        - i_panic
        - mail_generate_guid_128_hash
        - malloc_multiply_check
        - p_malloc
        - rebuild_scan_metadata
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:153,2'
          Dst:             dbox_file_seek_rewind
        - Src:             'mdbox-storage-rebuild.c:155,16'
          Dst:             dbox_file_seek_next
        - Src:             'mdbox-storage-rebuild.c:157,15'
          Dst:             dbox_file_metadata_read
        - Src:             'mdbox-storage-rebuild.c:170,15'
          Dst:             dbox_file_fix
        - Src:             'mdbox-storage-rebuild.c:179,11'
          Dst:             dbox_file_seek
        - Src:             'mdbox-storage-rebuild.c:187,10'
          Dst:             dbox_file_metadata_get
        - Src:             'mdbox-storage-rebuild.c:189,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'mdbox-storage-rebuild.c:194,3'
          Dst:             rebuild_scan_metadata
        - Src:             'mdbox-storage-rebuild.c:196,9'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-storage-rebuild.c:196,9'
          Dst:             p_malloc
        - Src:             'mdbox-storage-rebuild.c:200,20'
          Dst:             dbox_file_get_plaintext_size
        - Src:             'mdbox-storage-rebuild.c:201,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'mdbox-storage-rebuild.c:202,3'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage-rebuild.c:202,3'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:203,3'
          Dst:             array_append_i
        - Src:             'mdbox-storage-rebuild.c:206,13'
          Dst:             hash_table_lookup
        - Src:             'mdbox-storage-rebuild.c:208,4'
          Dst:             hash_table_insert
        - Src:             'mdbox-storage-rebuild.c:221,4'
          Dst:             e_error
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    rebuild_rename_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - e_error
        - i_unlink
        - link
        - strrchr
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:246,13'
          Dst:             t_strconcat
        - Src:             'mdbox-storage-rebuild.c:248,14'
          Dst:             t_strdup_printf
        - Src:             'mdbox-storage-rebuild.c:252,7'
          Dst:             link
        - Src:             'mdbox-storage-rebuild.c:253,4'
          Dst:             i_unlink
        - Src:             'mdbox-storage-rebuild.c:254,15'
          Dst:             strrchr
        - Src:             'mdbox-storage-rebuild.c:258,11'
          Dst:             __errno_location
        - Src:             'mdbox-storage-rebuild.c:260,2'
          Dst:             e_error
    - functionName:    rebuild_add_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          194
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - dbox_file_open
        - dbox_file_unref
        - e_error
        - e_warning
        - mdbox_file_init
        - rebuild_file_mails
        - rebuild_rename_file
        - seq_range_array_add
        - seq_range_exists
        - str_to_uint32
        - strcmp
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:275,6'
          Dst:             str_to_uint32
        - Src:             'mdbox-storage-rebuild.c:278,9'
          Dst:             strrchr
        - Src:             'mdbox-storage-rebuild.c:279,23'
          Dst:             strcmp
        - Src:             'mdbox-storage-rebuild.c:280,9'
          Dst:             strcmp
        - Src:             'mdbox-storage-rebuild.c:281,4'
          Dst:             e_warning
        - Src:             'mdbox-storage-rebuild.c:287,7'
          Dst:             seq_range_exists
        - Src:             'mdbox-storage-rebuild.c:295,7'
          Dst:             rebuild_rename_file
        - Src:             'mdbox-storage-rebuild.c:298,2'
          Dst:             seq_range_array_add
        - Src:             'mdbox-storage-rebuild.c:300,9'
          Dst:             mdbox_file_init
        - Src:             'mdbox-storage-rebuild.c:301,13'
          Dst:             dbox_file_open
        - Src:             'mdbox-storage-rebuild.c:302,9'
          Dst:             rebuild_file_mails
        - Src:             'mdbox-storage-rebuild.c:304,3'
          Dst:             e_error
        - Src:             'mdbox-storage-rebuild.c:305,2'
          Dst:             dbox_file_unref
    - functionName:    rebuild_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mail_index_update_header_ext
        - rebuild_handle_zero_refs
        - rebuild_update_refcounts
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:853,2'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:855,6'
          Dst:             rebuild_handle_zero_refs
        - Src:             'mdbox-storage-rebuild.c:857,2'
          Dst:             rebuild_update_refcounts
        - Src:             'mdbox-storage-rebuild.c:864,2'
          Dst:             mail_index_update_header_ext
    - functionName:    rebuild_mailboxes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - rebuild_namespace_mailboxes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:644,8'
          Dst:             rebuild_namespace_mailboxes
        - Src:             'mdbox-storage-rebuild.c:649,3'
          Dst:             i_panic
    - functionName:    rebuild_apply_map
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          173
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - array_bsearch_i
        - array_sort_i
        - i_panic
        - mail_index_expunge
        - mail_index_get_header
        - mdbox_map_view_lookup_rec
        - mdbox_rebuild_msg_offset_cmp
        - mdbox_rebuild_msg_uid_cmp
        - rebuild_add_missing_map_uids
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:346,2'
          Dst:             array_sort_i
        - Src:             'mdbox-storage-rebuild.c:346,2'
          Dst:             mdbox_rebuild_msg_offset_cmp
        - Src:             'mdbox-storage-rebuild.c:350,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage-rebuild.c:352,7'
          Dst:             mdbox_map_view_lookup_rec
        - Src:             'mdbox-storage-rebuild.c:358,4'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:367,9'
          Dst:             array_bsearch_i
        - Src:             'mdbox-storage-rebuild.c:367,9'
          Dst:             mdbox_rebuild_msg_offset_cmp
        - Src:             'mdbox-storage-rebuild.c:372,4'
          Dst:             mail_index_expunge
        - Src:             'mdbox-storage-rebuild.c:380,2'
          Dst:             rebuild_add_missing_map_uids
        - Src:             'mdbox-storage-rebuild.c:384,2'
          Dst:             array_sort_i
        - Src:             'mdbox-storage-rebuild.c:384,2'
          Dst:             mdbox_rebuild_msg_uid_cmp
    - functionName:    mdbox_storage_rebuild_scan_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 904
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          183
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - closedir
        - i_panic
        - mail_storage_set_critical
        - opendir
        - readdir
        - rebuild_add_file
        - strncmp
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:878,8'
          Dst:             opendir
        - Src:             'mdbox-storage-rebuild.c:880,14'
          Dst:             __errno_location
        - Src:             'mdbox-storage-rebuild.c:883,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-storage-rebuild.c:887,7'
          Dst:             __errno_location
        - Src:             'mdbox-storage-rebuild.c:887,23'
          Dst:             readdir
        - Src:             'mdbox-storage-rebuild.c:888,7'
          Dst:             strncmp
        - Src:             'mdbox-storage-rebuild.c:889,46'
          Dst:             t_push
        - Src:             'mdbox-storage-rebuild.c:890,10'
          Dst:             rebuild_add_file
        - Src:             'mdbox-storage-rebuild.c:891,5'
          Dst:             t_pop
        - Src:             'mdbox-storage-rebuild.c:891,5'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:887,58'
          Dst:             __errno_location
        - Src:             'mdbox-storage-rebuild.c:893,18'
          Dst:             __errno_location
        - Src:             'mdbox-storage-rebuild.c:894,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-storage-rebuild.c:898,6'
          Dst:             closedir
        - Src:             'mdbox-storage-rebuild.c:899,3'
          Dst:             mail_storage_set_critical
    - functionName:    mdbox_mailbox_is_fscked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_get_header
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:908,8'
          Dst:             mail_index_refresh
        - Src:             'mdbox-storage-rebuild.c:909,33'
          Dst:             mail_index_view_open
        - Src:             'mdbox-storage-rebuild.c:910,40'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage-rebuild.c:912,2'
          Dst:             mail_index_view_close
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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-storage/index/dbox-multi/../../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_storage_rebuild_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash_table_destroy
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:91,2'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:95,2'
          Dst:             hash_table_destroy
        - Src:             'mdbox-storage-rebuild.c:96,2'
          Dst:             pool_unref
        - Src:             'mdbox-storage-rebuild.c:97,2'
          Dst:             array_free_i
        - Src:             'mdbox-storage-rebuild.c:98,2'
          Dst:             array_free_i
        - Src:             'mdbox-storage-rebuild.c:99,2'
          Dst:             p_free_internal
    - functionName:    mdbox_storage_rebuild_scan
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          134
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - e_warning
        - mail_index_fsck
        - mail_storage_set_index_error
        - mdbox_map_atomic_set_failed
        - mdbox_storage_rebuild_scan_dir
        - rebuild_apply_map
        - rebuild_finish
        - rebuild_mailboxes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:974,2'
          Dst:             e_warning
        - Src:             'mdbox-storage-rebuild.c:977,6'
          Dst:             mail_index_fsck
        - Src:             'mdbox-storage-rebuild.c:978,3'
          Dst:             mail_storage_set_index_error
        - Src:             'mdbox-storage-rebuild.c:983,6'
          Dst:             mdbox_storage_rebuild_scan_dir
        - Src:             'mdbox-storage-rebuild.c:987,7'
          Dst:             mdbox_storage_rebuild_scan_dir
        - Src:             'mdbox-storage-rebuild.c:992,2'
          Dst:             rebuild_apply_map
        - Src:             'mdbox-storage-rebuild.c:993,6'
          Dst:             rebuild_mailboxes
        - Src:             'mdbox-storage-rebuild.c:994,6'
          Dst:             rebuild_finish
        - Src:             'mdbox-storage-rebuild.c:995,3'
          Dst:             mdbox_map_atomic_set_failed
    - functionName:    mdbox_storage_rebuild_scan_prepare
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          247
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_index_get_header_ext
        - mdbox_mailbox_is_fscked
        - mdbox_map_atomic_lock
        - mdbox_map_get_rebuild_count
        - mdbox_map_is_fscked
        - mdbox_map_open_or_create
        - mdbox_map_refresh
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:925,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-storage-rebuild.c:930,6'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-storage-rebuild.c:934,23'
          Dst:             mdbox_map_get_rebuild_count
        - Src:             'mdbox-storage-rebuild.c:940,3'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:941,22'
          Dst:             t_strdup_printf
        - Src:             'mdbox-storage-rebuild.c:945,6'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-storage-rebuild.c:946,6'
          Dst:             mdbox_map_is_fscked
        - Src:             'mdbox-storage-rebuild.c:949,4'
          Dst:             mdbox_mailbox_is_fscked
        - Src:             'mdbox-storage-rebuild.c:950,22'
          Dst:             t_strdup_printf
        - Src:             'mdbox-storage-rebuild.c:958,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mdbox-storage-rebuild.c:963,3'
          Dst:             i_memcpy
    - functionName:    mdbox_storage_rebuild_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - guid_128_cmp
        - guid_128_hash
        - hash_table_create
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:73,2'
          Dst:             i_panic
        - Src:             'mdbox-storage-rebuild.c:75,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-storage-rebuild.c:75,8'
          Dst:             p_malloc
        - Src:             'mdbox-storage-rebuild.c:78,14'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-storage-rebuild.c:79,2'
          Dst:             hash_table_create
        - Src:             'mdbox-storage-rebuild.c:79,2'
          Dst:             guid_128_hash
        - Src:             'mdbox-storage-rebuild.c:79,2'
          Dst:             guid_128_cmp
        - Src:             'mdbox-storage-rebuild.c:81,2'
          Dst:             array_create_i
        - Src:             'mdbox-storage-rebuild.c:82,2'
          Dst:             array_create_i
    - functionName:    mdbox_storage_rebuild_in_context
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_verify_alt_storage
        - event_reason_begin
        - event_reason_end
        - mail_storage_set_critical
        - mdbox_map_atomic_set_failed
        - mdbox_storage_rebuild_deinit
        - mdbox_storage_rebuild_init
        - mdbox_storage_rebuild_scan
        - mdbox_storage_rebuild_scan_prepare
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:1011,6'
          Dst:             dbox_verify_alt_storage
        - Src:             'mdbox-storage-rebuild.c:1012,3'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-storage-rebuild.c:1015,3'
          Dst:             mdbox_map_atomic_set_failed
        - Src:             'mdbox-storage-rebuild.c:1019,8'
          Dst:             mdbox_storage_rebuild_init
        - Src:             'mdbox-storage-rebuild.c:1020,13'
          Dst:             mdbox_storage_rebuild_scan_prepare
        - Src:             'mdbox-storage-rebuild.c:1023,33'
          Dst:             event_reason_begin
        - Src:             'mdbox-storage-rebuild.c:1024,9'
          Dst:             mdbox_storage_rebuild_scan
        - Src:             'mdbox-storage-rebuild.c:1025,3'
          Dst:             event_reason_end
        - Src:             'mdbox-storage-rebuild.c:1027,2'
          Dst:             mdbox_storage_rebuild_deinit
        - Src:             'mdbox-storage-rebuild.c:1030,3'
          Dst:             p_free_internal
    - functionName:    mdbox_storage_rebuild
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_reset_fscked
        - mdbox_map_atomic_begin
        - mdbox_map_atomic_finish
        - mdbox_map_atomic_set_success
        - mdbox_map_atomic_unset_fscked
        - mdbox_storage_rebuild_in_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage-rebuild.c:1043,11'
          Dst:             mdbox_map_atomic_begin
        - Src:             'mdbox-storage-rebuild.c:1044,8'
          Dst:             mdbox_storage_rebuild_in_context
        - Src:             'mdbox-storage-rebuild.c:1046,2'
          Dst:             mdbox_map_atomic_set_success
        - Src:             'mdbox-storage-rebuild.c:1047,2'
          Dst:             mdbox_map_atomic_unset_fscked
        - Src:             'mdbox-storage-rebuild.c:1048,8'
          Dst:             mail_index_reset_fscked
        - Src:             'mdbox-storage-rebuild.c:1049,6'
          Dst:             mdbox_map_atomic_finish
    - functionName:    mdbox_mailbox_get_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          151
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - dbox_mailbox_create_indexes
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - mail_index_get_header
        - mdbox_read_header
        - mdbox_write_index_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:414,2'
          Dst:             i_panic
        - Src:             'mdbox-storage.c:421,12'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage.c:423,7'
          Dst:             dbox_mailbox_create_indexes
        - Src:             'mdbox-storage.c:427,6'
          Dst:             mdbox_read_header
        - Src:             'mdbox-storage.c:430,6'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage.c:432,7'
          Dst:             mdbox_write_index_header
        - Src:             'mdbox-storage.c:433,7'
          Dst:             mdbox_read_header
        - Src:             'mdbox-storage.c:437,3'
          Dst:             i_memcpy
    - functionName:    mdbox_read_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - i_panic
        - mail_index_get_header_ext
        - mdbox_set_mailbox_corrupted
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:224,2'
          Dst:             i_panic
        - Src:             'mdbox-storage.c:226,2'
          Dst:             mail_index_get_header_ext
        - Src:             'mdbox-storage.c:230,43'
          Dst:             t_strdup_printf
        - Src:             'mdbox-storage.c:230,3'
          Dst:             mdbox_set_mailbox_corrupted
        - Src:             'mdbox-storage.c:236,3'
          Dst:             i_memcpy
    - functionName:    mdbox_write_index_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          303
      EdgeCount:       68
      CyclomaticComplexity: 20
      functionsReached:
        - dbox_get_uidvalidity_next
        - index_pop3_uidl_set_max_uid
        - mail_index_get_header
        - mail_index_modseq_enable
        - mail_index_modseq_get_highest
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header
        - mail_index_update_highest_modseq
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_set_index_error
        - mdbox_map_open_or_create
        - mdbox_update_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:285,6'
          Dst:             mdbox_map_open_or_create
        - Src:             'mdbox-storage.c:289,15'
          Dst:             mail_index_transaction_begin
        - Src:             'mdbox-storage.c:293,9'
          Dst:             mail_index_view_open
        - Src:             'mdbox-storage.c:294,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-storage.c:300,18'
          Dst:             dbox_get_uidvalidity_next
        - Src:             'mdbox-storage.c:304,3'
          Dst:             mail_index_update_header
        - Src:             'mdbox-storage.c:310,3'
          Dst:             mail_index_update_header
        - Src:             'mdbox-storage.c:318,3'
          Dst:             mail_index_update_header
        - Src:             'mdbox-storage.c:323,6'
          Dst:             mail_index_modseq_get_highest
        - Src:             'mdbox-storage.c:324,3'
          Dst:             mail_index_modseq_enable
        - Src:             'mdbox-storage.c:325,3'
          Dst:             mail_index_update_highest_modseq
        - Src:             'mdbox-storage.c:328,2'
          Dst:             mail_index_view_close
        - Src:             'mdbox-storage.c:333,3'
          Dst:             index_pop3_uidl_set_max_uid
        - Src:             'mdbox-storage.c:336,2'
          Dst:             mdbox_update_header
        - Src:             'mdbox-storage.c:338,7'
          Dst:             mail_index_transaction_commit
        - Src:             'mdbox-storage.c:339,4'
          Dst:             mailbox_set_index_error
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mdbox_update_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_generate
        - guid_128_is_empty
        - i_memcpy
        - mail_index_ext_resize_hdr
        - mail_index_update_header_ext
        - mdbox_map_get_uid_validity
        - mdbox_read_header
        - memcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:248,6'
          Dst:             mdbox_read_header
        - Src:             'mdbox-storage.c:255,25'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage.c:256,3'
          Dst:             i_memcpy
        - Src:             'mdbox-storage.c:258,13'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-storage.c:259,3'
          Dst:             guid_128_generate
        - Src:             'mdbox-storage.c:263,3'
          Dst:             mdbox_map_get_uid_validity
        - Src:             'mdbox-storage.c:265,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'mdbox-storage.c:268,6'
          Dst:             memcmp
        - Src:             'mdbox-storage.c:269,3'
          Dst:             mail_index_update_header_ext
    - functionName:    mdbox_set_mailbox_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_storage_set_corrupted
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:395,2'
          Dst:             mdbox_storage_set_corrupted
    - functionName:    mdbox_storage_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - i_strdup
        - mail_storage_set_critical
        - mdbox_map_get_rebuild_count
        - mdbox_map_open
        - mdbox_map_refresh
        - t_strdup_vprintf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:366,15'
          Dst:             t_strdup_vprintf
        - Src:             'mdbox-storage.c:369,2'
          Dst:             mail_storage_set_critical
        - Src:             'mdbox-storage.c:375,30'
          Dst:             i_strdup
        - Src:             'mdbox-storage.c:378,6'
          Dst:             mdbox_map_open
        - Src:             'mdbox-storage.c:379,6'
          Dst:             mdbox_map_refresh
        - Src:             'mdbox-storage.c:381,4'
          Dst:             mdbox_map_get_rebuild_count
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    mdbox_storage_find_root_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - mail_user_get_home
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:105,6'
          Dst:             mail_user_get_home
        - Src:             'mdbox-storage.c:106,10'
          Dst:             t_strconcat
        - Src:             'mdbox-storage.c:107,7'
          Dst:             i_faccessat2
        - Src:             'mdbox-storage.c:108,4'
          Dst:             event_want_level
        - Src:             'mdbox-storage.c:108,4'
          Dst:             e_debug
        - Src:             'mdbox-storage.c:108,4'
          Dst:             event_send_abort
        - Src:             'mdbox-storage.c:112,3'
          Dst:             event_want_level
        - Src:             'mdbox-storage.c:112,3'
          Dst:             e_debug
        - Src:             'mdbox-storage.c:112,3'
          Dst:             event_send_abort
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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-storage/index/dbox-multi/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mdbox_get_attachment_path_suffix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 388
      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:    mdbox_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_get_metadata
        - mdbox_mailbox_get_guid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:448,6'
          Dst:             index_mailbox_get_metadata
        - Src:             'mdbox-storage.c:451,7'
          Dst:             mdbox_mailbox_get_guid
    - functionName:    mdbox_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_mailbox_update_common
        - mailbox_open
        - mdbox_write_index_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:461,7'
          Dst:             mailbox_open
        - Src:             'mdbox-storage.c:464,6'
          Dst:             mdbox_write_index_header
        - Src:             'mdbox-storage.c:466,9'
          Dst:             index_storage_mailbox_update_common
    - functionName:    mdbox_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mailbox_close
        - mdbox_storage_rebuild
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:211,9'
          Dst:             mdbox_storage_rebuild
        - Src:             'mdbox-storage.c:215,2'
          Dst:             dbox_mailbox_close
    - functionName:    mdbox_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          79
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:165,9'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-storage.c:166,9'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-storage.c:166,9'
          Dst:             p_malloc
        - Src:             'mdbox-storage.c:173,2'
          Dst:             index_storage_mailbox_alloc
        - Src:             'mdbox-storage.c:175,9'
          Dst:             module_context_get_require
    - functionName:    mdbox_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mailbox_check_existence
        - dbox_mailbox_open
        - mail_index_ext_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:187,6'
          Dst:             dbox_mailbox_check_existence
        - Src:             'mdbox-storage.c:189,6'
          Dst:             dbox_mailbox_open
        - Src:             'mdbox-storage.c:193,3'
          Dst:             mail_index_ext_register
        - Src:             'mdbox-storage.c:197,3'
          Dst:             mail_index_ext_register
        - Src:             'mdbox-storage.c:200,3'
          Dst:             mail_index_ext_register
    - functionName:    mdbox_storage_autodetect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mdbox_storage_find_root_dir
        - stat
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:131,14'
          Dst:             mdbox_storage_find_root_dir
        - Src:             'mdbox-storage.c:133,4'
          Dst:             event_want_level
        - Src:             'mdbox-storage.c:133,4'
          Dst:             e_debug
        - Src:             'mdbox-storage.c:133,4'
          Dst:             event_send_abort
        - Src:             'mdbox-storage.c:139,9'
          Dst:             t_strconcat
        - Src:             'mdbox-storage.c:140,6'
          Dst:             stat
        - Src:             'mdbox-storage.c:141,3'
          Dst:             event_want_level
        - Src:             'mdbox-storage.c:141,3'
          Dst:             e_debug
        - Src:             'mdbox-storage.c:141,3'
          Dst:             event_send_abort
        - Src:             'mdbox-storage.c:146,3'
          Dst:             event_want_level
        - Src:             'mdbox-storage.c:146,3'
          Dst:             e_debug
        - Src:             'mdbox-storage.c:146,3'
          Dst:             event_send_abort
    - functionName:    mdbox_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:34,9'
          Dst:             pool_alloconly_create
        - Src:             'mdbox-storage.c:35,12'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-storage.c:35,12'
          Dst:             p_malloc
    - functionName:    mdbox_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          167
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - dbox_storage_create
        - event_set_append_log_prefix
        - mailbox_list_get_root_forced
        - mdbox_map_init
        - p_strconcat
        - p_strdup
        - settings_get
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:48,6'
          Dst:             settings_get
        - Src:             'mdbox-storage.c:60,3'
          Dst:             p_strdup
        - Src:             'mdbox-storage.c:62,8'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mdbox-storage.c:63,25'
          Dst:             p_strconcat
        - Src:             'mdbox-storage.c:66,30'
          Dst:             p_strconcat
        - Src:             'mdbox-storage.c:71,47'
          Dst:             t_strdup_printf
        - Src:             'mdbox-storage.c:71,2'
          Dst:             event_set_append_log_prefix
        - Src:             'mdbox-storage.c:74,2'
          Dst:             array_create_i
        - Src:             'mdbox-storage.c:76,17'
          Dst:             mdbox_map_init
        - Src:             'mdbox-storage.c:77,9'
          Dst:             dbox_storage_create
    - functionName:    mdbox_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
        - dbox_storage_destroy
        - mdbox_files_free
        - mdbox_map_deinit
        - p_free_internal
        - pool_unref
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:84,2'
          Dst:             mdbox_files_free
        - Src:             'mdbox-storage.c:85,2'
          Dst:             mdbox_map_deinit
        - Src:             'mdbox-storage.c:86,2'
          Dst:             timeout_remove
        - Src:             'mdbox-storage.c:88,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-storage.c:89,3'
          Dst:             array_free_i
        - Src:             'mdbox-storage.c:90,6'
          Dst:             array_is_created_i
        - Src:             'mdbox-storage.c:91,3'
          Dst:             array_free_i
        - Src:             'mdbox-storage.c:92,2'
          Dst:             array_free_i
        - Src:             'mdbox-storage.c:93,2'
          Dst:             p_free_internal
        - Src:             'mdbox-storage.c:94,2'
          Dst:             pool_unref
        - Src:             'mdbox-storage.c:95,2'
          Dst:             dbox_storage_destroy
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_mailbox_create_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_write_index_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:354,8'
          Dst:             mdbox_write_index_header
    - functionName:    mdbox_set_file_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mdbox_storage_set_corrupted
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-storage.c:403,2'
          Dst:             mdbox_storage_set_corrupted
    - functionName:    dbox_sync_verify_expunge_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - guid_128_is_empty
        - guid_128_to_string
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:35,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-sync.c:36,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-sync.c:39,24'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-sync.c:42,6'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-sync.c:43,6'
          Dst:             memcmp
        - Src:             'mdbox-sync.c:46,2'
          Dst:             guid_128_to_string
        - Src:             'mdbox-sync.c:46,2'
          Dst:             guid_128_to_string
        - Src:             'mdbox-sync.c:46,2'
          Dst:             e_error
    - functionName:    mdbox_sync_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_sync_verify_expunge_guid
        - mdbox_mail_lookup
        - mdbox_map_update_refcount
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:59,6'
          Dst:             seq_range_array_add
        - Src:             'mdbox-sync.c:64,8'
          Dst:             dbox_sync_verify_expunge_guid
        - Src:             'mdbox-sync.c:67,6'
          Dst:             mdbox_mail_lookup
        - Src:             'mdbox-sync.c:69,6'
          Dst:             mdbox_map_update_refcount
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    dbox_sync_mark_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - guid_128_is_empty
        - mail_index_expunge
        - mail_index_expunge_guid
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mailbox_sync_notify
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:111,10'
          Dst:             mail_index_transaction_begin
        - Src:             'mdbox-sync.c:112,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mdbox-sync.c:113,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mdbox-sync.c:114,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-sync.c:115,3'
          Dst:             mail_index_lookup_ext
        - Src:             'mdbox-sync.c:117,25'
          Dst:             guid_128_is_empty
        - Src:             'mdbox-sync.c:118,4'
          Dst:             mail_index_expunge
        - Src:             'mdbox-sync.c:120,4'
          Dst:             mail_index_expunge_guid
        - Src:             'mdbox-sync.c:122,6'
          Dst:             mail_index_transaction_commit
        - Src:             'mdbox-sync.c:126,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mdbox-sync.c:127,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mdbox-sync.c:128,3'
          Dst:             mail_index_lookup_uid
        - Src:             'mdbox-sync.c:129,3'
          Dst:             mailbox_sync_notify
    - functionName:    mdbox_sync_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_lookup_seq_range
        - mdbox_sync_expunge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:84,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mdbox-sync.c:92,7'
          Dst:             mdbox_sync_expunge
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
        - mail_index_reset_fscked
        - mdbox_set_mailbox_corrupted
        - mdbox_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:379,6'
          Dst:             mail_index_reset_fscked
        - Src:             'mdbox-sync.c:380,3'
          Dst:             mdbox_set_mailbox_corrupted
        - Src:             'mdbox-sync.c:382,6'
          Dst:             index_mailbox_want_full_sync
        - Src:             'mdbox-sync.c:386,9'
          Dst:             mdbox_sync
        - Src:             'mdbox-sync.c:389,9'
          Dst:             index_mailbox_sync_init
    - functionName:    mdbox_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          247
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mailbox_recent_flags_reset
        - mailbox_set_critical
        - mdbox_map_atomic_begin
        - mdbox_map_atomic_finish
        - mdbox_map_atomic_set_success
        - mdbox_map_is_fscked
        - mdbox_storage_rebuild
        - mdbox_sync
        - mdbox_sync_begin
        - mdbox_sync_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:322,3'
          Dst:             mail_index_get_header
        - Src:             'mdbox-sync.c:333,6'
          Dst:             mdbox_map_is_fscked
        - Src:             'mdbox-sync.c:338,7'
          Dst:             mdbox_storage_rebuild
        - Src:             'mdbox-sync.c:341,3'
          Dst:             mailbox_recent_flags_reset
        - Src:             'mdbox-sync.c:346,11'
          Dst:             mdbox_map_atomic_begin
        - Src:             'mdbox-sync.c:347,8'
          Dst:             mdbox_sync_begin
        - Src:             'mdbox-sync.c:349,3'
          Dst:             i_panic
        - Src:             'mdbox-sync.c:351,4'
          Dst:             mailbox_set_critical
        - Src:             'mdbox-sync.c:359,9'
          Dst:             mdbox_map_atomic_finish
        - Src:             'mdbox-sync.c:360,10'
          Dst:             mdbox_sync
        - Src:             'mdbox-sync.c:364,9'
          Dst:             mdbox_sync_finish
        - Src:             'mdbox-sync.c:366,3'
          Dst:             mdbox_map_atomic_set_success
        - Src:             'mdbox-sync.c:367,6'
          Dst:             mdbox_map_atomic_finish
    - functionName:    mdbox_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          205
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - index_storage_expunging_deinit
        - index_storage_get_sync_flags
        - mail_index_sync_rollback
        - mail_index_sync_set_reason
        - malloc_multiply_check
        - mdbox_map_atomic_is_locked
        - mdbox_sync_index
        - mdbox_sync_try_begin
        - p_free_internal
        - p_malloc
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:244,8'
          Dst:             malloc_multiply_check
        - Src:             'mdbox-sync.c:244,8'
          Dst:             p_malloc
        - Src:             'mdbox-sync.c:249,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'mdbox-sync.c:257,8'
          Dst:             mdbox_sync_try_begin
        - Src:             'mdbox-sync.c:260,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'mdbox-sync.c:261,3'
          Dst:             p_free_internal
        - Src:             'mdbox-sync.c:265,13'
          Dst:             mdbox_sync_index
        - Src:             'mdbox-sync.c:266,3'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-sync.c:269,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mdbox-sync.c:270,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'mdbox-sync.c:271,3'
          Dst:             p_free_internal
        - Src:             'mdbox-sync.c:274,4'
          Dst:             i_panic
        - Src:             'mdbox-sync.c:279,2'
          Dst:             index_storage_expunging_deinit
        - Src:             'mdbox-sync.c:281,7'
          Dst:             mdbox_map_atomic_is_locked
        - Src:             'mdbox-sync.c:286,12'
          Dst:             t_strdup_printf
        - Src:             'mdbox-sync.c:289,2'
          Dst:             mail_index_sync_set_reason
    - functionName:    mdbox_sync_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_sync_commit
        - mail_index_sync_rollback
        - mail_storage_list_index_rebuild_and_set_uncorrupted
        - mailbox_set_index_error
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:304,7'
          Dst:             mail_index_sync_commit
        - Src:             'mdbox-sync.c:305,4'
          Dst:             mailbox_set_index_error
        - Src:             'mdbox-sync.c:309,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mdbox-sync.c:313,9'
          Dst:             mail_storage_list_index_rebuild_and_set_uncorrupted
        - Src:             'mdbox-sync.c:315,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/../../../../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:    mdbox_sync_try_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - index_storage_expunged_sync_begin
        - index_storage_expunging_deinit
        - mail_index_reset_fscked
        - mail_index_sync_has_expunges
        - mail_index_sync_rollback
        - mail_index_sync_set_reason
        - mdbox_map_atomic_is_locked
        - mdbox_map_atomic_lock
        - mdbox_set_mailbox_corrupted
        - mdbox_sync_try_begin
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:205,8'
          Dst:             index_storage_expunged_sync_begin
        - Src:             'mdbox-sync.c:207,6'
          Dst:             mail_index_reset_fscked
        - Src:             'mdbox-sync.c:208,3'
          Dst:             mdbox_set_mailbox_corrupted
        - Src:             'mdbox-sync.c:214,7'
          Dst:             mdbox_map_atomic_is_locked
        - Src:             'mdbox-sync.c:215,6'
          Dst:             mail_index_sync_has_expunges
        - Src:             'mdbox-sync.c:218,3'
          Dst:             mail_index_sync_set_reason
        - Src:             'mdbox-sync.c:219,3'
          Dst:             mail_index_sync_rollback
        - Src:             'mdbox-sync.c:220,3'
          Dst:             index_storage_expunging_deinit
        - Src:             'mdbox-sync.c:222,7'
          Dst:             mdbox_map_atomic_lock
        - Src:             'mdbox-sync.c:224,10'
          Dst:             mdbox_sync_try_begin
    - functionName:    mdbox_sync_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          242
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - array_create_i
        - array_free_i
        - dbox_sync_mark_expunges
        - mail_index_get_header
        - mail_index_lookup_seq_range
        - mail_index_sync_next
        - mailbox_recent_flags_set_seqs
        - mailbox_sync_notify
        - mdbox_mailbox_create_indexes
        - mdbox_map_atomic_is_locked
        - mdbox_map_atomic_set_failed
        - mdbox_map_transaction_begin
        - mdbox_map_transaction_commit
        - mdbox_map_transaction_free
        - mdbox_set_mailbox_corrupted
        - mdbox_sync_rec
        - seq_range_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mdbox-sync.c:143,8'
          Dst:             mail_index_get_header
        - Src:             'mdbox-sync.c:150,8'
          Dst:             mdbox_mailbox_create_indexes
        - Src:             'mdbox-sync.c:154,3'
          Dst:             mdbox_set_mailbox_corrupted
        - Src:             'mdbox-sync.c:159,6'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mdbox-sync.c:161,3'
          Dst:             mailbox_recent_flags_set_seqs
        - Src:             'mdbox-sync.c:166,6'
          Dst:             mdbox_map_atomic_is_locked
        - Src:             'mdbox-sync.c:167,20'
          Dst:             mdbox_map_transaction_begin
        - Src:             'mdbox-sync.c:168,3'
          Dst:             array_create_i
        - Src:             'mdbox-sync.c:170,9'
          Dst:             mail_index_sync_next
        - Src:             'mdbox-sync.c:171,14'
          Dst:             mdbox_sync_rec
        - Src:             'mdbox-sync.c:177,6'
          Dst:             mdbox_map_atomic_is_locked
        - Src:             'mdbox-sync.c:179,10'
          Dst:             mdbox_map_transaction_commit
        - Src:             'mdbox-sync.c:182,10'
          Dst:             dbox_sync_mark_expunges
        - Src:             'mdbox-sync.c:187,4'
          Dst:             mdbox_map_atomic_set_failed
        - Src:             'mdbox-sync.c:188,3'
          Dst:             mdbox_map_transaction_free
        - Src:             'mdbox-sync.c:189,25'
          Dst:             seq_range_count
        - Src:             'mdbox-sync.c:190,3'
          Dst:             array_free_i
        - Src:             'mdbox-sync.c:193,2'
          Dst:             mailbox_sync_notify
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_login_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - mail_storage_set_error
        - mailbox_set_critical
        - str_begins
        - str_begins_builtin_success
        - strncmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'pop3c-storage.c:146,2'
          Branch Sides:    []
      Callsites:
        - Src:             'pop3c-storage.c:151,7'
          Dst:             str_begins
        - Src:             'pop3c-storage.c:151,7'
          Dst:             strncmp
        - Src:             'pop3c-storage.c:151,7'
          Dst:             str_begins_builtin_success
        - Src:             'pop3c-storage.c:152,4'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-storage.c:156,4'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-storage.c:161,3'
          Dst:             mailbox_set_critical
    - functionName:    pop3c_client_create_from_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          156
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - event_want_level
        - mail_user_home_expand
        - mail_user_set_get_temp_prefix
        - pop3c_client_init
        - str_c
        - strcmp
        - t_str_new
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:86,3'
          Dst:             t_strconcat
        - Src:             'pop3c-storage.c:88,8'
          Dst:             t_str_new
        - Src:             'pop3c-storage.c:89,2'
          Dst:             mail_user_set_get_temp_prefix
        - Src:             'pop3c-storage.c:90,32'
          Dst:             str_c
        - Src:             'pop3c-storage.c:92,21'
          Dst:             event_want_level
        - Src:             'pop3c-storage.c:94,3'
          Dst:             mail_user_home_expand
        - Src:             'pop3c-storage.c:99,6'
          Dst:             strcmp
        - Src:             'pop3c-storage.c:101,11'
          Dst:             strcmp
        - Src:             'pop3c-storage.c:105,9'
          Dst:             pop3c_client_init
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    pop3c_storage_is_inconsistent
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_is_inconsistent
        - pop3c_client_is_connected
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:297,9'
          Dst:             index_storage_is_inconsistent
        - Src:             'pop3c-storage.c:298,4'
          Dst:             pop3c_client_is_connected
    - functionName:    pop3c_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_save_context_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:290,2'
          Dst:             index_save_context_free
    - functionName:    pop3c_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_save_context_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:283,2'
          Dst:             index_save_context_free
    - functionName:    pop3c_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop3c_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:271,2'
          Dst:             mail_storage_set_error
    - functionName:    pop3c_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:262,8'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-storage.c:262,8'
          Dst:             p_malloc
    - functionName:    pop3c_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 255
      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:    pop3c_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - index_mailbox_get_metadata
        - mail_generate_guid_128_hash
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:243,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'pop3c-storage.c:247,7'
          Dst:             index_mailbox_get_metadata
    - functionName:    pop3c_mailbox_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_get_status
        - pop3c_client_get_capabilities
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:227,6'
          Dst:             index_storage_get_status
        - Src:             'pop3c-storage.c:230,7'
          Dst:             pop3c_client_get_capabilities
    - functionName:    pop3c_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - guid_128_is_empty
        - index_storage_mailbox_update
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:212,7'
          Dst:             guid_128_is_empty
        - Src:             'pop3c-storage.c:215,3'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-storage.c:218,9'
          Dst:             index_storage_mailbox_update
    - functionName:    pop3c_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:203,2'
          Dst:             mail_storage_set_error
    - functionName:    pop3c_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_close
        - p_free_internal
        - pool_unref
        - pop3c_client_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:191,2'
          Dst:             pool_unref
        - Src:             'pop3c-storage.c:192,2'
          Dst:             p_free_internal
        - Src:             'pop3c-storage.c:193,2'
          Dst:             p_free_internal
        - Src:             'pop3c-storage.c:194,2'
          Dst:             pop3c_client_deinit
        - Src:             'pop3c-storage.c:195,2'
          Dst:             index_storage_mailbox_close
    - functionName:    pop3c_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          83
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_mailbox_open
        - mail_storage_set_error
        - pop3c_client_create_from_set
        - pop3c_client_login
        - pop3c_client_wait_one
        - pop3c_login_callback
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:171,6'
          Dst:             strcmp
        - Src:             'pop3c-storage.c:173,12'
          Dst:             t_strdup_printf
        - Src:             'pop3c-storage.c:172,3'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-storage.c:177,6'
          Dst:             index_storage_mailbox_open
        - Src:             'pop3c-storage.c:180,17'
          Dst:             pop3c_client_create_from_set
        - Src:             'pop3c-storage.c:182,2'
          Dst:             pop3c_client_login
        - Src:             'pop3c-storage.c:182,2'
          Dst:             pop3c_login_callback
        - Src:             'pop3c-storage.c:183,2'
          Dst:             pop3c_client_wait_one
    - functionName:    pop3c_mailbox_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_is_autocreated
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:133,21'
          Dst:             mailbox_is_autocreated
    - functionName:    pop3c_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          71
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:115,9'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-storage.c:116,9'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-storage.c:116,9'
          Dst:             p_malloc
        - Src:             'pop3c-storage.c:125,2'
          Dst:             index_storage_mailbox_alloc
    - functionName:    pop3c_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_destroy
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:67,2'
          Dst:             pool_unref
        - Src:             'pop3c-storage.c:68,2'
          Dst:             index_storage_destroy
    - functionName:    pop3c_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          96
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - event_set_append_log_prefix
        - settings_get
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:44,6'
          Dst:             settings_get
        - Src:             'pop3c-storage.c:56,47'
          Dst:             t_strdup_printf
        - Src:             'pop3c-storage.c:56,2'
          Dst:             event_set_append_log_prefix
    - functionName:    pop3c_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-storage.c:30,9'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-storage.c:31,12'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-storage.c:31,12'
          Dst:             p_malloc
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    pop3c_sync_msg_uidl_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - null_strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:175,9'
          Dst:             null_strcmp
    - functionName:    pop3c_get_remote_msgs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:166,9'
          Dst:             array_append_space_i
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    pop3c_get_local_msgs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_set_i
        - mail_cache_lookup_field
        - p_strdup
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:143,18'
          Dst:             t_str_new
        - Src:             'pop3c-sync.c:149,3'
          Dst:             str_truncate
        - Src:             'pop3c-sync.c:150,7'
          Dst:             mail_cache_lookup_field
        - Src:             'pop3c-sync.c:152,30'
          Dst:             str_c
        - Src:             'pop3c-sync.c:152,15'
          Dst:             p_strdup
        - Src:             'pop3c-sync.c:154,3'
          Dst:             array_idx_set_i
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_mailbox_sync_init
        - pop3c_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:359,8'
          Dst:             pop3c_sync
        - Src:             'pop3c-sync.c:360,9'
          Dst:             index_mailbox_sync_init
    - functionName:    pop3c_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          259
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - bsearch_insert_pos
        - i_panic
        - index_storage_get_sync_flags
        - mail_cache_view_close
        - mail_cache_view_open
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_next
        - mail_index_transaction_open_updated_view
        - mail_index_view_close
        - mail_storage_set_error
        - mailbox_set_index_error
        - pop3c_client_cmd_line
        - pop3c_client_cmd_line_async_nocb
        - pop3c_sync_get_uidls
        - pop3c_sync_messages
        - str_c
        - str_printfa
        - str_truncate
        - t_str_new
        - uint32_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:284,6'
          Dst:             pop3c_sync_get_uidls
        - Src:             'pop3c-sync.c:287,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'pop3c-sync.c:290,8'
          Dst:             mail_index_sync_begin
        - Src:             'pop3c-sync.c:294,4'
          Dst:             mailbox_set_index_error
        - Src:             'pop3c-sync.c:299,16'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'pop3c-sync.c:300,16'
          Dst:             mail_cache_view_open
        - Src:             'pop3c-sync.c:301,3'
          Dst:             pop3c_sync_messages
        - Src:             'pop3c-sync.c:306,8'
          Dst:             t_str_new
        - Src:             'pop3c-sync.c:307,9'
          Dst:             mail_index_sync_next
        - Src:             'pop3c-sync.c:311,8'
          Dst:             bsearch_insert_pos
        - Src:             'pop3c-sync.c:311,8'
          Dst:             uint32_cmp
        - Src:             'pop3c-sync.c:318,4'
          Dst:             i_panic
        - Src:             'pop3c-sync.c:322,4'
          Dst:             str_truncate
        - Src:             'pop3c-sync.c:323,4'
          Dst:             str_printfa
        - Src:             'pop3c-sync.c:324,51'
          Dst:             str_c
        - Src:             'pop3c-sync.c:324,4'
          Dst:             pop3c_client_cmd_line_async_nocb
        - Src:             'pop3c-sync.c:329,6'
          Dst:             mail_index_sync_commit
        - Src:             'pop3c-sync.c:330,3'
          Dst:             mailbox_set_index_error
        - Src:             'pop3c-sync.c:334,3'
          Dst:             mail_cache_view_close
        - Src:             'pop3c-sync.c:335,3'
          Dst:             mail_index_view_close
        - Src:             'pop3c-sync.c:338,7'
          Dst:             pop3c_client_cmd_line
        - Src:             'pop3c-sync.c:340,4'
          Dst:             mail_storage_set_error
    - functionName:    pop3c_sync_get_uidls
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          176
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - i_stream_destroy
        - i_stream_read_next_line
        - mail_storage_set_error
        - mailbox_set_critical
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - pop3c_client_cmd_stream
        - pop3c_client_get_capabilities
        - str_to_uint
        - strchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:32,7'
          Dst:             pop3c_client_get_capabilities
        - Src:             'pop3c-sync.c:34,3'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-sync.c:40,6'
          Dst:             pop3c_client_cmd_stream
        - Src:             'pop3c-sync.c:42,3'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:46,20'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-sync.c:47,2'
          Dst:             array_create_i
        - Src:             'pop3c-sync.c:48,17'
          Dst:             i_stream_read_next_line
        - Src:             'pop3c-sync.c:50,7'
          Dst:             strchr
        - Src:             'pop3c-sync.c:52,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:57,7'
          Dst:             str_to_uint
        - Src:             'pop3c-sync.c:58,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:63,11'
          Dst:             p_strdup
        - Src:             'pop3c-sync.c:64,3'
          Dst:             array_append_i
        - Src:             'pop3c-sync.c:66,2'
          Dst:             i_stream_destroy
        - Src:             'pop3c-sync.c:68,3'
          Dst:             pool_unref
        - Src:             'pop3c-sync.c:73,3'
          Dst:             array_append_space_i
        - Src:             'pop3c-sync.c:75,20'
          Dst:             array_idx_i
    - functionName:    pop3c_sync_messages
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          422
      EdgeCount:       63
      CyclomaticComplexity: 14
      functionsReached:
        - array_create_i
        - array_get_i
        - array_sort_i
        - i_panic
        - mail_cache_add
        - mail_cache_get_transaction
        - mail_index_append
        - mail_index_expunge
        - mail_index_get_header
        - mail_index_lookup_seq_range
        - mail_index_lookup_uid
        - mail_index_update_header
        - mailbox_recent_flags_set_seqs
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
        - pool_alloconly_create
        - pool_unref
        - pop3c_get_local_msgs
        - pop3c_get_remote_msgs
        - pop3c_sync_msg_uidl_cmp
        - strcmp
        - strlen
        - time_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:185,3'
          Dst:             module_context_get_require
        - Src:             'pop3c-sync.c:195,2'
          Dst:             i_panic
        - Src:             'pop3c-sync.c:198,8'
          Dst:             mail_index_get_header
        - Src:             'pop3c-sync.c:200,27'
          Dst:             time_to_uint32
        - Src:             'pop3c-sync.c:201,3'
          Dst:             mail_index_update_header
        - Src:             'pop3c-sync.c:206,9'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-sync.c:207,2'
          Dst:             array_create_i
        - Src:             'pop3c-sync.c:208,2'
          Dst:             pop3c_get_local_msgs
        - Src:             'pop3c-sync.c:210,2'
          Dst:             array_create_i
        - Src:             'pop3c-sync.c:211,2'
          Dst:             pop3c_get_remote_msgs
        - Src:             'pop3c-sync.c:214,2'
          Dst:             array_sort_i
        - Src:             'pop3c-sync.c:214,2'
          Dst:             pop3c_sync_msg_uidl_cmp
        - Src:             'pop3c-sync.c:215,2'
          Dst:             array_sort_i
        - Src:             'pop3c-sync.c:215,2'
          Dst:             pop3c_sync_msg_uidl_cmp
        - Src:             'pop3c-sync.c:220,3'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-sync.c:220,3'
          Dst:             p_malloc
        - Src:             'pop3c-sync.c:221,3'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-sync.c:221,3'
          Dst:             p_malloc
        - Src:             'pop3c-sync.c:222,16'
          Dst:             mail_cache_get_transaction
        - Src:             'pop3c-sync.c:224,9'
          Dst:             array_get_i
        - Src:             'pop3c-sync.c:225,9'
          Dst:             array_get_i
        - Src:             'pop3c-sync.c:238,10'
          Dst:             strcmp
        - Src:             'pop3c-sync.c:242,4'
          Dst:             mail_index_expunge
        - Src:             'pop3c-sync.c:246,4'
          Dst:             i_panic
        - Src:             'pop3c-sync.c:248,4'
          Dst:             mail_index_append
        - Src:             'pop3c-sync.c:251,12'
          Dst:             strlen
        - Src:             'pop3c-sync.c:249,4'
          Dst:             mail_cache_add
        - Src:             'pop3c-sync.c:255,4'
          Dst:             i_panic
        - Src:             'pop3c-sync.c:256,4'
          Dst:             mail_index_lookup_uid
        - Src:             'pop3c-sync.c:264,6'
          Dst:             mail_index_lookup_seq_range
        - Src:             'pop3c-sync.c:266,3'
          Dst:             mailbox_recent_flags_set_seqs
        - Src:             'pop3c-sync.c:267,2'
          Dst:             pool_unref
    - functionName:    uint32_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/sort.h'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    3
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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-storage/index/pop3c/../../../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_sync_get_sizes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          224
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - i_stream_destroy
        - i_stream_read_next_line
        - mailbox_set_critical
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - pop3c_client_cmd_stream
        - pop3c_sync_get_uidls
        - str_to_uint
        - str_to_uoff
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-sync.c:87,2'
          Dst:             i_panic
        - Src:             'pop3c-sync.c:90,7'
          Dst:             pop3c_sync_get_uidls
        - Src:             'pop3c-sync.c:94,21'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-sync.c:94,21'
          Dst:             p_malloc
        - Src:             'pop3c-sync.c:98,6'
          Dst:             pop3c_client_cmd_stream
        - Src:             'pop3c-sync.c:100,3'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:104,20'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-sync.c:104,20'
          Dst:             p_malloc
        - Src:             'pop3c-sync.c:105,17'
          Dst:             i_stream_read_next_line
        - Src:             'pop3c-sync.c:107,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:111,7'
          Dst:             strchr
        - Src:             'pop3c-sync.c:113,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:118,7'
          Dst:             str_to_uint
        - Src:             'pop3c-sync.c:119,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:123,7'
          Dst:             str_to_uoff
        - Src:             'pop3c-sync.c:124,4'
          Dst:             mailbox_set_critical
        - Src:             'pop3c-sync.c:129,2'
          Dst:             i_stream_destroy
        - Src:             'pop3c-sync.c:131,3'
          Dst:             p_free_internal
    - functionName:    raw_mail_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_get_name
        - i_stream_stat
        - mail_metadata_access_start
        - mail_set_critical
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-mail.c:17,7'
          Dst:             mail_metadata_access_start
        - Src:             'raw-mail.c:21,6'
          Dst:             i_stream_stat
        - Src:             'raw-mail.c:23,7'
          Dst:             i_stream_get_name
        - Src:             'raw-mail.c:22,3'
          Dst:             mail_set_critical
    - functionName:    raw_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_get_special
        - mailbox_get_path
      functionUses:    0
      BranchProfiles:
        - Branch String:   'raw-mail.c:102,2'
          Branch Sides:    []
      Callsites:
        - Src:             'raw-mail.c:109,4'
          Dst:             mailbox_get_path
        - Src:             'raw-mail.c:112,10'
          Dst:             index_mail_get_special
    - functionName:    raw_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_create_limit
        - index_mail_init_stream
        - mail_stream_access_start
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-mail.c:85,8'
          Dst:             mail_stream_access_start
        - Src:             'raw-mail.c:90,4'
          Dst:             i_stream_create_limit
        - Src:             'raw-mail.c:93,9'
          Dst:             index_mail_init_stream
    - functionName:    raw_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - raw_mail_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-mail.c:69,7'
          Dst:             raw_mail_stat
    - functionName:    raw_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - raw_mail_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-mail.c:55,7'
          Dst:             raw_mail_stat
    - functionName:    raw_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/raw/raw-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - raw_mail_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'raw-mail.c:41,7'
          Dst:             raw_mail_stat
    - functionName:    sdbox_mailbox_alloc_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - guid_128_generate
        - index_storage_mailbox_alloc_index
        - mail_index_ext_register
        - mail_index_set_ext_init_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:322,6'
          Dst:             index_storage_mailbox_alloc_index
        - Src:             'sdbox-storage.c:326,3'
          Dst:             mail_index_ext_register
        - Src:             'sdbox-storage.c:330,2'
          Dst:             guid_128_generate
        - Src:             'sdbox-storage.c:331,2'
          Dst:             mail_index_set_ext_init_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    sdbox_storage_find_root_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_faccessat2
        - mail_user_get_home
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:67,6'
          Dst:             mail_user_get_home
        - Src:             'sdbox-storage.c:68,10'
          Dst:             t_strconcat
        - Src:             'sdbox-storage.c:69,7'
          Dst:             i_faccessat2
        - Src:             'sdbox-storage.c:70,4'
          Dst:             event_want_level
        - Src:             'sdbox-storage.c:70,4'
          Dst:             e_debug
        - Src:             'sdbox-storage.c:70,4'
          Dst:             event_send_abort
        - Src:             'sdbox-storage.c:74,3'
          Dst:             event_want_level
        - Src:             'sdbox-storage.c:74,3'
          Dst:             e_debug
        - Src:             'sdbox-storage.c:74,3'
          Dst:             event_send_abort
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    sdbox_set_file_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_file_fix
        - mail_storage_set_critical
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:314,2'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-storage.c:315,8'
          Dst:             dbox_file_fix
    - functionName:    sdbox_get_attachment_path_suffix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - guid_128_to_string
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:293,4'
          Dst:             guid_128_to_string
        - Src:             'sdbox-storage.c:292,9'
          Dst:             t_strdup_printf
    - functionName:    sdbox_mailbox_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - index_mailbox_get_metadata
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:427,6'
          Dst:             index_mailbox_get_metadata
        - Src:             'sdbox-storage.c:430,3'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    dbox_mailbox_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_storage_mailbox_update_common
        - mailbox_open
        - sdbox_mailbox_create_indexes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:440,7'
          Dst:             mailbox_open
        - Src:             'sdbox-storage.c:443,6'
          Dst:             sdbox_mailbox_create_indexes
        - Src:             'sdbox-storage.c:445,9'
          Dst:             index_storage_mailbox_update_common
    - functionName:    sdbox_mailbox_create_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          290
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - dbox_get_uidvalidity_next
        - index_pop3_uidl_set_max_uid
        - mail_index_get_header
        - mail_index_modseq_enable
        - mail_index_modseq_get_highest
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_update_header
        - mail_index_update_highest_modseq
        - mailbox_set_index_error
        - sdbox_update_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:230,15'
          Dst:             mail_index_transaction_begin
        - Src:             'sdbox-storage.c:234,8'
          Dst:             mail_index_get_header
        - Src:             'sdbox-storage.c:241,18'
          Dst:             dbox_get_uidvalidity_next
        - Src:             'sdbox-storage.c:245,3'
          Dst:             mail_index_update_header
        - Src:             'sdbox-storage.c:251,3'
          Dst:             mail_index_update_header
        - Src:             'sdbox-storage.c:259,3'
          Dst:             mail_index_update_header
        - Src:             'sdbox-storage.c:264,6'
          Dst:             mail_index_modseq_get_highest
        - Src:             'sdbox-storage.c:266,3'
          Dst:             mail_index_modseq_enable
        - Src:             'sdbox-storage.c:267,3'
          Dst:             mail_index_update_highest_modseq
        - Src:             'sdbox-storage.c:274,3'
          Dst:             index_pop3_uidl_set_max_uid
        - Src:             'sdbox-storage.c:277,2'
          Dst:             sdbox_update_header
        - Src:             'sdbox-storage.c:279,7'
          Dst:             mail_index_transaction_commit
        - Src:             'sdbox-storage.c:280,4'
          Dst:             mailbox_set_index_error
    - functionName:    sdbox_update_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_generate
        - guid_128_is_empty
        - i_memcpy
        - mail_index_ext_resize_hdr
        - mail_index_update_header_ext
        - memcmp
        - sdbox_read_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:194,6'
          Dst:             sdbox_read_header
        - Src:             'sdbox-storage.c:201,25'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:202,3'
          Dst:             i_memcpy
        - Src:             'sdbox-storage.c:204,13'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:205,3'
          Dst:             guid_128_generate
        - Src:             'sdbox-storage.c:209,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'sdbox-storage.c:212,6'
          Dst:             memcmp
        - Src:             'sdbox-storage.c:213,3'
          Dst:             mail_index_update_header_ext
        - Src:             'sdbox-storage.c:216,2'
          Dst:             i_memcpy
    - functionName:    sdbox_read_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          164
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - mail_index_get_header_ext
        - mail_index_set_ext_init_data
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_set_critical
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:156,2'
          Dst:             i_panic
        - Src:             'sdbox-storage.c:158,9'
          Dst:             mail_index_view_open
        - Src:             'sdbox-storage.c:159,2'
          Dst:             mail_index_get_header_ext
        - Src:             'sdbox-storage.c:164,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-storage.c:171,4'
          Dst:             i_memcpy
        - Src:             'sdbox-storage.c:172,7'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:177,4'
          Dst:             mail_index_set_ext_init_data
        - Src:             'sdbox-storage.c:182,2'
          Dst:             mail_index_view_close
    - functionName:    sdbox_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_mailbox_create
        - guid_128_is_empty
        - i_memcpy
        - i_panic
        - mailbox_set_critical
        - sdbox_read_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:403,6'
          Dst:             dbox_mailbox_create
        - Src:             'sdbox-storage.c:405,20'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:409,6'
          Dst:             sdbox_read_header
        - Src:             'sdbox-storage.c:410,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-storage.c:414,2'
          Dst:             i_memcpy
        - Src:             'sdbox-storage.c:416,2'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:416,2'
          Dst:             i_panic
    - functionName:    sdbox_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_mailbox_close
        - dbox_mailbox_close_cleanup
        - sdbox_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:389,9'
          Dst:             sdbox_sync
        - Src:             'sdbox-storage.c:391,2'
          Dst:             dbox_mailbox_close_cleanup
        - Src:             'sdbox-storage.c:392,2'
          Dst:             dbox_mailbox_close
    - functionName:    sdbox_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          171
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - dbox_mailbox_check_existence
        - dbox_mailbox_open
        - guid_128_is_empty
        - i_memcpy
        - sdbox_mailbox_alloc_index
        - sdbox_mailbox_create_indexes
        - sdbox_read_header
        - sdbox_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:343,23'
          Dst:             dbox_mailbox_check_existence
        - Src:             'sdbox-storage.c:346,6'
          Dst:             sdbox_mailbox_alloc_index
        - Src:             'sdbox-storage.c:349,6'
          Dst:             dbox_mailbox_open
        - Src:             'sdbox-storage.c:361,7'
          Dst:             sdbox_sync
        - Src:             'sdbox-storage.c:366,6'
          Dst:             sdbox_read_header
        - Src:             'sdbox-storage.c:368,9'
          Dst:             sdbox_sync
        - Src:             'sdbox-storage.c:369,7'
          Dst:             sdbox_read_header
        - Src:             'sdbox-storage.c:373,6'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-storage.c:375,7'
          Dst:             sdbox_mailbox_create_indexes
        - Src:             'sdbox-storage.c:376,7'
          Dst:             sdbox_read_header
        - Src:             'sdbox-storage.c:379,2'
          Dst:             i_memcpy
    - functionName:    sdbox_mailbox_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          79
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_alloc
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:129,9'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-storage.c:130,9'
          Dst:             malloc_multiply_check
        - Src:             'sdbox-storage.c:130,9'
          Dst:             p_malloc
        - Src:             'sdbox-storage.c:137,2'
          Dst:             index_storage_mailbox_alloc
        - Src:             'sdbox-storage.c:139,9'
          Dst:             module_context_get_require
    - functionName:    sdbox_storage_autodetect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - sdbox_storage_find_root_dir
        - stat
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:93,14'
          Dst:             sdbox_storage_find_root_dir
        - Src:             'sdbox-storage.c:95,4'
          Dst:             event_want_level
        - Src:             'sdbox-storage.c:95,4'
          Dst:             e_debug
        - Src:             'sdbox-storage.c:95,4'
          Dst:             event_send_abort
        - Src:             'sdbox-storage.c:103,9'
          Dst:             t_strconcat
        - Src:             'sdbox-storage.c:104,6'
          Dst:             stat
        - Src:             'sdbox-storage.c:105,3'
          Dst:             event_want_level
        - Src:             'sdbox-storage.c:105,3'
          Dst:             e_debug
        - Src:             'sdbox-storage.c:105,3'
          Dst:             event_send_abort
        - Src:             'sdbox-storage.c:110,3'
          Dst:             event_want_level
        - Src:             'sdbox-storage.c:110,3'
          Dst:             e_debug
        - Src:             'sdbox-storage.c:110,3'
          Dst:             event_send_abort
    - functionName:    sdbox_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_storage_create
        - fs_get_properties
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:46,6'
          Dst:             dbox_storage_create
        - Src:             'sdbox-storage.c:50,11'
          Dst:             fs_get_properties
    - functionName:    sdbox_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:31,9'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-storage.c:32,12'
          Dst:             malloc_multiply_check
        - Src:             'sdbox-storage.c:32,12'
          Dst:             p_malloc
    - functionName:    sdbox_set_mailbox_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_set_critical
        - sdbox_read_header
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-storage.c:303,2'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-storage.c:304,6'
          Dst:             sdbox_read_header
    - functionName:    dbox_sync_file_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_unlink
        - dbox_file_unref
        - mailbox_sync_notify
        - sdbox_file_init
        - sdbox_file_unlink_with_attachments
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:142,9'
          Dst:             sdbox_file_init
        - Src:             'sdbox-sync.c:145,9'
          Dst:             sdbox_file_unlink_with_attachments
        - Src:             'sdbox-sync.c:147,9'
          Dst:             dbox_file_unlink
        - Src:             'sdbox-sync.c:151,3'
          Dst:             mailbox_sync_notify
        - Src:             'sdbox-sync.c:152,2'
          Dst:             dbox_file_unref
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    dbox_sync_file_move_if_needed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - dbox_file_open
        - dbox_file_stat
        - sdbox_file_move
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:24,9'
          Dst:             dbox_file_stat
        - Src:             'sdbox-sync.c:30,7'
          Dst:             dbox_file_open
        - Src:             'sdbox-sync.c:31,10'
          Dst:             sdbox_file_move
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_sync_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - dbox_file_unref
        - dbox_sync_file_move_if_needed
        - mail_index_expunge
        - mail_index_transaction_is_expunged
        - mail_index_update_flags
        - sdbox_file_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'sdbox-sync.c:42,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sdbox-sync.c:44,8'
          Dst:             mail_index_transaction_is_expunged
        - Src:             'sdbox-sync.c:45,4'
          Dst:             mail_index_expunge
        - Src:             'sdbox-sync.c:46,4'
          Dst:             array_append_i
        - Src:             'sdbox-sync.c:56,3'
          Dst:             mail_index_update_flags
        - Src:             'sdbox-sync.c:58,10'
          Dst:             sdbox_file_init
        - Src:             'sdbox-sync.c:59,3'
          Dst:             dbox_sync_file_move_if_needed
        - Src:             'sdbox-sync.c:60,3'
          Dst:             dbox_file_unref
    - functionName:    sdbox_sync_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          142
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - mail_index_lookup_seq_range
        - mail_index_lookup_uid
        - sdbox_sync_file
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:88,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'sdbox-sync.c:95,39'
          Dst:             t_push
        - Src:             'sdbox-sync.c:96,3'
          Dst:             mail_index_lookup_uid
        - Src:             'sdbox-sync.c:97,3'
          Dst:             sdbox_sync_file
        - Src:             'sdbox-sync.c:98,4'
          Dst:             t_pop
        - Src:             'sdbox-sync.c:98,4'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_storage_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - index_mailbox_sync_init
        - index_mailbox_want_full_sync
        - mail_index_reset_fscked
        - sdbox_set_mailbox_corrupted
        - sdbox_sync
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:317,6'
          Dst:             mail_index_reset_fscked
        - Src:             'sdbox-sync.c:318,3'
          Dst:             sdbox_set_mailbox_corrupted
        - Src:             'sdbox-sync.c:319,6'
          Dst:             index_mailbox_want_full_sync
        - Src:             'sdbox-sync.c:323,9'
          Dst:             sdbox_sync
        - Src:             'sdbox-sync.c:326,9'
          Dst:             index_mailbox_sync_init
    - functionName:    sdbox_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sdbox_sync_begin
        - sdbox_sync_finish
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:302,6'
          Dst:             sdbox_sync_begin
        - Src:             'sdbox-sync.c:307,9'
          Dst:             sdbox_sync_finish
    - functionName:    sdbox_sync_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          285
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - array_create_i
        - array_free_i
        - index_storage_expunged_sync_begin
        - index_storage_expunging_deinit
        - index_storage_get_sync_flags
        - mail_index_get_header
        - mail_index_reset_fscked
        - mail_index_sync_rollback
        - mailbox_set_critical
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - sdbox_refresh_header
        - sdbox_set_mailbox_corrupted
        - sdbox_sync_index
        - sdbox_sync_index_rebuild
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:192,3'
          Dst:             mail_index_get_header
        - Src:             'sdbox-sync.c:203,3'
          Dst:             sdbox_refresh_header
        - Src:             'sdbox-sync.c:205,8'
          Dst:             malloc_multiply_check
        - Src:             'sdbox-sync.c:205,8'
          Dst:             p_malloc
        - Src:             'sdbox-sync.c:208,2'
          Dst:             array_create_i
        - Src:             'sdbox-sync.c:210,15'
          Dst:             index_storage_get_sync_flags
        - Src:             'sdbox-sync.c:219,9'
          Dst:             index_storage_expunged_sync_begin
        - Src:             'sdbox-sync.c:222,7'
          Dst:             mail_index_reset_fscked
        - Src:             'sdbox-sync.c:223,4'
          Dst:             sdbox_set_mailbox_corrupted
        - Src:             'sdbox-sync.c:227,4'
          Dst:             array_free_i
        - Src:             'sdbox-sync.c:228,4'
          Dst:             p_free_internal
        - Src:             'sdbox-sync.c:236,15'
          Dst:             sdbox_sync_index
        - Src:             'sdbox-sync.c:244,5'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync.c:250,11'
          Dst:             sdbox_sync_index_rebuild
        - Src:             'sdbox-sync.c:254,3'
          Dst:             mail_index_sync_rollback
        - Src:             'sdbox-sync.c:256,4'
          Dst:             index_storage_expunging_deinit
        - Src:             'sdbox-sync.c:257,4'
          Dst:             array_free_i
        - Src:             'sdbox-sync.c:258,4'
          Dst:             p_free_internal
    - functionName:    sdbox_sync_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          113
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - dbox_sync_expunge_files
        - index_storage_expunging_deinit
        - mail_index_sync_commit
        - mail_index_sync_rollback
        - mail_index_view_close
        - mail_index_view_ref
        - mail_storage_list_index_rebuild_and_set_uncorrupted
        - mailbox_set_index_error
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:276,3'
          Dst:             mail_index_view_ref
        - Src:             'sdbox-sync.c:278,7'
          Dst:             mail_index_sync_commit
        - Src:             'sdbox-sync.c:279,4'
          Dst:             mailbox_set_index_error
        - Src:             'sdbox-sync.c:282,4'
          Dst:             dbox_sync_expunge_files
        - Src:             'sdbox-sync.c:284,3'
          Dst:             mail_index_view_close
        - Src:             'sdbox-sync.c:286,3'
          Dst:             mail_index_sync_rollback
        - Src:             'sdbox-sync.c:290,9'
          Dst:             mail_storage_list_index_rebuild_and_set_uncorrupted
        - Src:             'sdbox-sync.c:292,2'
          Dst:             index_storage_expunging_deinit
        - Src:             'sdbox-sync.c:293,2'
          Dst:             array_free_i
        - Src:             'sdbox-sync.c:294,2'
          Dst:             p_free_internal
    - functionName:    dbox_sync_expunge_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_sync_file_expunge
        - i_memcpy
        - i_panic
        - mailbox_sync_notify
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:162,2'
          Dst:             i_memcpy
        - Src:             'sdbox-sync.c:162,47'
          Dst:             t_push
        - Src:             'sdbox-sync.c:163,3'
          Dst:             dbox_sync_file_expunge
        - Src:             'sdbox-sync.c:164,4'
          Dst:             t_pop
        - Src:             'sdbox-sync.c:164,4'
          Dst:             i_panic
        - Src:             'sdbox-sync.c:165,2'
          Dst:             mailbox_sync_notify
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_refresh_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
        - sdbox_read_header
        - sdbox_refresh_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:177,9'
          Dst:             mail_index_view_open
        - Src:             'sdbox-sync.c:178,8'
          Dst:             sdbox_read_header
        - Src:             'sdbox-sync.c:179,2'
          Dst:             mail_index_view_close
        - Src:             'sdbox-sync.c:182,3'
          Dst:             mail_index_refresh
        - Src:             'sdbox-sync.c:183,10'
          Dst:             sdbox_refresh_header
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_sync_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          110
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_get_header
        - mail_index_lookup_seq_range
        - mail_index_sync_next
        - mailbox_recent_flags_set_seqs
        - sdbox_mailbox_create_indexes
        - sdbox_set_mailbox_corrupted
        - sdbox_sync_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync.c:108,8'
          Dst:             mail_index_get_header
        - Src:             'sdbox-sync.c:115,8'
          Dst:             sdbox_mailbox_create_indexes
        - Src:             'sdbox-sync.c:119,3'
          Dst:             sdbox_set_mailbox_corrupted
        - Src:             'sdbox-sync.c:125,6'
          Dst:             mail_index_lookup_seq_range
        - Src:             'sdbox-sync.c:127,3'
          Dst:             mailbox_recent_flags_set_seqs
        - Src:             'sdbox-sync.c:129,9'
          Dst:             mail_index_sync_next
        - Src:             'sdbox-sync.c:130,3'
          Dst:             sdbox_sync_add
    - functionName:    memchr_nocontrol
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hex2dec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/hex-dec.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hex2dec_case
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/hex-dec.h:27,9'
          Dst:             hex2dec_case
    - functionName:    dbox_file_match_post_magic
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          229
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - i_stream_get_data
        - memchr
        - memchr_nocontrol
        - memcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dbox-file-fix.c:85,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dbox-file-fix.c:75,9'
          Dst:             i_stream_get_data
        - Src:             'dbox-file-fix.c:80,6'
          Dst:             memcmp
        - Src:             'dbox-file-fix.c:115,8'
          Dst:             memchr
        - Src:             'dbox-file-fix.c:117,9'
          Dst:             memchr_nocontrol
    - functionName:    dbox_file_match_pre_magic
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          178
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - hex2dec
        - i_panic
        - i_stream_get_data
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:25,9'
          Dst:             i_stream_get_data
        - Src:             'dbox-file-fix.c:30,2'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:36,6'
          Dst:             memcmp
        - Src:             'dbox-file-fix.c:42,6'
          Dst:             hex2dec
        - Src:             'dbox-file-fix.c:43,6'
          Dst:             memcmp
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    dbox_file_copy_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_read_next_line
        - i_stream_seek
        - o_stream_nsend_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:293,17'
          Dst:             i_stream_read_next_line
        - Src:             'dbox-file-fix.c:300,4'
          Dst:             i_stream_seek
        - Src:             'dbox-file-fix.c:309,3'
          Dst:             o_stream_nsend_str
        - Src:             'dbox-file-fix.c:310,3'
          Dst:             o_stream_nsend_str
    - functionName:    dbox_file_skip_broken_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_get_data
        - i_stream_skip
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:270,9'
          Dst:             i_stream_get_data
        - Src:             'dbox-file-fix.c:275,4'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:281,26'
          Dst:             memcmp
        - Src:             'dbox-file-fix.c:282,3'
          Dst:             i_stream_skip
    - functionName:    dbox_file_find_next_magic
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          394
      EdgeCount:       92
      CyclomaticComplexity: 22
      functionsReached:
        - dbox_file_match_post_magic
        - dbox_file_match_pre_magic
        - dbox_file_set_syscall_error
        - i_panic
        - i_stream_read_bytes
        - i_stream_seek
        - i_stream_skip
        - memchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:154,16'
          Dst:             i_stream_read_bytes
        - Src:             'dbox-file-fix.c:157,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:158,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:163,11'
          Dst:             memchr
        - Src:             'dbox-file-fix.c:165,4'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:173,4'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:175,4'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:181,11'
          Dst:             dbox_file_match_pre_magic
        - Src:             'dbox-file-fix.c:185,5'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:193,11'
          Dst:             dbox_file_match_post_magic
        - Src:             'dbox-file-fix.c:197,5'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:216,3'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:219,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:221,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file-fix.c:227,2'
          Dst:             i_stream_seek
    - functionName:    stream_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_create_limit
        - i_stream_get_error
        - i_stream_unref
        - mail_storage_set_critical
        - o_stream_flush
        - o_stream_get_error
        - o_stream_nsend_istream
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:238,10'
          Dst:             i_stream_create_limit
        - Src:             'dbox-file-fix.c:239,2'
          Dst:             o_stream_nsend_istream
        - Src:             'dbox-file-fix.c:244,4'
          Dst:             i_stream_get_error
        - Src:             'dbox-file-fix.c:242,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:246,13'
          Dst:             o_stream_flush
        - Src:             'dbox-file-fix.c:249,4'
          Dst:             o_stream_get_error
        - Src:             'dbox-file-fix.c:247,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:252,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:258,2'
          Dst:             i_stream_unref
    - functionName:    dbox_file_fix_write_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          492
      EdgeCount:       95
      CyclomaticComplexity: 24
      functionsReached:
        - dbox_file_copy_metadata
        - dbox_file_find_next_magic
        - dbox_file_header_write
        - dbox_file_metadata_skip_header
        - dbox_file_read_mail_header
        - dbox_file_set_syscall_error
        - dbox_file_skip_broken_header
        - dbox_msg_header_fill
        - guid_128_generate
        - guid_128_to_string
        - i_panic
        - i_stream_create_limit
        - i_stream_get_error
        - i_stream_seek
        - i_stream_skip
        - i_stream_unref
        - mail_storage_set_critical
        - message_get_body_size
        - o_stream_flush
        - o_stream_get_error
        - o_stream_nsend
        - o_stream_nsend_str
        - stream_copy
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:327,2'
          Dst:             i_stream_seek
        - Src:             'dbox-file-fix.c:330,7'
          Dst:             stream_copy
        - Src:             'dbox-file-fix.c:334,7'
          Dst:             dbox_file_header_write
        - Src:             'dbox-file-fix.c:335,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file-fix.c:340,16'
          Dst:             dbox_file_find_next_magic
        - Src:             'dbox-file-fix.c:346,4'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:348,10'
          Dst:             dbox_file_read_mail_header
        - Src:             'dbox-file-fix.c:352,5'
          Dst:             dbox_file_skip_broken_header
        - Src:             'dbox-file-fix.c:356,5'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:359,5'
          Dst:             i_stream_skip
        - Src:             'dbox-file-fix.c:362,10'
          Dst:             dbox_file_find_next_magic
        - Src:             'dbox-file-fix.c:368,5'
          Dst:             i_stream_seek
        - Src:             'dbox-file-fix.c:369,9'
          Dst:             stream_copy
        - Src:             'dbox-file-fix.c:375,5'
          Dst:             i_stream_seek
        - Src:             'dbox-file-fix.c:380,12'
          Dst:             dbox_file_find_next_magic
        - Src:             'dbox-file-fix.c:395,4'
          Dst:             dbox_msg_header_fill
        - Src:             'dbox-file-fix.c:396,4'
          Dst:             o_stream_nsend
        - Src:             'dbox-file-fix.c:399,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:400,7'
          Dst:             stream_copy
        - Src:             'dbox-file-fix.c:402,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:405,3'
          Dst:             i_stream_seek
        - Src:             'dbox-file-fix.c:406,16'
          Dst:             i_stream_create_limit
        - Src:             'dbox-file-fix.c:407,9'
          Dst:             message_get_body_size
        - Src:             'dbox-file-fix.c:408,3'
          Dst:             i_stream_unref
        - Src:             'dbox-file-fix.c:412,5'
          Dst:             i_stream_get_error
        - Src:             'dbox-file-fix.c:410,4'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:417,3'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:418,9'
          Dst:             dbox_file_metadata_skip_header
        - Src:             'dbox-file-fix.c:421,3'
          Dst:             o_stream_nsend_str
        - Src:             'dbox-file-fix.c:425,4'
          Dst:             dbox_file_copy_metadata
        - Src:             'dbox-file-fix.c:427,4'
          Dst:             guid_128_generate
        - Src:             'dbox-file-fix.c:430,5'
          Dst:             guid_128_to_string
        - Src:             'dbox-file-fix.c:429,5'
          Dst:             t_strdup_printf
        - Src:             'dbox-file-fix.c:428,4'
          Dst:             o_stream_nsend_str
        - Src:             'dbox-file-fix.c:433,4'
          Dst:             t_strdup_printf
        - Src:             'dbox-file-fix.c:432,3'
          Dst:             o_stream_nsend_str
        - Src:             'dbox-file-fix.c:435,3'
          Dst:             o_stream_nsend_str
        - Src:             'dbox-file-fix.c:439,6'
          Dst:             o_stream_flush
        - Src:             'dbox-file-fix.c:441,39'
          Dst:             o_stream_get_error
        - Src:             'dbox-file-fix.c:440,3'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_file_fix
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c'
      linkageType:     externalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          295
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - close
        - dbox_file_close
        - dbox_file_fix_write_stream
        - dbox_file_open
        - dbox_generate_tmp_filename
        - e_warning
        - i_panic
        - i_unlink
        - link
        - mail_storage_set_critical
        - o_stream_abort
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_unref
        - rename
        - strrchr
        - t_strconcat
        - t_strdup_printf
        - t_strdup_until
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file-fix.c:455,2'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:457,6'
          Dst:             strrchr
        - Src:             'dbox-file-fix.c:458,2'
          Dst:             i_panic
        - Src:             'dbox-file-fix.c:459,8'
          Dst:             t_strdup_until
        - Src:             'dbox-file-fix.c:461,44'
          Dst:             dbox_generate_tmp_filename
        - Src:             'dbox-file-fix.c:461,14'
          Dst:             t_strdup_printf
        - Src:             'dbox-file-fix.c:466,11'
          Dst:             o_stream_create_fd_file
        - Src:             'dbox-file-fix.c:467,2'
          Dst:             o_stream_cork
        - Src:             'dbox-file-fix.c:469,8'
          Dst:             dbox_file_fix_write_stream
        - Src:             'dbox-file-fix.c:472,3'
          Dst:             o_stream_abort
        - Src:             'dbox-file-fix.c:474,2'
          Dst:             o_stream_unref
        - Src:             'dbox-file-fix.c:475,6'
          Dst:             close
        - Src:             'dbox-file-fix.c:476,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:481,7'
          Dst:             unlink
        - Src:             'dbox-file-fix.c:482,4'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:489,16'
          Dst:             t_strconcat
        - Src:             'dbox-file-fix.c:491,6'
          Dst:             link
        - Src:             'dbox-file-fix.c:492,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:496,3'
          Dst:             e_warning
        - Src:             'dbox-file-fix.c:501,3'
          Dst:             dbox_file_close
        - Src:             'dbox-file-fix.c:502,3'
          Dst:             i_unlink
        - Src:             'dbox-file-fix.c:503,3'
          Dst:             i_unlink
        - Src:             'dbox-file-fix.c:506,6'
          Dst:             rename
        - Src:             'dbox-file-fix.c:507,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file-fix.c:514,2'
          Dst:             dbox_file_close
        - Src:             'dbox-file-fix.c:515,6'
          Dst:             dbox_file_open
        - Src:             'dbox-file-fix.c:516,3'
          Dst:             mail_storage_set_critical
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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-storage/index/dbox-common/../../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    dbox_file_parse_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          184
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - dbox_file_set_corrupted
        - str_to_uint_hex
        - str_to_uintmax_hex
        - t_strsplit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dbox-file.c:116,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dbox-file.c:102,7'
          Dst:             __ctype_b_loc
        - Src:             'dbox-file.c:104,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:111,13'
          Dst:             t_strsplit
        - Src:             'dbox-file.c:120,8'
          Dst:             str_to_uint_hex
        - Src:             'dbox-file.c:121,5'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:126,8'
          Dst:             str_to_uintmax_hex
        - Src:             'dbox-file.c:127,5'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:136,3'
          Dst:             dbox_file_set_corrupted
    - functionName:    dbox_file_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
        - t_strdup_vprintf
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:62,3'
          Dst:             t_strdup_vprintf
        - Src:             'dbox-file.c:59,44'
          Dst:             t_strdup_printf
    - functionName:    dbox_file_read_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_parse_header
        - dbox_file_set_corrupted
        - dbox_file_set_syscall_error
        - i_panic
        - i_stream_read_next_line
        - i_stream_seek
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:148,2'
          Dst:             i_stream_seek
        - Src:             'dbox-file.c:149,9'
          Dst:             i_stream_read_next_line
        - Src:             'dbox-file.c:152,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:157,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:161,2'
          Dst:             t_push
        - Src:             'dbox-file.c:162,9'
          Dst:             dbox_file_parse_header
        - Src:             'dbox-file.c:163,4'
          Dst:             t_pop
        - Src:             'dbox-file.c:163,4'
          Dst:             i_panic
    - functionName:    dbox_file_set_syscall_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_storage_set_critical
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:46,2'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_file_open_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          139
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - mail_storage_set_critical
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:177,21'
          Dst:             open
        - Src:             'dbox-file.c:178,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:178,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:178,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:182,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:183,4'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_file_unlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mail_storage_set_critical
        - unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:782,9'
          Dst:             unlink
        - Src:             'dbox-file.c:783,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:784,4'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_msg_header_fill
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dec2hex
        - i_memcpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:768,2'
          Dst:             i_memcpy
        - Src:             'dbox-file.c:771,2'
          Dst:             dec2hex
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    dbox_file_get_plaintext_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_metadata_get
        - i_panic
        - str_to_uintmax_hex
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:750,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:753,10'
          Dst:             dbox_file_metadata_get
        - Src:             'dbox-file.c:755,6'
          Dst:             str_to_uintmax_hex
    - functionName:    dbox_file_metadata_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:737,13'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    dbox_file_metadata_read_at
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          142
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_create_i
        - dbox_file_metadata_skip_header
        - dbox_file_set_corrupted
        - i_stream_get_max_buffer_size
        - i_stream_read_next_line
        - i_stream_seek
        - i_stream_set_max_buffer_size
        - p_clear
        - p_strdup
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:681,3'
          Dst:             p_clear
        - Src:             'dbox-file.c:684,4'
          Dst:             pool_alloconly_create
        - Src:             'dbox-file.c:686,2'
          Dst:             array_create_i
        - Src:             'dbox-file.c:688,2'
          Dst:             i_stream_seek
        - Src:             'dbox-file.c:689,13'
          Dst:             dbox_file_metadata_skip_header
        - Src:             'dbox-file.c:693,13'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'dbox-file.c:695,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'dbox-file.c:696,17'
          Dst:             i_stream_read_next_line
        - Src:             'dbox-file.c:702,10'
          Dst:             p_strdup
        - Src:             'dbox-file.c:703,3'
          Dst:             array_append_i
        - Src:             'dbox-file.c:705,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'dbox-file.c:707,3'
          Dst:             dbox_file_set_corrupted
    - functionName:    dbox_file_metadata_skip_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_set_corrupted
        - dbox_file_set_syscall_error
        - i_memcpy
        - i_stream_read_bytes
        - i_stream_skip
        - memcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:649,8'
          Dst:             i_stream_read_bytes
        - Src:             'dbox-file.c:654,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:658,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:661,2'
          Dst:             i_memcpy
        - Src:             'dbox-file.c:662,6'
          Dst:             memcmp
        - Src:             'dbox-file.c:665,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:669,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    dbox_file_metadata_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_metadata_read_at
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:716,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:723,8'
          Dst:             dbox_file_metadata_read_at
    - functionName:    dbox_file_get_append_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - dbox_file_header_write
        - dbox_file_set_corrupted
        - dbox_file_set_syscall_error
        - fstat
        - o_stream_seek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:607,7'
          Dst:             dbox_file_header_write
        - Src:             'dbox-file.c:608,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:624,7'
          Dst:             fstat
        - Src:             'dbox-file.c:625,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:629,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:633,7'
          Dst:             o_stream_seek
        - Src:             'dbox-file.c:634,4'
          Dst:             dbox_file_set_syscall_error
    - functionName:    dbox_file_header_write
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_send
        - str_data
        - str_len
        - str_printfa
        - t_str_new
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:282,8'
          Dst:             t_str_new
        - Src:             'dbox-file.c:286,33'
          Dst:             time_to_uint32
        - Src:             'dbox-file.c:283,2'
          Dst:             str_printfa
        - Src:             'dbox-file.c:289,27'
          Dst:             str_len
        - Src:             'dbox-file.c:291,31'
          Dst:             str_data
        - Src:             'dbox-file.c:291,46'
          Dst:             str_len
        - Src:             'dbox-file.c:291,9'
          Dst:             o_stream_send
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_file_append_checkpoint
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 587
      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:    dbox_file_append_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          157
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_close
        - dbox_file_set_syscall_error
        - ftruncate
        - i_panic
        - o_stream_abort
        - o_stream_close
        - o_stream_unref
        - p_free_internal
        - unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:523,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:530,7'
          Dst:             unlink
        - Src:             'dbox-file.c:531,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:535,3'
          Dst:             o_stream_close
        - Src:             'dbox-file.c:536,7'
          Dst:             ftruncate
        - Src:             'dbox-file.c:537,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:540,3'
          Dst:             o_stream_abort
        - Src:             'dbox-file.c:541,3'
          Dst:             o_stream_unref
        - Src:             'dbox-file.c:543,2'
          Dst:             p_free_internal
        - Src:             'dbox-file.c:546,3'
          Dst:             dbox_file_close
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_file_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - dbox_file_set_syscall_error
        - dbox_file_unlock
        - i_stream_unref
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:296,2'
          Dst:             dbox_file_unlock
        - Src:             'dbox-file.c:300,3'
          Dst:             i_stream_unref
        - Src:             'dbox-file.c:303,7'
          Dst:             close
        - Src:             'dbox-file.c:304,4'
          Dst:             dbox_file_set_syscall_error
    - functionName:    dbox_file_unlock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - file_unlock
        - i_panic
        - i_stream_sync
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:340,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:344,3'
          Dst:             file_unlock
        - Src:             'dbox-file.c:350,3'
          Dst:             i_stream_sync
    - functionName:    dbox_file_append_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          177
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - dbox_file_set_syscall_error
        - fdatasync
        - ftruncate
        - o_stream_flush
        - o_stream_seek
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:558,6'
          Dst:             o_stream_flush
        - Src:             'dbox-file.c:559,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:564,7'
          Dst:             ftruncate
        - Src:             'dbox-file.c:565,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:568,7'
          Dst:             o_stream_seek
        - Src:             'dbox-file.c:569,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:575,7'
          Dst:             fdatasync
        - Src:             'dbox-file.c:576,4'
          Dst:             dbox_file_set_syscall_error
    - functionName:    dbox_file_append_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_append_flush
        - dbox_file_set_syscall_error
        - ftruncate
        - i_panic
        - o_stream_close
        - o_stream_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:499,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:503,8'
          Dst:             dbox_file_append_flush
        - Src:             'dbox-file.c:505,3'
          Dst:             o_stream_close
        - Src:             'dbox-file.c:506,7'
          Dst:             ftruncate
        - Src:             'dbox-file.c:507,4'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:511,2'
          Dst:             o_stream_unref
        - Src:             'dbox-file.c:513,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_file_append_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_set_finish_via_child
        - o_stream_set_name
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:479,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:483,8'
          Dst:             malloc_multiply_check
        - Src:             'dbox-file.c:483,8'
          Dst:             p_malloc
        - Src:             'dbox-file.c:486,17'
          Dst:             o_stream_create_fd_file
        - Src:             'dbox-file.c:487,3'
          Dst:             o_stream_set_name
        - Src:             'dbox-file.c:488,3'
          Dst:             o_stream_set_finish_via_child
        - Src:             'dbox-file.c:489,3'
          Dst:             o_stream_cork
    - functionName:    dbox_file_seek_next_at_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_metadata_skip_header
        - i_stream_get_max_buffer_size
        - i_stream_read_next_line
        - i_stream_seek
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:419,2'
          Dst:             i_stream_seek
        - Src:             'dbox-file.c:420,13'
          Dst:             dbox_file_metadata_skip_header
        - Src:             'dbox-file.c:424,13'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'dbox-file.c:425,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'dbox-file.c:426,17'
          Dst:             i_stream_read_next_line
        - Src:             'dbox-file.c:432,2'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    dbox_file_seek_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_seek
        - dbox_file_seek_next_at_metadata
        - i_panic
        - i_stream_read_eof
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:447,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:456,14'
          Dst:             dbox_file_seek_next_at_metadata
        - Src:             'dbox-file.c:460,7'
          Dst:             i_stream_read_eof
        - Src:             'dbox-file.c:469,8'
          Dst:             dbox_file_seek
    - functionName:    dbox_file_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_read_mail_header
        - i_panic
        - i_stream_seek
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:395,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:401,3'
          Dst:             i_stream_seek
        - Src:             'dbox-file.c:402,9'
          Dst:             dbox_file_read_mail_header
        - Src:             'dbox-file.c:408,2'
          Dst:             i_stream_seek
    - functionName:    dbox_file_read_mail_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          124
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - dbox_file_set_corrupted
        - dbox_file_set_syscall_error
        - hex2dec
        - i_memcpy
        - i_stream_read_bytes
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:360,8'
          Dst:             i_stream_read_bytes
        - Src:             'dbox-file.c:365,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:370,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'dbox-file.c:373,2'
          Dst:             i_memcpy
        - Src:             'dbox-file.c:374,6'
          Dst:             memcmp
        - Src:             'dbox-file.c:376,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:381,3'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-file.c:385,21'
          Dst:             hex2dec
    - functionName:    hex2dec
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/hex-dec.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hex2dec_case
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/hex-dec.h:27,9'
          Dst:             hex2dec_case
    - functionName:    dbox_file_seek_rewind
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dbox_file_try_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - file_try_lock
        - i_panic
        - mail_storage_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:315,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:321,8'
          Dst:             file_try_lock
        - Src:             'dbox-file.c:324,3'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_file_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fstat
        - mail_metadata_accessed_event
        - mail_storage_set_critical
        - stat
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:247,7'
          Dst:             fstat
        - Src:             'dbox-file.c:248,4'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-file.c:254,2'
          Dst:             mail_metadata_accessed_event
        - Src:             'dbox-file.c:258,9'
          Dst:             stat
        - Src:             'dbox-file.c:259,7'
          Dst:             __errno_location
        - Src:             'dbox-file.c:260,4'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_file_open_primary
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_file_open_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:238,9'
          Dst:             dbox_file_open_full
    - functionName:    dbox_file_open_full
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_open_fd
        - dbox_file_read_header
        - i_panic
        - i_stream_create_fd_autoclose
        - i_stream_set_init_buffer_size
        - i_stream_set_name
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:211,3'
          Dst:             t_push
        - Src:             'dbox-file.c:212,10'
          Dst:             dbox_file_open_fd
        - Src:             'dbox-file.c:213,5'
          Dst:             t_pop
        - Src:             'dbox-file.c:213,5'
          Dst:             i_panic
        - Src:             'dbox-file.c:225,16'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'dbox-file.c:226,2'
          Dst:             i_stream_set_name
        - Src:             'dbox-file.c:227,2'
          Dst:             i_stream_set_init_buffer_size
        - Src:             'dbox-file.c:228,9'
          Dst:             dbox_file_read_header
    - functionName:    dbox_file_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_file_open_full
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:233,9'
          Dst:             dbox_file_open_full
    - functionName:    dbox_file_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:91,2'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_file_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_file_close
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:76,2'
          Dst:             i_panic
        - Src:             'dbox-file.c:78,2'
          Dst:             pool_unref
        - Src:             'dbox-file.c:79,2'
          Dst:             dbox_file_close
        - Src:             'dbox-file.c:80,2'
          Dst:             p_free_internal
        - Src:             'dbox-file.c:81,2'
          Dst:             p_free_internal
        - Src:             'dbox-file.c:82,2'
          Dst:             p_free_internal
    - functionName:    dbox_file_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dbox_generate_tmp_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-file.c:37,9'
          Dst:             t_strdup_printf
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    get_mail_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_attachment_file_get_stream
        - dbox_file_seek
        - i_stream_create_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:271,13'
          Dst:             dbox_file_seek
        - Src:             'dbox-mail.c:276,14'
          Dst:             i_stream_create_limit
        - Src:             'dbox-mail.c:281,9'
          Dst:             dbox_attachment_file_get_stream
    - functionName:    dbox_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          106
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_mail_stream
        - i_stream_unref
        - index_mail_init_stream
        - index_mail_set_read_buffer_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:300,9'
          Dst:             get_mail_stream
        - Src:             'dbox-mail.c:302,4'
          Dst:             i_stream_unref
        - Src:             'dbox-mail.c:306,3'
          Dst:             index_mail_set_read_buffer_size
        - Src:             'dbox-mail.c:309,9'
          Dst:             index_mail_init_stream
    - functionName:    dbox_get_cached_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          201
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - dbox_mail_metadata_get
        - i_memcpy
        - i_panic
        - index_mail_cache_add_idx
        - mail_cache_lookup_field
        - module_context_get_require
        - str_append
        - str_c
        - str_data
        - str_len
        - str_new
        - str_printfa
        - str_to_uint
        - str_truncate
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:172,3'
          Dst:             module_context_get_require
        - Src:             'dbox-mail.c:177,8'
          Dst:             str_new
        - Src:             'dbox-mail.c:178,6'
          Dst:             mail_cache_lookup_field
        - Src:             'dbox-mail.c:182,4'
          Dst:             str_len
        - Src:             'dbox-mail.c:182,4'
          Dst:             i_panic
        - Src:             'dbox-mail.c:183,4'
          Dst:             str_data
        - Src:             'dbox-mail.c:183,4'
          Dst:             i_memcpy
        - Src:             'dbox-mail.c:184,4'
          Dst:             str_truncate
        - Src:             'dbox-mail.c:186,5'
          Dst:             str_printfa
        - Src:             'dbox-mail.c:195,14'
          Dst:             str_c
        - Src:             'dbox-mail.c:199,6'
          Dst:             dbox_mail_metadata_get
        - Src:             'dbox-mail.c:206,14'
          Dst:             strlen
        - Src:             'dbox-mail.c:205,3'
          Dst:             index_mail_cache_add_idx
        - Src:             'dbox-mail.c:208,7'
          Dst:             str_to_uint
        - Src:             'dbox-mail.c:210,3'
          Dst:             index_mail_cache_add_idx
        - Src:             'dbox-mail.c:216,2'
          Dst:             str_truncate
        - Src:             'dbox-mail.c:217,2'
          Dst:             str_append
        - Src:             'dbox-mail.c:218,13'
          Dst:             str_c
    - functionName:    dbox_mail_metadata_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_file_metadata_get
        - dbox_mail_metadata_read
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:71,6'
          Dst:             dbox_mail_metadata_read
        - Src:             'dbox-mail.c:74,13'
          Dst:             dbox_file_metadata_get
    - functionName:    dbox_mail_metadata_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_file_metadata_read
        - dbox_file_seek
        - i_stream_seek
        - i_stream_sync
        - mail_event
        - mail_metadata_accessed_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:50,6'
          Dst:             dbox_file_seek
        - Src:             'dbox-mail.c:52,6'
          Dst:             dbox_file_metadata_read
        - Src:             'dbox-mail.c:57,3'
          Dst:             i_stream_seek
        - Src:             'dbox-mail.c:58,3'
          Dst:             i_stream_sync
        - Src:             'dbox-mail.c:60,32'
          Dst:             mail_event
        - Src:             'dbox-mail.c:60,3'
          Dst:             mail_metadata_accessed_event
    - functionName:    dbox_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_get_cached_metadata
        - index_mail_get_special
        - index_pop3_uidl_can_exist
        - index_pop3_uidl_update_exists
      functionUses:    2
      BranchProfiles:
        - Branch String:   'dbox-mail.c:231,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dbox-mail.c:233,8'
          Dst:             index_pop3_uidl_can_exist
        - Src:             'dbox-mail.c:237,9'
          Dst:             dbox_get_cached_metadata
        - Src:             'dbox-mail.c:240,4'
          Dst:             index_pop3_uidl_update_exists
        - Src:             'dbox-mail.c:245,8'
          Dst:             index_pop3_uidl_can_exist
        - Src:             'dbox-mail.c:251,10'
          Dst:             dbox_get_cached_metadata
        - Src:             'dbox-mail.c:254,10'
          Dst:             dbox_get_cached_metadata
        - Src:             'dbox-mail.c:260,9'
          Dst:             index_mail_get_special
    - functionName:    dbox_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - dbox_file_stat
        - index_mail_get_save_date
        - mail_event
        - mail_set_expunged
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:148,6'
          Dst:             index_mail_get_save_date
        - Src:             'dbox-mail.c:156,6'
          Dst:             mail_event
        - Src:             'dbox-mail.c:155,6'
          Dst:             dbox_file_stat
        - Src:             'dbox-mail.c:157,7'
          Dst:             __errno_location
        - Src:             'dbox-mail.c:158,4'
          Dst:             mail_set_expunged
    - functionName:    dbox_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_mail_metadata_get
        - index_mail_get_received_date
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:125,6'
          Dst:             index_mail_get_received_date
        - Src:             'dbox-mail.c:128,6'
          Dst:             dbox_mail_metadata_get
        - Src:             'dbox-mail.c:133,23'
          Dst:             str_to_uintmax_hex
    - functionName:    dbox_mail_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - dbox_mail_metadata_get
        - index_mail_get_cached_virtual_size
        - index_mail_get_virtual_size
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:102,6'
          Dst:             index_mail_get_cached_virtual_size
        - Src:             'dbox-mail.c:105,6'
          Dst:             dbox_mail_metadata_get
        - Src:             'dbox-mail.c:109,10'
          Dst:             index_mail_get_virtual_size
        - Src:             'dbox-mail.c:111,6'
          Dst:             str_to_uintmax_hex
    - functionName:    dbox_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          64
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_get_plaintext_size
        - dbox_mail_metadata_read
        - index_mail_get_physical_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:84,6'
          Dst:             index_mail_get_physical_size
        - Src:             'dbox-mail.c:87,6'
          Dst:             dbox_mail_metadata_read
        - Src:             'dbox-mail.c:90,24'
          Dst:             dbox_file_get_plaintext_size
    - functionName:    dbox_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_file_unref
        - index_mail_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:34,2'
          Dst:             index_mail_close
        - Src:             'dbox-mail.c:38,3'
          Dst:             dbox_file_unref
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-mail.c:23,9'
          Dst:             pool_alloconly_create
        - Src:             'dbox-mail.c:24,9'
          Dst:             malloc_multiply_check
        - Src:             'dbox-mail.c:24,9'
          Dst:             p_malloc
        - Src:             'dbox-mail.c:26,2'
          Dst:             index_mail_init
    - functionName:    dbox_save_update_header_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_ext_resize_hdr
        - mail_index_get_header_ext
        - mail_index_update_header_ext
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:208,2'
          Dst:             mail_index_get_header_ext
        - Src:             'dbox-save.c:213,3'
          Dst:             mail_index_ext_resize_hdr
        - Src:             'dbox-save.c:223,3'
          Dst:             mail_index_update_header_ext
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    dbox_save_write_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          270
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - dbox_attachment_save_write_metadata
        - guid_128_generate
        - guid_128_to_string
        - i_memcpy
        - i_panic
        - i_unreached
        - mail_generate_guid_128_hash
        - mail_get_virtual_size
        - o_stream_nsend
        - str_append_c
        - str_data
        - str_len
        - str_printfa
        - strchr
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:139,2'
          Dst:             i_memcpy
        - Src:             'dbox-save.c:141,2'
          Dst:             o_stream_nsend
        - Src:             'dbox-save.c:143,8'
          Dst:             t_str_new
        - Src:             'dbox-save.c:149,3'
          Dst:             str_printfa
        - Src:             'dbox-save.c:152,2'
          Dst:             str_printfa
        - Src:             'dbox-save.c:154,6'
          Dst:             mail_get_virtual_size
        - Src:             'dbox-save.c:155,3'
          Dst:             i_unreached
        - Src:             'dbox-save.c:156,2'
          Dst:             str_printfa
        - Src:             'dbox-save.c:159,3'
          Dst:             strchr
        - Src:             'dbox-save.c:159,3'
          Dst:             i_panic
        - Src:             'dbox-save.c:160,3'
          Dst:             str_printfa
        - Src:             'dbox-save.c:167,3'
          Dst:             str_printfa
        - Src:             'dbox-save.c:176,3'
          Dst:             mail_generate_guid_128_hash
        - Src:             'dbox-save.c:178,3'
          Dst:             guid_128_generate
        - Src:             'dbox-save.c:179,10'
          Dst:             guid_128_to_string
        - Src:             'dbox-save.c:181,2'
          Dst:             str_printfa
        - Src:             'dbox-save.c:184,6'
          Dst:             strchr
        - Src:             'dbox-save.c:185,6'
          Dst:             strchr
        - Src:             'dbox-save.c:189,3'
          Dst:             str_printfa
        - Src:             'dbox-save.c:193,2'
          Dst:             dbox_attachment_save_write_metadata
        - Src:             'dbox-save.c:195,2'
          Dst:             str_append_c
        - Src:             'dbox-save.c:196,25'
          Dst:             str_data
        - Src:             'dbox-save.c:196,40'
          Dst:             str_len
        - Src:             'dbox-save.c:196,2'
          Dst:             o_stream_nsend
    - functionName:    dbox_save_end
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          201
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - index_attachment_save_finish
        - index_mail_cache_parse_deinit
        - index_mail_cache_pop3_data
        - mail_set_critical
        - o_stream_destroy
        - o_stream_finish
        - o_stream_flush
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:91,2'
          Dst:             i_panic
        - Src:             'dbox-save.c:94,7'
          Dst:             index_attachment_save_finish
        - Src:             'dbox-save.c:100,9'
          Dst:             o_stream_finish
        - Src:             'dbox-save.c:103,9'
          Dst:             o_stream_flush
        - Src:             'dbox-save.c:108,7'
          Dst:             o_stream_get_name
        - Src:             'dbox-save.c:109,7'
          Dst:             o_stream_get_error
        - Src:             'dbox-save.c:106,3'
          Dst:             mail_set_critical
        - Src:             'dbox-save.c:113,3'
          Dst:             o_stream_ref
        - Src:             'dbox-save.c:114,3'
          Dst:             o_stream_destroy
        - Src:             'dbox-save.c:117,2'
          Dst:             index_mail_cache_parse_deinit
        - Src:             'dbox-save.c:121,3'
          Dst:             index_mail_cache_pop3_data
    - functionName:    dbox_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - index_attachment_save_continue
        - index_storage_save_continue
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:75,10'
          Dst:             index_attachment_save_continue
        - Src:             'dbox-save.c:77,6'
          Dst:             index_storage_save_continue
    - functionName:    dbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          129
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_save_add_to_index
        - i_stream_create_lf
        - i_stream_unref
        - index_attachment_save_begin
        - index_mail_cache_parse_init
        - mail_set_critical
        - mail_set_seq_saving
        - o_stream_cork
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_send
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:42,2'
          Dst:             dbox_save_add_to_index
        - Src:             'dbox-save.c:44,2'
          Dst:             mail_set_seq_saving
        - Src:             'dbox-save.c:46,15'
          Dst:             i_stream_create_lf
        - Src:             'dbox-save.c:47,15'
          Dst:             index_mail_cache_parse_init
        - Src:             'dbox-save.c:48,2'
          Dst:             i_stream_unref
        - Src:             'dbox-save.c:52,2'
          Dst:             o_stream_cork
        - Src:             'dbox-save.c:53,6'
          Dst:             o_stream_send
        - Src:             'dbox-save.c:56,7'
          Dst:             o_stream_get_name
        - Src:             'dbox-save.c:57,7'
          Dst:             o_stream_get_error
        - Src:             'dbox-save.c:55,3'
          Dst:             mail_set_critical
        - Src:             'dbox-save.c:64,2'
          Dst:             index_attachment_save_begin
    - functionName:    dbox_save_add_to_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          88
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_append
        - mail_index_update_flags
        - mail_index_update_keywords
        - mail_index_update_modseq
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-save.c:21,2'
          Dst:             mail_index_append
        - Src:             'dbox-save.c:22,2'
          Dst:             mail_index_update_flags
        - Src:             'dbox-save.c:25,3'
          Dst:             mail_index_update_keywords
        - Src:             'dbox-save.c:29,3'
          Dst:             mail_index_update_modseq
    - functionName:    crc32_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../src/lib/crc32.h'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crc32_data_more
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/crc32.h:11,42'
          Dst:             strlen
        - Src:             '../../../../src/lib/crc32.h:11,9'
          Dst:             crc32_data_more
    - functionName:    cleanup_interval
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crc32_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:165,22'
          Dst:             crc32_str
    - functionName:    dbox_alt_path_has_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - e_error
        - e_warning
        - strcmp
        - t_readlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:28,6'
          Dst:             t_readlink
        - Src:             'dbox-storage.c:29,7'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:31,3'
          Dst:             e_error
        - Src:             'dbox-storage.c:36,3'
          Dst:             e_warning
        - Src:             'dbox-storage.c:40,13'
          Dst:             strcmp
        - Src:             'dbox-storage.c:41,7'
          Dst:             strcmp
        - Src:             'dbox-storage.c:48,3'
          Dst:             e_warning
    - functionName:    dbox_header_have_flag
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_get_header_ext
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:454,2'
          Dst:             mail_index_get_header_ext
    - functionName:    dbox_verify_alt_storage
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_error
        - mailbox_list_get_root_path
        - mailbox_list_mkdir_root
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:427,7'
          Dst:             mailbox_list_get_root_path
        - Src:             'dbox-storage.c:432,6'
          Dst:             stat
        - Src:             'dbox-storage.c:434,6'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:435,3'
          Dst:             e_error
        - Src:             'dbox-storage.c:441,6'
          Dst:             mailbox_list_mkdir_root
    - functionName:    dbox_mailbox_create_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mail_index_sync_begin
        - mail_index_sync_commit
        - mail_index_sync_rollback
        - mailbox_set_index_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:405,8'
          Dst:             mail_index_sync_begin
        - Src:             'dbox-storage.c:407,3'
          Dst:             i_panic
        - Src:             'dbox-storage.c:408,3'
          Dst:             mailbox_set_index_error
        - Src:             'dbox-storage.c:412,6'
          Dst:             mail_index_get_header
        - Src:             'dbox-storage.c:414,4'
          Dst:             mail_index_sync_rollback
        - Src:             'dbox-storage.c:419,9'
          Dst:             mail_index_sync_commit
    - functionName:    dir_is_empty
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - closedir
        - mail_storage_set_critical
        - opendir
        - readdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:331,8'
          Dst:             opendir
        - Src:             'dbox-storage.c:333,7'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:337,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-storage.c:341,14'
          Dst:             readdir
        - Src:             'dbox-storage.c:348,6'
          Dst:             closedir
        - Src:             'dbox-storage.c:349,3'
          Dst:             mail_storage_set_critical
    - functionName:    dbox_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          163
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - dbox_mailbox_create_indexes
        - dir_is_empty
        - index_mailbox_update_last_temp_file_scan
        - index_storage_mailbox_create
        - mail_index_get_header
        - mail_storage_set_error
        - mailbox_get_path_to
        - mailbox_open
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:364,13'
          Dst:             index_storage_mailbox_create
        - Src:             'dbox-storage.c:366,6'
          Dst:             mailbox_open
        - Src:             'dbox-storage.c:368,6'
          Dst:             mail_index_get_header
        - Src:             'dbox-storage.c:370,3'
          Dst:             mail_storage_set_error
        - Src:             'dbox-storage.c:377,8'
          Dst:             mailbox_get_path_to
        - Src:             'dbox-storage.c:378,17'
          Dst:             stat
        - Src:             'dbox-storage.c:379,9'
          Dst:             dir_is_empty
        - Src:             'dbox-storage.c:390,6'
          Dst:             dbox_mailbox_create_indexes
        - Src:             'dbox-storage.c:392,9'
          Dst:             index_mailbox_update_last_temp_file_scan
    - functionName:    dbox_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_storage_mailbox_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:322,2'
          Dst:             index_storage_mailbox_close
    - functionName:    dbox_mailbox_close_cleanup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_mailbox_list_cleanup
        - index_mailbox_update_last_temp_file_scan
        - mail_index_get_header
        - mailbox_get_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:314,3'
          Dst:             mail_index_get_header
        - Src:             'dbox-storage.c:315,46'
          Dst:             mailbox_get_path
        - Src:             'dbox-storage.c:315,6'
          Dst:             dbox_mailbox_list_cleanup
        - Src:             'dbox-storage.c:317,3'
          Dst:             index_mailbox_update_last_temp_file_scan
    - functionName:    dbox_mailbox_list_cleanup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          93
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dbox_cleanup_temp_files
        - e_error
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:289,7'
          Dst:             stat
        - Src:             'dbox-storage.c:293,8'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:294,5'
          Dst:             e_error
        - Src:             'dbox-storage.c:299,6'
          Dst:             dbox_cleanup_temp_files
    - functionName:    dbox_cleanup_temp_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - cleanup_interval
        - e_error
        - stat
        - unlink_old_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:177,20'
          Dst:             cleanup_interval
        - Src:             'dbox-storage.c:193,7'
          Dst:             stat
        - Src:             'dbox-storage.c:194,8'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:195,5'
          Dst:             e_error
        - Src:             'dbox-storage.c:210,8'
          Dst:             unlink_old_files
    - functionName:    dbox_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_storage_mailbox_open
        - mail_index_set_fsync_mode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:271,6'
          Dst:             index_storage_mailbox_open
        - Src:             'dbox-storage.c:273,2'
          Dst:             mail_index_set_fsync_mode
    - functionName:    dbox_mailbox_check_existence
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          231
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - i_panic
        - mail_error_eacces_msg
        - mail_storage_set_error
        - mailbox_get_path
        - mailbox_get_path_to
        - mailbox_set_critical
        - stat
        - t_strconcat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:217,38'
          Dst:             mailbox_get_path
        - Src:             'dbox-storage.c:231,7'
          Dst:             mailbox_get_path_to
        - Src:             'dbox-storage.c:234,3'
          Dst:             i_panic
        - Src:             'dbox-storage.c:235,16'
          Dst:             t_strconcat
        - Src:             'dbox-storage.c:237,9'
          Dst:             stat
        - Src:             'dbox-storage.c:242,9'
          Dst:             stat
        - Src:             'dbox-storage.c:255,13'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:255,32'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:257,4'
          Dst:             t_strdup_printf
        - Src:             'dbox-storage.c:256,3'
          Dst:             mail_storage_set_error
        - Src:             'dbox-storage.c:259,13'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:259,13'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:259,13'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:261,4'
          Dst:             mail_error_eacces_msg
        - Src:             'dbox-storage.c:260,3'
          Dst:             mailbox_set_critical
        - Src:             'dbox-storage.c:264,3'
          Dst:             mailbox_set_critical
    - functionName:    dbox_notify_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_get_path_to
        - mailbox_watch_add
        - mailbox_watch_remove_all
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:150,3'
          Dst:             mailbox_watch_remove_all
        - Src:             'dbox-storage.c:152,7'
          Dst:             mailbox_get_path_to
        - Src:             'dbox-storage.c:155,10'
          Dst:             t_strdup_printf
        - Src:             'dbox-storage.c:156,3'
          Dst:             mailbox_watch_add
    - functionName:    dbox_get_uidvalidity_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_uidvalidity_next
        - t_strconcat
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:140,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'dbox-storage.c:141,9'
          Dst:             t_strconcat
        - Src:             'dbox-storage.c:142,9'
          Dst:             mailbox_uidvalidity_next
    - functionName:    dbox_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_deinit
        - index_storage_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:132,2'
          Dst:             fs_deinit
        - Src:             'dbox-storage.c:133,2'
          Dst:             index_storage_destroy
    - functionName:    dbox_verify_alt_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          115
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dbox_alt_path_has_changed
        - e_error
        - i_unlink_if_exists
        - mailbox_list_get_root_forced
        - mailbox_list_get_root_path
        - mailbox_list_mkdir_root
        - symlink
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:60,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'dbox-storage.c:62,3'
          Dst:             t_strconcat
        - Src:             'dbox-storage.c:63,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'dbox-storage.c:65,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'dbox-storage.c:67,7'
          Dst:             dbox_alt_path_has_changed
        - Src:             'dbox-storage.c:72,2'
          Dst:             i_unlink_if_exists
        - Src:             'dbox-storage.c:74,13'
          Dst:             symlink
        - Src:             'dbox-storage.c:75,18'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:77,8'
          Dst:             mailbox_list_mkdir_root
        - Src:             'dbox-storage.c:80,10'
          Dst:             symlink
        - Src:             'dbox-storage.c:82,18'
          Dst:             __errno_location
        - Src:             'dbox-storage.c:83,4'
          Dst:             e_error
    - functionName:    dbox_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          134
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dbox_verify_alt_path
        - event_create
        - event_unref
        - mail_user_home_expand
        - mailbox_list_init_fs
        - p_strdup
        - settings_event_add_filter_name
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-storage.c:101,9'
          Dst:             mail_user_home_expand
        - Src:             'dbox-storage.c:103,29'
          Dst:             p_strdup
        - Src:             'dbox-storage.c:105,25'
          Dst:             event_create
        - Src:             'dbox-storage.c:106,3'
          Dst:             settings_event_add_filter_name
        - Src:             'dbox-storage.c:107,9'
          Dst:             mailbox_list_init_fs
        - Src:             'dbox-storage.c:110,3'
          Dst:             event_unref
        - Src:             'dbox-storage.c:117,15'
          Dst:             t_strdup_printf
        - Src:             'dbox-storage.c:124,3'
          Dst:             dbox_verify_alt_path
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    fail_mail_storage_create
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail-storage.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - fail_storage_alloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail-storage.c:44,12'
          Dst:             fail_storage_alloc
        - Src:             'fail-mail-storage.c:47,2'
          Dst:             array_create_i
    - functionName:    fail_storage_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail-storage.c:13,9'
          Dst:             pool_alloconly_create
        - Src:             'fail-mail-storage.c:14,12'
          Dst:             malloc_multiply_check
        - Src:             'fail-mail-storage.c:14,12'
          Dst:             p_malloc
    - functionName:    fail_storage_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail-storage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    fail_mail_set_cache_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 224
      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:    fail_mail_update_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_update_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_backend_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_binary_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_header_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_first_header
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_fail_mail_size
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_date
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_get_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 96
      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:    fail_mail_get_keyword_indexes
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - array_create_i
        - malloc_multiply_check
        - pool_datastack_create
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail.c:88,15'
          Dst:             malloc_multiply_check
        - Src:             'fail-mail.c:88,15'
          Dst:             t_malloc0
        - Src:             'fail-mail.c:89,2'
          Dst:             pool_datastack_create
        - Src:             'fail-mail.c:89,2'
          Dst:             array_create_i
        - Src:             'fail-mail.c:90,2'
          Dst:             array_append_space_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    fail_mail_get_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail.c:80,9'
          Dst:             malloc_multiply_check
        - Src:             'fail-mail.c:80,9'
          Dst:             t_malloc0
    - functionName:    fail_mail_get_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_add_temp_wanted_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_precache
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_set_uid_cache_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fail_mail_set_seq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail.c:46,2'
          Dst:             fail_mail_set_seq
    - functionName:    fail_mail_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          48
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fail_mail_free
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail.c:30,2'
          Dst:             pool_unref
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    fail_mailbox_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/fail-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fail-mail.c:16,9'
          Dst:             pool_alloconly_create
        - Src:             'fail-mail.c:17,9'
          Dst:             malloc_multiply_check
        - Src:             'fail-mail.c:17,9'
          Dst:             p_malloc
        - Src:             'fail-mail.c:22,2'
          Dst:             array_create_i
    - functionName:    imapc_storage_attribute_iter_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_storage_attribute_context_create
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:49,3'
          Dst:             imapc_storage_attribute_context_create
        - Src:             'imapc-attribute.c:52,3'
          Dst:             malloc_multiply_check
        - Src:             'imapc-attribute.c:52,3'
          Dst:             p_malloc
    - functionName:    imapc_storage_attribute_context_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:31,16'
          Dst:             pool_alloconly_create
        - Src:             'imapc-attribute.c:33,3'
          Dst:             malloc_multiply_check
        - Src:             'imapc-attribute.c:33,3'
          Dst:             p_malloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_storage_attribute_get_cb
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          193
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - imap_arg_get_astring
        - imap_arg_get_list_full
        - imap_arg_get_nstring
        - p_strdup
        - p_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:77,7'
          Dst:             imap_arg_get_list_full
        - Src:             'imapc-attribute.c:83,17'
          Dst:             p_strdup_printf
        - Src:             'imapc-attribute.c:89,7'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-attribute.c:95,2'
          Dst:             array_create_i
        - Src:             'imapc-attribute.c:98,8'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-attribute.c:103,18'
          Dst:             p_strdup_printf
        - Src:             'imapc-attribute.c:107,9'
          Dst:             p_strdup
        - Src:             'imapc-attribute.c:108,3'
          Dst:             array_append_i
        - Src:             'imapc-attribute.c:112,9'
          Dst:             imap_arg_get_nstring
        - Src:             'imapc-attribute.c:116,18'
          Dst:             p_strdup
        - Src:             'imapc-attribute.c:120,2'
          Dst:             array_append_space_i
        - Src:             'imapc-attribute.c:121,15'
          Dst:             array_idx_i
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imapc_storage_attribute_run_cmd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          129
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_simple_callback
        - imapc_simple_context_init
        - imapc_simple_run
        - imapc_storage_attribute_get_cb
        - imapc_storage_client_register_untagged
        - imapc_storage_client_unregister_untagged
        - mail_storage_set_error
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:172,2'
          Dst:             imapc_simple_context_init
        - Src:             'imapc-attribute.c:173,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-attribute.c:173,8'
          Dst:             imapc_simple_callback
        - Src:             'imapc-attribute.c:174,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-attribute.c:178,3'
          Dst:             imapc_storage_client_register_untagged
        - Src:             'imapc-attribute.c:178,3'
          Dst:             imapc_storage_attribute_get_cb
        - Src:             'imapc-attribute.c:182,2'
          Dst:             imapc_command_send
        - Src:             'imapc-attribute.c:183,2'
          Dst:             imapc_simple_run
        - Src:             'imapc-attribute.c:187,3'
          Dst:             imapc_storage_client_unregister_untagged
        - Src:             'imapc-attribute.c:193,3'
          Dst:             t_strdup_printf
        - Src:             'imapc-attribute.c:192,2'
          Dst:             mail_storage_set_error
    - functionName:    imapc_storage_attribute_build_cmd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          120
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imap_append_astring
        - imap_append_nstring
        - imapc_mailbox_get_remote_name
        - str_append
        - str_append_c
        - str_c
        - str_printfa
        - t_str_new
        - t_str_rtrim
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:131,23'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-attribute.c:132,21'
          Dst:             t_strdup_printf
        - Src:             'imapc-attribute.c:135,9'
          Dst:             t_str_rtrim
        - Src:             'imapc-attribute.c:137,19'
          Dst:             t_str_new
        - Src:             'imapc-attribute.c:138,2'
          Dst:             str_append
        - Src:             'imapc-attribute.c:142,4'
          Dst:             str_append
        - Src:             'imapc-attribute.c:144,4'
          Dst:             str_printfa
        - Src:             'imapc-attribute.c:147,2'
          Dst:             str_append_c
        - Src:             'imapc-attribute.c:148,2'
          Dst:             imap_append_astring
        - Src:             'imapc-attribute.c:150,2'
          Dst:             str_append_c
        - Src:             'imapc-attribute.c:152,3'
          Dst:             imap_append_astring
        - Src:             'imapc-attribute.c:154,3'
          Dst:             str_append_c
        - Src:             'imapc-attribute.c:155,3'
          Dst:             imap_append_astring
        - Src:             'imapc-attribute.c:156,3'
          Dst:             str_append_c
        - Src:             'imapc-attribute.c:157,3'
          Dst:             imap_append_nstring
        - Src:             'imapc-attribute.c:158,3'
          Dst:             str_append_c
        - Src:             'imapc-attribute.c:160,9'
          Dst:             str_c
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    imapc_storage_attribute_iter_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_storage_attribute_context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:61,2'
          Dst:             imapc_storage_attribute_context_destroy
    - functionName:    imapc_storage_attribute_context_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:43,2'
          Dst:             pool_unref
    - functionName:    imapc_storage_attribute_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_storage_attribute_iter_destroy
        - index_storage_attribute_iter_deinit
        - mail_storage_last_error_pop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:362,9'
          Dst:             index_storage_attribute_iter_deinit
        - Src:             'imapc-attribute.c:366,3'
          Dst:             mail_storage_last_error_pop
        - Src:             'imapc-attribute.c:370,2'
          Dst:             imapc_storage_attribute_iter_destroy
    - functionName:    imapc_storage_attribute_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - index_storage_attribute_iter_next
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:336,10'
          Dst:             index_storage_attribute_iter_next
        - Src:             'imapc-attribute.c:348,2'
          Dst:             i_panic
        - Src:             'imapc-attribute.c:349,8'
          Dst:             strchr
    - functionName:    imapc_storage_attribute_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_storage_attribute_cmd
        - imapc_storage_attribute_handling
        - imapc_storage_attribute_iter_create
        - index_storage_attribute_iter_init
        - mail_storage_last_error_push
      functionUses:    0
      BranchProfiles:
        - Branch String:   'imapc-attribute.c:305,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-attribute.c:303,3'
          Dst:             imapc_storage_attribute_iter_create
        - Src:             'imapc-attribute.c:305,10'
          Dst:             imapc_storage_attribute_handling
        - Src:             'imapc-attribute.c:307,16'
          Dst:             index_storage_attribute_iter_init
        - Src:             'imapc-attribute.c:311,7'
          Dst:             imapc_storage_attribute_cmd
        - Src:             'imapc-attribute.c:314,4'
          Dst:             mail_storage_last_error_push
        - Src:             'imapc-attribute.c:321,3'
          Dst:             mail_storage_last_error_push
    - functionName:    imapc_storage_attribute_handling
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          140
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - imapc_client_get_capabilities
        - mail_storage_set_error
        - mailbox_get_namespace
        - str_begins_with
        - strcmp
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:225,6'
          Dst:             strncmp
        - Src:             'imapc-attribute.c:225,6'
          Dst:             str_begins_with
        - Src:             'imapc-attribute.c:229,30'
          Dst:             mailbox_get_namespace
        - Src:             'imapc-attribute.c:231,6'
          Dst:             strcmp
        - Src:             'imapc-attribute.c:239,6'
          Dst:             imapc_client_get_capabilities
        - Src:             'imapc-attribute.c:244,3'
          Dst:             mail_storage_set_error
    - functionName:    imapc_storage_attribute_cmd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_storage_attribute_build_cmd
        - imapc_storage_attribute_run_cmd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-attribute.c:206,21'
          Dst:             imapc_storage_attribute_build_cmd
        - Src:             'imapc-attribute.c:208,9'
          Dst:             imapc_storage_attribute_run_cmd
    - functionName:    imapc_storage_attribute_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_storage_attribute_cmd
        - imapc_storage_attribute_context_create
        - imapc_storage_attribute_context_destroy
        - imapc_storage_attribute_handling
        - index_storage_attribute_get
        - t_strdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'imapc-attribute.c:279,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-attribute.c:279,10'
          Dst:             imapc_storage_attribute_handling
        - Src:             'imapc-attribute.c:281,10'
          Dst:             index_storage_attribute_get
        - Src:             'imapc-attribute.c:289,3'
          Dst:             imapc_storage_attribute_context_create
        - Src:             'imapc-attribute.c:290,12'
          Dst:             imapc_storage_attribute_cmd
        - Src:             'imapc-attribute.c:292,36'
          Dst:             t_strdup
        - Src:             'imapc-attribute.c:293,2'
          Dst:             imapc_storage_attribute_context_destroy
    - functionName:    imapc_storage_attribute_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-attribute.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_storage_attribute_cmd
        - imapc_storage_attribute_handling
        - index_storage_attribute_set
        - mailbox_attribute_value_to_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'imapc-attribute.c:257,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-attribute.c:257,10'
          Dst:             imapc_storage_attribute_handling
        - Src:             'imapc-attribute.c:259,10'
          Dst:             index_storage_attribute_set
        - Src:             'imapc-attribute.c:267,6'
          Dst:             mailbox_attribute_value_to_string
        - Src:             'imapc-attribute.c:270,9'
          Dst:             imapc_storage_attribute_cmd
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_login_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_connection_abort_commands
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:206,4'
          Dst:             imapc_connection_abort_commands
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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-imap-client/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_is_ssl
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_set_login_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_register_state_change_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 547
      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:             'imapc-client.c:542,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:543,2'
          Dst:             i_panic
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_create_temp_fd
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - i_close_fd_path
        - i_unlink
        - safe_mkstemp
        - str_append
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:514,3'
          Dst:             e_error
        - Src:             'imapc-client.c:519,9'
          Dst:             t_str_new
        - Src:             'imapc-client.c:520,2'
          Dst:             str_append
        - Src:             'imapc-client.c:521,7'
          Dst:             safe_mkstemp
        - Src:             'imapc-client.c:523,3'
          Dst:             str_c
        - Src:             'imapc-client.c:523,3'
          Dst:             e_error
        - Src:             'imapc-client.c:529,6'
          Dst:             str_c
        - Src:             'imapc-client.c:529,6'
          Dst:             i_unlink
        - Src:             'imapc-client.c:531,3'
          Dst:             i_close_fd_path
        - Src:             'imapc-client.c:534,12'
          Dst:             str_c
    - functionName:    imapc_client_get_any_capabilities
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - imapc_connection_get_capabilities
        - imapc_connection_get_state
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:476,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:477,7'
          Dst:             imapc_connection_get_state
        - Src:             'imapc-client.c:478,22'
          Dst:             imapc_connection_get_capabilities
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    imapc_client_get_capabilities
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - imapc_client_add_connection
        - imapc_client_get_any_capabilities
        - imapc_client_run
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:489,6'
          Dst:             imapc_client_get_any_capabilities
        - Src:             'imapc-client.c:493,6'
          Dst:             array_count_i
        - Src:             'imapc-client.c:494,9'
          Dst:             imapc_client_add_connection
        - Src:             'imapc-client.c:498,2'
          Dst:             imapc_client_run
        - Src:             'imapc-client.c:500,6'
          Dst:             imapc_client_get_any_capabilities
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_add_connection
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - imapc_client_login_callback
        - imapc_connection_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:226,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-client.c:226,9'
          Dst:             p_malloc
        - Src:             'imapc-client.c:228,15'
          Dst:             imapc_connection_init
        - Src:             'imapc-client.c:228,15'
          Dst:             imapc_client_login_callback
        - Src:             'imapc-client.c:230,2'
          Dst:             array_append_i
    - functionName:    imapc_client_run
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_run_post
        - imapc_client_run_pre
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:168,2'
          Dst:             imapc_client_run_pre
        - Src:             'imapc-client.c:169,2'
          Dst:             imapc_client_run_post
    - functionName:    imapc_client_run_pre
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          137
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - i_panic
        - imapc_connection_connect
        - imapc_connection_get_state
        - imapc_connection_ioloop_changed
        - io_loop_create
        - io_loop_is_running
        - io_loop_run
        - io_loop_set_current
        - io_loop_set_running
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:132,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:134,19'
          Dst:             io_loop_create
        - Src:             'imapc-client.c:135,2'
          Dst:             io_loop_set_running
        - Src:             'imapc-client.c:137,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:138,3'
          Dst:             imapc_connection_ioloop_changed
        - Src:             'imapc-client.c:139,7'
          Dst:             imapc_connection_get_state
        - Src:             'imapc-client.c:140,4'
          Dst:             imapc_connection_connect
        - Src:             'imapc-client.c:143,6'
          Dst:             io_loop_is_running
        - Src:             'imapc-client.c:144,3'
          Dst:             io_loop_run
        - Src:             'imapc-client.c:145,2'
          Dst:             io_loop_set_current
    - functionName:    imapc_client_run_post
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - imapc_connection_ioloop_changed
        - io_loop_destroy
        - io_loop_move_timeout
        - io_loop_set_current
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:154,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:155,3'
          Dst:             imapc_connection_ioloop_changed
        - Src:             'imapc-client.c:158,5'
          Dst:             io_loop_move_timeout
        - Src:             'imapc-client.c:162,2'
          Dst:             io_loop_set_current
        - Src:             'imapc-client.c:163,2'
          Dst:             io_loop_destroy
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_client_mailbox_idle_send
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_is_opened
        - imapc_connection_idle
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:434,2'
          Dst:             timeout_remove
        - Src:             'imapc-client.c:435,6'
          Dst:             imapc_client_mailbox_is_opened
        - Src:             'imapc-client.c:436,3'
          Dst:             imapc_connection_idle
    - functionName:    imapc_client_mailbox_is_opened
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - imapc_connection_get_event
        - imapc_connection_get_mailbox
        - imapc_connection_get_state
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:457,6'
          Dst:             imapc_connection_get_state
        - Src:             'imapc-client.c:460,17'
          Dst:             imapc_connection_get_mailbox
        - Src:             'imapc-client.c:463,4'
          Dst:             imapc_connection_get_event
        - Src:             'imapc-client.c:463,4'
          Dst:             e_error
    - functionName:    imapc_client_mailbox_idle
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_client_mailbox_idle_send
        - imapc_client_mailbox_is_opened
        - timeout_add_short
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:443,35'
          Dst:             imapc_client_mailbox_is_opened
        - Src:             'imapc-client.c:445,4'
          Dst:             timeout_add_short
        - Src:             'imapc-client.c:445,4'
          Dst:             imapc_client_mailbox_idle_send
    - functionName:    imapc_client_mailbox_get_msgmap
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_mailbox_cmd
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imapc_command_set_mailbox
        - imapc_connection_cmd
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:419,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:421,8'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-client.c:422,2'
          Dst:             imapc_command_set_mailbox
    - functionName:    imapc_client_mailbox_close
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - imapc_connection_disconnect
        - imapc_connection_mailbox_closed
        - imapc_msgmap_deinit
        - p_free_internal
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:388,2'
          Dst:             imapc_connection_mailbox_closed
        - Src:             'imapc-client.c:393,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-client.c:400,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:407,2'
          Dst:             imapc_msgmap_deinit
        - Src:             'imapc-client.c:408,2'
          Dst:             timeout_remove
        - Src:             'imapc-client.c:409,2'
          Dst:             p_free_internal
        - Src:             'imapc-client.c:410,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_mailbox_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_try_reconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:377,2'
          Dst:             imapc_connection_try_reconnect
    - functionName:    imapc_client_mailbox_can_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_mailbox_set_reopen_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_get_unboxed_connection
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - imapc_client_add_connection
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:270,10'
          Dst:             array_get_i
        - Src:             'imapc-client.c:275,9'
          Dst:             imapc_client_add_connection
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imapc_client_mailbox_open
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - imapc_client_get_unboxed_connection
        - imapc_msgmap_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:344,8'
          Dst:             malloc_multiply_check
        - Src:             'imapc-client.c:344,8'
          Dst:             p_malloc
        - Src:             'imapc-client.c:347,14'
          Dst:             i_strdup
        - Src:             'imapc-client.c:348,9'
          Dst:             imapc_client_get_unboxed_connection
        - Src:             'imapc-client.c:351,16'
          Dst:             imapc_msgmap_init
    - functionName:    imapc_client_logout_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imapc_client_stop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:301,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:304,3'
          Dst:             imapc_client_stop
    - functionName:    imapc_client_stop
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_stop
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:175,3'
          Dst:             io_loop_stop
    - functionName:    imapc_client_logout
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          122
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcpy
        - imapc_client_disconnect
        - imapc_client_logout_callback
        - imapc_client_run
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_connection_cmd
        - imapc_connection_get_state
        - imapc_connection_set_no_reconnect
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:316,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:317,7'
          Dst:             imapc_connection_get_state
        - Src:             'imapc-client.c:319,3'
          Dst:             imapc_connection_set_no_reconnect
        - Src:             'imapc-client.c:321,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-client.c:321,9'
          Dst:             imapc_client_logout_callback
        - Src:             'imapc-client.c:323,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-client.c:325,3'
          Dst:             imapc_command_send
        - Src:             'imapc-client.c:330,3'
          Dst:             imapc_client_run
        - Src:             'imapc-client.c:334,2'
          Dst:             imapc_client_disconnect
    - functionName:    imapc_client_disconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - array_get_i
        - i_panic
        - imapc_connection_deinit
        - imapc_connection_get_mailbox
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:100,10'
          Dst:             array_get_i
        - Src:             'imapc-client.c:103,3'
          Dst:             array_delete_i
        - Src:             'imapc-client.c:105,3'
          Dst:             imapc_connection_get_mailbox
        - Src:             'imapc-client.c:105,3'
          Dst:             i_panic
        - Src:             'imapc-client.c:106,3'
          Dst:             imapc_connection_deinit
        - Src:             'imapc-client.c:107,3'
          Dst:             p_free_internal
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_login
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - i_panic
        - imapc_client_add_connection
        - imapc_connection_connect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:283,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:284,2'
          Dst:             array_count_i
        - Src:             'imapc-client.c:284,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:286,9'
          Dst:             imapc_client_add_connection
        - Src:             'imapc-client.c:287,2'
          Dst:             imapc_connection_connect
    - functionName:    imapc_client_is_server_selected
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_find_connection
        - imapc_connection_get_selected_mailbox_name
        - null_strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:259,34'
          Dst:             imapc_client_find_connection
        - Src:             'imapc-client.c:260,26'
          Dst:             imapc_connection_get_selected_mailbox_name
        - Src:             'imapc-client.c:261,9'
          Dst:             null_strcmp
    - functionName:    imapc_client_find_connection
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
        - imapc_client_add_connection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:240,6'
          Dst:             array_count_i
        - Src:             'imapc-client.c:241,10'
          Dst:             imapc_client_add_connection
        - Src:             'imapc-client.c:242,10'
          Dst:             array_idx_i
    - functionName:    imapc_client_cmd
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_find_connection
        - imapc_connection_cmd
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:252,9'
          Dst:             imapc_client_find_connection
        - Src:             'imapc-client.c:253,9'
          Dst:             imapc_connection_cmd
    - functionName:    imapc_client_is_running
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 189
      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:    imapc_client_try_stop
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - imapc_client_stop
        - imapc_connection_get_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:181,2'
          Dst:             i_memcpy
        - Src:             'imapc-client.c:182,7'
          Dst:             imapc_connection_get_state
        - Src:             'imapc-client.c:184,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_client_register_untagged
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_disconnect
        - imapc_client_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:115,2'
          Dst:             imapc_client_disconnect
        - Src:             'imapc-client.c:116,2'
          Dst:             imapc_client_unref
    - functionName:    imapc_client_unref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - event_unref
        - i_panic
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:85,2'
          Dst:             i_panic
        - Src:             'imapc-client.c:89,2'
          Dst:             pool_unref
        - Src:             'imapc-client.c:91,2'
          Dst:             event_unref
        - Src:             'imapc-client.c:92,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_client_ref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:74,2'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    default_untagged_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          190
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - event_create
        - event_set_append_log_prefix
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - settings_get_or_fatal
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-client.c:35,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-client.c:36,11'
          Dst:             malloc_multiply_check
        - Src:             'imapc-client.c:36,11'
          Dst:             p_malloc
        - Src:             'imapc-client.c:39,18'
          Dst:             event_create
        - Src:             'imapc-client.c:42,16'
          Dst:             settings_get_or_fatal
        - Src:             'imapc-client.c:44,3'
          Dst:             p_strdup
        - Src:             'imapc-client.c:46,3'
          Dst:             p_strdup
        - Src:             'imapc-client.c:51,4'
          Dst:             p_strdup
        - Src:             'imapc-client.c:52,4'
          Dst:             p_strdup
        - Src:             'imapc-client.c:55,4'
          Dst:             p_strdup
        - Src:             'imapc-client.c:56,4'
          Dst:             p_strdup
        - Src:             'imapc-client.c:58,45'
          Dst:             t_strdup_printf
        - Src:             'imapc-client.c:58,2'
          Dst:             event_set_append_log_prefix
        - Src:             'imapc-client.c:62,6'
          Dst:             strcmp
        - Src:             'imapc-client.c:64,13'
          Dst:             strcmp
        - Src:             'imapc-client.c:68,2'
          Dst:             array_create_i
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    timeval_add_msecs
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_connection_throttle_shrink_timeout
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1390
      functionLinenumberEnd: 1407
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_connection_throttle_shrink_timeout
        - timeout_add
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1401,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:1404,4'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:1404,4'
          Dst:             imapc_connection_throttle_shrink_timeout
    - functionName:    imapc_connection_throttle
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1412
      functionLinenumberEnd: 1451
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          250
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - imapc_connection_throttle_shrink_timeout
        - strstr
        - timeout_add
        - timeout_remove
        - timeout_reset
        - timeval_add_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1413,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:1419,6'
          Dst:             strstr
        - Src:             'imapc-connection.c:1434,4'
          Dst:             timeout_reset
        - Src:             'imapc-connection.c:1439,5'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:1439,5'
          Dst:             imapc_connection_throttle_shrink_timeout
        - Src:             'imapc-connection.c:1447,3'
          Dst:             timeval_add_msecs
    - functionName:    i_strchr_to_next
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_connection_handle_resp_text_code
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_connection_parse_capability
        - p_free_internal
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:817,6'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:818,7'
          Dst:             imapc_connection_parse_capability
        - Src:             'imapc-connection.c:821,6'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:827,4'
          Dst:             p_free_internal
    - functionName:    imapc_connection_parse_capability
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          189
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - imapc_capability_lookup
        - imapc_connection_input_error
        - p_strsplit
        - p_strsplit_free
        - t_strsplit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:788,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:788,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:788,2'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:792,3'
          Dst:             p_strsplit_free
        - Src:             'imapc-connection.c:793,28'
          Dst:             p_strsplit
        - Src:             'imapc-connection.c:795,13'
          Dst:             t_strsplit
        - Src:             'imapc-connection.c:796,25'
          Dst:             imapc_capability_lookup
        - Src:             'imapc-connection.c:799,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:805,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:805,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:805,2'
          Dst:             event_send_abort
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_input_error
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - imapc_connection_disconnect
        - t_strdup_vprintf
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:601,2'
          Dst:             t_strdup_vprintf
        - Src:             'imapc-connection.c:601,2'
          Dst:             e_error
        - Src:             'imapc-connection.c:603,2'
          Dst:             imapc_connection_disconnect
    - functionName:    imapc_connection_disconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_disconnect_full
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:519,2'
          Dst:             imapc_connection_disconnect_full
    - functionName:    imapc_connection_disconnect_full
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          219
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - dns_lookup_abort
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_destroy
        - imap_parser_unref
        - imapc_client_try_stop
        - imapc_connection_abort_commands
        - imapc_connection_lfiles_free
        - imapc_connection_literal_reset
        - imapc_connection_set_state
        - io_remove
        - net_disconnect
        - o_stream_destroy
        - p_strsplit_free
        - ssl_iostream_destroy
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:464,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:468,3'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:468,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:470,4'
          Dst:             imapc_connection_abort_commands
        - Src:             'imapc-connection.c:475,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:475,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:475,2'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:478,3'
          Dst:             dns_lookup_abort
        - Src:             'imapc-connection.c:479,2'
          Dst:             imapc_connection_lfiles_free
        - Src:             'imapc-connection.c:480,2'
          Dst:             imapc_connection_literal_reset
        - Src:             'imapc-connection.c:481,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:482,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:483,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:485,3'
          Dst:             imap_parser_unref
        - Src:             'imapc-connection.c:486,2'
          Dst:             io_remove
        - Src:             'imapc-connection.c:487,2'
          Dst:             ssl_iostream_destroy
        - Src:             'imapc-connection.c:489,3'
          Dst:             i_stream_destroy
        - Src:             'imapc-connection.c:490,3'
          Dst:             o_stream_destroy
        - Src:             'imapc-connection.c:491,3'
          Dst:             net_disconnect
        - Src:             'imapc-connection.c:500,3'
          Dst:             p_strsplit_free
        - Src:             'imapc-connection.c:504,2'
          Dst:             imapc_connection_set_state
        - Src:             'imapc-connection.c:505,2'
          Dst:             imapc_connection_abort_commands
        - Src:             'imapc-connection.c:508,3'
          Dst:             imapc_client_try_stop
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_abort_commands
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          199
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - i_memcpy
        - imapc_command_free
        - imapc_connection_abort_commands_array
        - pool_datastack_create
        - seq_range_array_add
        - timeout_remove
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:347,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-connection.c:347,2'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:348,2'
          Dst:             imapc_connection_abort_commands_array
        - Src:             'imapc-connection.c:350,2'
          Dst:             imapc_connection_abort_commands_array
        - Src:             'imapc-connection.c:353,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:355,3'
          Dst:             array_append_array_i
        - Src:             'imapc-connection.c:357,3'
          Dst:             array_clear_i
        - Src:             'imapc-connection.c:358,3'
          Dst:             array_append_array_i
        - Src:             'imapc-connection.c:360,3'
          Dst:             array_clear_i
        - Src:             'imapc-connection.c:374,2'
          Dst:             i_memcpy
        - Src:             'imapc-connection.c:378,4'
          Dst:             seq_range_array_add
        - Src:             'imapc-connection.c:381,3'
          Dst:             imapc_command_free
        - Src:             'imapc-connection.c:383,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:384,3'
          Dst:             timeout_remove
    - functionName:    imapc_connection_lfiles_free
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_clear_i
        - buffer_get_modifiable_data
        - close
        - e_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:443,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'imapc-connection.c:444,7'
          Dst:             close
        - Src:             'imapc-connection.c:445,4'
          Dst:             e_error
        - Src:             'imapc-connection.c:447,2'
          Dst:             array_clear_i
    - functionName:    imapc_connection_literal_reset
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_close_fd_path
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:453,2'
          Dst:             i_close_fd_path
        - Src:             'imapc-connection.c:454,2'
          Dst:             p_free_internal
    - functionName:    imapc_connection_set_state
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - imapc_client_stop
        - imapc_login_callback
        - p_free_internal
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:
        - Branch String:   'imapc-connection.c:402,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-connection.c:408,22'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:410,4'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:414,4'
          Dst:             imapc_login_callback
        - Src:             'imapc-connection.c:415,4'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:418,3'
          Dst:             array_clear_i
        - Src:             'imapc-connection.c:426,3'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:432,4'
          Dst:             imapc_client_stop
    - functionName:    imapc_login_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    6
      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:    imapc_connection_abort_commands_array
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_count_i
        - array_delete_i
        - array_idx_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:321,18'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:322,9'
          Dst:             array_idx_i
        - Src:             'imapc-connection.c:333,4'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:334,4'
          Dst:             array_append_i
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    imapc_command_free
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2041
      functionLinenumberEnd: 2049
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - i_stream_unref
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2044,6'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:2045,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'imapc-connection.c:2046,4'
          Dst:             i_stream_unref
        - Src:             'imapc-connection.c:2048,2'
          Dst:             pool_unref
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    8
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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-imap-client/../../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:    imapc_connection_handle_resp_text
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imapc_connection_handle_resp_text_code
        - imapc_connection_input_error
        - strchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:840,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:842,6'
          Dst:             strchr
        - Src:             'imapc-connection.c:844,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:847,9'
          Dst:             t_strdup_until
        - Src:             'imapc-connection.c:848,10'
          Dst:             strchr
        - Src:             'imapc-connection.c:850,12'
          Dst:             t_strdup_until
        - Src:             'imapc-connection.c:856,9'
          Dst:             imapc_connection_handle_resp_text_code
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    last_arg_is_fetch_body
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          117
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - imap_arg_atom_equals
        - imap_arg_get_atom
        - imap_arg_get_list_full
        - str_begins_icase_with
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:616,6'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-connection.c:617,6'
          Dst:             imap_arg_get_list_full
        - Src:             'imapc-connection.c:619,6'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-connection.c:620,6'
          Dst:             strncasecmp
        - Src:             'imapc-connection.c:620,6'
          Dst:             str_begins_icase_with
    - functionName:    imapc_connection_read_literal_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_strdup
        - imapc_client_create_temp_fd
        - last_arg_is_fetch_body
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:636,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:639,7'
          Dst:             last_arg_is_fetch_body
        - Src:             'imapc-connection.c:644,21'
          Dst:             imapc_client_create_temp_fd
        - Src:             'imapc-connection.c:647,28'
          Dst:             i_strdup
    - functionName:    imapc_connection_read_literal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          154
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - e_error
        - i_stream_get_data
        - i_stream_skip
        - imapc_connection_disconnect
        - imapc_connection_literal_reset
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:663,9'
          Dst:             i_stream_get_data
        - Src:             'imapc-connection.c:667,7'
          Dst:             write_full
        - Src:             'imapc-connection.c:668,4'
          Dst:             e_error
        - Src:             'imapc-connection.c:670,4'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:673,3'
          Dst:             i_stream_skip
        - Src:             'imapc-connection.c:680,10'
          Dst:             array_append_space_i
        - Src:             'imapc-connection.c:686,2'
          Dst:             imapc_connection_literal_reset
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    imapc_connection_read_line_more
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - imap_parser_get_error
        - imap_parser_get_literal_size
        - imap_parser_read_args
        - imap_parser_read_last_literal
        - imapc_connection_input_error
        - imapc_connection_read_line_more
        - imapc_connection_read_literal
        - imapc_connection_read_literal_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:697,13'
          Dst:             imapc_connection_read_literal
        - Src:             'imapc-connection.c:700,8'
          Dst:             imap_parser_read_args
        - Src:             'imapc-connection.c:711,25'
          Dst:             imap_parser_get_error
        - Src:             'imapc-connection.c:713,4'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:715,4'
          Dst:             e_error
        - Src:             'imapc-connection.c:719,6'
          Dst:             imap_parser_get_literal_size
        - Src:             'imapc-connection.c:720,7'
          Dst:             imapc_connection_read_literal_init
        - Src:             'imapc-connection.c:722,4'
          Dst:             imap_parser_read_last_literal
        - Src:             'imapc-connection.c:725,10'
          Dst:             imapc_connection_read_line_more
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    base64_decode
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_decode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:312,9'
          Dst:             base64_scheme_decode
    - functionName:    imapc_connection_imap4rev2_enable_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_send_enable_imap4rev2
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_command_send
        - imapc_connection_cmd
        - imapc_connection_imap4rev2_enable_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:776,8'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:776,8'
          Dst:             imapc_connection_imap4rev2_enable_callback
        - Src:             'imapc-connection.c:779,2'
          Dst:             imapc_command_send
    - functionName:    imapc_connection_cmd
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2439
      functionLinenumberEnd: 2444
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_command_begin
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2442,8'
          Dst:             imapc_command_begin
    - functionName:    imapc_command_send
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2466
      functionLinenumberEnd: 2472
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_cmd_send
        - str_new
        - str_printfa
        - strlen
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2467,15'
          Dst:             strlen
        - Src:             'imapc-connection.c:2469,14'
          Dst:             str_new
        - Src:             'imapc-connection.c:2470,2'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2471,2'
          Dst:             imapc_connection_cmd_send
    - functionName:    imapc_connection_cmd_send
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2383
      functionLinenumberEnd: 2409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          122
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_insert_i
        - i_panic
        - imapc_command_send_more
        - imapc_connection_send_idle_done
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2388,2'
          Dst:             imapc_connection_send_idle_done
        - Src:             'imapc-connection.c:2391,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2396,3'
          Dst:             array_insert_i
        - Src:             'imapc-connection.c:2397,3'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:2402,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:2407,2'
          Dst:             array_insert_i
        - Src:             'imapc-connection.c:2408,2'
          Dst:             imapc_command_send_more
    - functionName:    imapc_connection_send_idle_done
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2370
      functionLinenumberEnd: 2380
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - imapc_command_timeout
        - o_stream_nsend_str
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2373,3'
          Dst:             o_stream_nsend_str
        - Src:             'imapc-connection.c:2375,15'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:2375,15'
          Dst:             imapc_command_timeout
    - functionName:    imapc_command_send_more
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2248
      functionLinenumberEnd: 2367
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         91
      ICount:          623
      EdgeCount:       119
      CyclomaticComplexity: 30
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - array_is_created_i
        - i_panic
        - imapc_client_mailbox_is_opened
        - imapc_command_reply_free
        - imapc_command_send_finished
        - imapc_command_send_more
        - imapc_command_timeout
        - imapc_command_try_send_stream
        - imapc_connection_is_throttled
        - imapc_connection_set_selecting
        - memchr
        - o_stream_nsend
        - parse_sync_literal
        - timeout_add
        - timeout_remove
        - timeout_reset
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2256,6'
          Dst:             imapc_connection_is_throttled
        - Src:             'imapc-connection.c:2259,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:2270,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2283,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2290,3'
          Dst:             imapc_connection_set_selecting
        - Src:             'imapc-connection.c:2291,14'
          Dst:             imapc_client_mailbox_is_opened
        - Src:             'imapc-connection.c:2301,3'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:2302,3'
          Dst:             imapc_command_reply_free
        - Src:             'imapc-connection.c:2303,3'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:2311,3'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:2312,14'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:2312,14'
          Dst:             imapc_command_timeout
        - Src:             'imapc-connection.c:2315,14'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:2315,14'
          Dst:             imapc_command_timeout
        - Src:             'imapc-connection.c:2319,2'
          Dst:             timeout_reset
        - Src:             'imapc-connection.c:2320,13'
          Dst:             imapc_command_try_send_stream
        - Src:             'imapc-connection.c:2327,3'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:2328,3'
          Dst:             imapc_command_reply_free
        - Src:             'imapc-connection.c:2329,3'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:2337,7'
          Dst:             parse_sync_literal
        - Src:             'imapc-connection.c:2339,4'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2345,7'
          Dst:             memchr
        - Src:             'imapc-connection.c:2347,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2357,2'
          Dst:             o_stream_nsend
        - Src:             'imapc-connection.c:2361,3'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:2361,3'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2361,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2363,3'
          Dst:             imapc_command_send_finished
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imapc_connection_is_throttled
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2223
      functionLinenumberEnd: 2245
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - imapc_command_send_more
        - timeout_add_absolute
        - timeout_remove
        - timeval_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2224,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:2230,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2235,6'
          Dst:             timeval_cmp
        - Src:             'imapc-connection.c:2242,22'
          Dst:             timeout_add_absolute
        - Src:             'imapc-connection.c:2242,22'
          Dst:             imapc_command_send_more
    - functionName:    imapc_connection_set_selecting
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2202
      functionLinenumberEnd: 2220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2205,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2215,3'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:2216,30'
          Dst:             i_strdup
    - functionName:    imapc_command_reply_free
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_command_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1458,2'
          Dst:             imapc_command_free
    - functionName:    imapc_command_timeout
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2088
      functionLinenumberEnd: 2097
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
        - i_panic
        - imapc_command_get_readable
        - imapc_connection_try_reconnect
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2092,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:2093,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2096,29'
          Dst:             imapc_command_get_readable
        - Src:             'imapc-connection.c:2095,39'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:2095,2'
          Dst:             imapc_connection_try_reconnect
    - functionName:    imapc_command_try_send_stream
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2161
      functionLinenumberEnd: 2199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          175
      EdgeCount:       49
      CyclomaticComplexity: 26
      functionsReached:
        - array_delete_i
        - e_error
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_unref
        - i_unreached
        - imapc_command_get_sending_stream
        - o_stream_send_istream
        - o_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-connection.c:2174,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-connection.c:2165,11'
          Dst:             imapc_command_get_sending_stream
        - Src:             'imapc-connection.c:2170,2'
          Dst:             o_stream_set_max_buffer_size
        - Src:             'imapc-connection.c:2171,8'
          Dst:             o_stream_send_istream
        - Src:             'imapc-connection.c:2172,2'
          Dst:             o_stream_set_max_buffer_size
        - Src:             'imapc-connection.c:2178,3'
          Dst:             i_unreached
        - Src:             'imapc-connection.c:2180,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2183,3'
          Dst:             i_stream_get_name
        - Src:             'imapc-connection.c:2183,3'
          Dst:             i_stream_get_error
        - Src:             'imapc-connection.c:2183,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:2191,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2194,2'
          Dst:             i_stream_unref
        - Src:             'imapc-connection.c:2195,2'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:2197,2'
          Dst:             i_panic
    - functionName:    parse_sync_literal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2122
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          183
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2107,29'
          Dst:             __ctype_b_loc
        - Src:             'imapc-connection.c:2115,22'
          Dst:             __ctype_b_loc
    - functionName:    imapc_command_send_finished
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2126
      functionLinenumberEnd: 2143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_delete_i
        - array_idx_i
        - i_panic
        - imapc_command_send_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2129,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2136,9'
          Dst:             array_idx_i
        - Src:             'imapc-connection.c:2137,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2138,2'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:2139,2'
          Dst:             array_append_i
        - Src:             'imapc-connection.c:2142,2'
          Dst:             imapc_command_send_more
    - functionName:    imapc_command_get_sending_stream
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2147
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2150,7'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:2150,42'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2153,11'
          Dst:             array_idx_modifiable_i
    - functionName:    imapc_command_get_readable
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:301,18'
          Dst:             t_str_new
        - Src:             'imapc-connection.c:307,4'
          Dst:             str_append_c
        - Src:             'imapc-connection.c:309,9'
          Dst:             str_c
    - functionName:    imapc_connection_try_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          152
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - e_warning
        - imapc_connection_can_reconnect
        - imapc_connection_connect
        - imapc_connection_disconnect
        - imapc_connection_disconnect_full
        - imapc_connection_reconnect
        - timeout_add
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:569,3'
          Dst:             e_warning
        - Src:             'imapc-connection.c:571,3'
          Dst:             imapc_connection_disconnect_full
        - Src:             'imapc-connection.c:572,3'
          Dst:             imapc_connection_connect
        - Src:             'imapc-connection.c:576,7'
          Dst:             imapc_connection_can_reconnect
        - Src:             'imapc-connection.c:577,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:578,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:582,3'
          Dst:             e_warning
        - Src:             'imapc-connection.c:585,4'
          Dst:             imapc_connection_reconnect
        - Src:             'imapc-connection.c:587,4'
          Dst:             imapc_connection_disconnect_full
        - Src:             'imapc-connection.c:588,15'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:588,15'
          Dst:             imapc_connection_reconnect
    - functionName:    imapc_connection_connect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          204
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - dns_lookup
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - imapc_connection_connect_next_ip
        - imapc_connection_dns_callback
        - imapc_connection_input_reset
        - imapc_connection_set_disconnected
        - imapc_connection_set_state
        - malloc_multiply_check
        - net_addr2ip
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1965,4'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:1966,4'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:1969,2'
          Dst:             imapc_connection_input_reset
        - Src:             'imapc-connection.c:1972,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1972,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1972,2'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:1977,2'
          Dst:             imapc_connection_set_state
        - Src:             'imapc-connection.c:1981,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1982,3'
          Dst:             imapc_connection_set_disconnected
        - Src:             'imapc-connection.c:1984,13'
          Dst:             net_addr2ip
        - Src:             'imapc-connection.c:1986,15'
          Dst:             malloc_multiply_check
        - Src:             'imapc-connection.c:1986,15'
          Dst:             p_malloc
        - Src:             'imapc-connection.c:1989,9'
          Dst:             dns_lookup
        - Src:             'imapc-connection.c:1989,9'
          Dst:             imapc_connection_dns_callback
        - Src:             'imapc-connection.c:1994,2'
          Dst:             imapc_connection_connect_next_ip
    - functionName:    imapc_connection_can_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - imapc_client_mailbox_can_reconnect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:538,10'
          Dst:             imapc_client_mailbox_can_reconnect
    - functionName:    imapc_connection_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imapc_connection_connect
        - imapc_connection_disconnect_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:551,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:558,2'
          Dst:             imapc_connection_disconnect_full
        - Src:             'imapc-connection.c:559,2'
          Dst:             imapc_connection_connect
    - functionName:    imapc_connection_input_reset
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_parser_reset
        - imapc_connection_lfiles_free
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:894,3'
          Dst:             imap_parser_reset
        - Src:             'imapc-connection.c:895,2'
          Dst:             imapc_connection_lfiles_free
    - functionName:    imapc_connection_set_disconnected
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_abort_commands
        - imapc_connection_set_state
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:524,2'
          Dst:             imapc_connection_set_state
        - Src:             'imapc-connection.c:525,2'
          Dst:             imapc_connection_abort_commands
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_connection_dns_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1926
      functionLinenumberEnd: 1946
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          115
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_memcpy
        - i_panic
        - imapc_connection_connect_next_ip
        - imapc_connection_set_disconnected
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1933,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1935,3'
          Dst:             imapc_connection_set_disconnected
        - Src:             'imapc-connection.c:1939,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1941,14'
          Dst:             malloc_multiply_check
        - Src:             'imapc-connection.c:1941,14'
          Dst:             p_malloc
        - Src:             'imapc-connection.c:1942,2'
          Dst:             i_memcpy
        - Src:             'imapc-connection.c:1945,2'
          Dst:             imapc_connection_connect_next_ip
    - functionName:    imapc_connection_connect_next_ip
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1866
      functionLinenumberEnd: 1921
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          416
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_create_fd
        - imap_parser_create
        - imapc_connection_connected
        - imapc_connection_reset_idle
        - imapc_connection_timeout
        - imapc_connection_try_reconnect
        - iostream_rawlog_create
        - net_connect_ip
        - net_ip2addr
        - o_stream_create_fd
        - o_stream_set_flush_callback
        - o_stream_set_flush_pending
        - o_stream_set_no_error_handling
        - t_strdup_printf
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1871,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1876,8'
          Dst:             net_connect_ip
        - Src:             'imapc-connection.c:1885,4'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1883,23'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1887,4'
          Dst:             imapc_connection_try_reconnect
        - Src:             'imapc-connection.c:1891,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1894,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1898,3'
          Dst:             i_stream_create_fd
        - Src:             'imapc-connection.c:1899,36'
          Dst:             o_stream_create_fd
        - Src:             'imapc-connection.c:1900,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'imapc-connection.c:1904,3'
          Dst:             iostream_rawlog_create
        - Src:             'imapc-connection.c:1909,2'
          Dst:             o_stream_set_flush_pending
        - Src:             'imapc-connection.c:1910,2'
          Dst:             o_stream_set_flush_callback
        - Src:             'imapc-connection.c:1910,2'
          Dst:             imapc_connection_connected
        - Src:             'imapc-connection.c:1912,17'
          Dst:             imap_parser_create
        - Src:             'imapc-connection.c:1915,13'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:1915,13'
          Dst:             imapc_connection_timeout
        - Src:             'imapc-connection.c:1917,20'
          Dst:             timeout_add
        - Src:             'imapc-connection.c:1917,20'
          Dst:             imapc_connection_reset_idle
        - Src:             'imapc-connection.c:1919,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1919,2'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1919,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1919,2'
          Dst:             event_send_abort
    - functionName:    imapc_connection_connected
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1778
      functionLinenumberEnd: 1810
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          161
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - e_info
        - i_panic
        - imapc_connection_disconnect
        - imapc_connection_input
        - imapc_connection_output
        - imapc_connection_ssl_init
        - imapc_connection_try_reconnect
        - io_add
        - net_geterror
        - net_getsockname
        - net_ip2addr
        - o_stream_set_flush_callback
        - strerror
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1784,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1786,8'
          Dst:             net_geterror
        - Src:             'imapc-connection.c:1790,4'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1791,4'
          Dst:             strerror
        - Src:             'imapc-connection.c:1788,40'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1788,3'
          Dst:             imapc_connection_try_reconnect
        - Src:             'imapc-connection.c:1794,6'
          Dst:             net_getsockname
        - Src:             'imapc-connection.c:1796,2'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1796,2'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1796,2'
          Dst:             e_info
        - Src:             'imapc-connection.c:1799,13'
          Dst:             io_add
        - Src:             'imapc-connection.c:1799,13'
          Dst:             imapc_connection_input
        - Src:             'imapc-connection.c:1800,2'
          Dst:             o_stream_set_flush_callback
        - Src:             'imapc-connection.c:1800,2'
          Dst:             imapc_connection_output
        - Src:             'imapc-connection.c:1804,7'
          Dst:             imapc_connection_ssl_init
        - Src:             'imapc-connection.c:1805,4'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1809,9'
          Dst:             imapc_connection_output
    - functionName:    imapc_connection_timeout
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1813
      functionLinenumberEnd: 1833
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - i_unreached
        - imapc_connection_try_reconnect
        - net_ip2addr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-connection.c:1818,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-connection.c:1821,4'
          Dst:             net_ip2addr
        - Src:             'imapc-connection.c:1820,12'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1826,12'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1830,3'
          Dst:             i_unreached
        - Src:             'imapc-connection.c:1832,2'
          Dst:             imapc_connection_try_reconnect
    - functionName:    imapc_connection_reset_idle
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1851
      functionLinenumberEnd: 1863
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - imapc_command_send
        - imapc_connection_cmd
        - imapc_noop_callback
        - imapc_reidle_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1855,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1855,9'
          Dst:             imapc_reidle_callback
        - Src:             'imapc-connection.c:1856,11'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:1857,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1857,9'
          Dst:             imapc_noop_callback
        - Src:             'imapc-connection.c:1862,2'
          Dst:             imapc_command_send
    - functionName:    imapc_reidle_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1844
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_idle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1847,2'
          Dst:             imapc_connection_idle
    - functionName:    imapc_noop_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1838
      functionLinenumberEnd: 1839
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_idle
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2626
      functionLinenumberEnd: 2638
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - array_count_i
        - imapc_command_send
        - imapc_connection_cmd
        - imapc_connection_idle_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2629,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2630,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:2635,8'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:2635,8'
          Dst:             imapc_connection_idle_callback
        - Src:             'imapc-connection.c:2637,2'
          Dst:             imapc_command_send
    - functionName:    imapc_connection_idle_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2617
      functionLinenumberEnd: 2623
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_input
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1699
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          199
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - i_stream_get_data_size
        - i_stream_get_error
        - i_stream_read
        - imapc_connection_disconnect
        - imapc_connection_input_pending
        - imapc_connection_ref
        - imapc_connection_try_reconnect
        - imapc_connection_unref
        - ssl_iostream_get_last_error
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1664,2'
          Dst:             imapc_connection_ref
        - Src:             'imapc-connection.c:1665,39'
          Dst:             i_stream_read
        - Src:             'imapc-connection.c:1666,3'
          Dst:             imapc_connection_input_pending
        - Src:             'imapc-connection.c:1671,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1674,9'
          Dst:             t_str_new
        - Src:             'imapc-connection.c:1676,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:1681,9'
          Dst:             i_stream_get_data_size
        - Src:             'imapc-connection.c:1679,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:1684,5'
          Dst:             i_stream_get_error
        - Src:             'imapc-connection.c:1685,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:1688,13'
          Dst:             ssl_iostream_get_last_error
        - Src:             'imapc-connection.c:1691,6'
          Dst:             i_stream_get_error
        - Src:             'imapc-connection.c:1693,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:1696,40'
          Dst:             str_c
        - Src:             'imapc-connection.c:1696,3'
          Dst:             imapc_connection_try_reconnect
        - Src:             'imapc-connection.c:1698,2'
          Dst:             imapc_connection_unref
    - functionName:    imapc_connection_output
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2412
      functionLinenumberEnd: 2434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - imapc_command_get_sending_stream
        - imapc_command_send_more
        - imapc_connection_ref
        - imapc_connection_unref
        - o_stream_flush
        - timeout_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2418,3'
          Dst:             timeout_reset
        - Src:             'imapc-connection.c:2420,13'
          Dst:             o_stream_flush
        - Src:             'imapc-connection.c:2423,2'
          Dst:             imapc_connection_ref
        - Src:             'imapc-connection.c:2424,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:2426,7'
          Dst:             imapc_command_get_sending_stream
        - Src:             'imapc-connection.c:2429,4'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:2432,2'
          Dst:             imapc_connection_unref
    - functionName:    imapc_connection_ssl_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1725
      functionLinenumberEnd: 1775
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          205
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_stream_destroy
        - i_stream_ref
        - imap_parser_set_streams
        - imapc_connection_input
        - imapc_connection_ssl_handshaked
        - io_add_istream
        - io_remove
        - io_stream_autocreate_ssl_client
        - iostream_rawlog_create
        - o_stream_destroy
        - o_stream_ref
        - ssl_iostream_get_last_error
        - ssl_iostream_handshake
        - ssl_iostream_set_handshake_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1728,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1728,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1728,2'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:1732,3'
          Dst:             i_stream_ref
        - Src:             'imapc-connection.c:1733,3'
          Dst:             o_stream_ref
        - Src:             'imapc-connection.c:1734,3'
          Dst:             i_stream_destroy
        - Src:             'imapc-connection.c:1735,3'
          Dst:             o_stream_destroy
        - Src:             'imapc-connection.c:1740,2'
          Dst:             io_remove
        - Src:             'imapc-connection.c:1750,6'
          Dst:             io_stream_autocreate_ssl_client
        - Src:             'imapc-connection.c:1753,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1757,13'
          Dst:             io_add_istream
        - Src:             'imapc-connection.c:1757,13'
          Dst:             imapc_connection_input
        - Src:             'imapc-connection.c:1758,2'
          Dst:             ssl_iostream_set_handshake_callback
        - Src:             'imapc-connection.c:1758,2'
          Dst:             imapc_connection_ssl_handshaked
        - Src:             'imapc-connection.c:1761,6'
          Dst:             ssl_iostream_handshake
        - Src:             'imapc-connection.c:1762,3'
          Dst:             ssl_iostream_get_last_error
        - Src:             'imapc-connection.c:1762,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1768,3'
          Dst:             iostream_rawlog_create
        - Src:             'imapc-connection.c:1773,2'
          Dst:             imap_parser_set_streams
    - functionName:    imapc_connection_ssl_handshaked
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1703
      functionLinenumberEnd: 1722
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - ssl_iostream_check_cert_validity
        - ssl_iostream_get_allow_invalid_cert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1707,3'
          Dst:             ssl_iostream_check_cert_validity
        - Src:             'imapc-connection.c:1711,3'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1711,3'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1711,3'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:1712,11'
          Dst:             ssl_iostream_get_allow_invalid_cert
        - Src:             'imapc-connection.c:1713,3'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1713,3'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1713,3'
          Dst:             event_send_abort
    - functionName:    imapc_connection_ref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 243
      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:             'imapc-connection.c:240,2'
          Dst:             i_panic
    - functionName:    imapc_connection_unref
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - event_unref
        - i_panic
        - imapc_client_unref
        - p_free_internal
        - p_strsplit_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:249,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:255,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:258,3'
          Dst:             p_strsplit_free
        - Src:             'imapc-connection.c:259,2'
          Dst:             array_free_i
        - Src:             'imapc-connection.c:260,2'
          Dst:             array_free_i
        - Src:             'imapc-connection.c:261,2'
          Dst:             array_free_i
        - Src:             'imapc-connection.c:262,2'
          Dst:             array_free_i
        - Src:             'imapc-connection.c:263,2'
          Dst:             imapc_client_unref
        - Src:             'imapc-connection.c:264,2'
          Dst:             event_unref
        - Src:             'imapc-connection.c:265,2'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:266,2'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:267,2'
          Dst:             p_free_internal
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    imapc_connection_input_pending
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1998
      functionLinenumberEnd: 2016
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - imapc_connection_input_one
        - o_stream_cork
        - o_stream_uncork
        - t_pop
        - t_push
        - timeout_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2005,3'
          Dst:             timeout_reset
        - Src:             'imapc-connection.c:2007,2'
          Dst:             o_stream_cork
        - Src:             'imapc-connection.c:2009,3'
          Dst:             t_push
        - Src:             'imapc-connection.c:2010,10'
          Dst:             imapc_connection_input_one
        - Src:             'imapc-connection.c:2011,5'
          Dst:             t_pop
        - Src:             'imapc-connection.c:2011,5'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2015,3'
          Dst:             o_stream_uncork
    - functionName:    imapc_connection_input_one
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1654
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          159
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - imap_parser_read_word
        - imapc_connection_input_error
        - imapc_connection_input_plus
        - imapc_connection_input_tagged
        - imapc_connection_input_untagged
        - str_to_uint
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-connection.c:1617,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-connection.c:1619,9'
          Dst:             imap_parser_read_word
        - Src:             'imapc-connection.c:1623,7'
          Dst:             strcmp
        - Src:             'imapc-connection.c:1626,10'
          Dst:             imapc_connection_input_untagged
        - Src:             'imapc-connection.c:1627,14'
          Dst:             strcmp
        - Src:             'imapc-connection.c:1629,10'
          Dst:             imapc_connection_input_plus
        - Src:             'imapc-connection.c:1632,8'
          Dst:             str_to_uint
        - Src:             'imapc-connection.c:1634,5'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1638,11'
          Dst:             imapc_connection_input_tagged
        - Src:             'imapc-connection.c:1643,9'
          Dst:             imapc_connection_input_plus
        - Src:             'imapc-connection.c:1647,9'
          Dst:             imapc_connection_input_untagged
        - Src:             'imapc-connection.c:1650,9'
          Dst:             imapc_connection_input_tagged
    - functionName:    imapc_connection_input_untagged
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1345
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          297
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - array_get_i
        - i_memcasecmp
        - i_strdup
        - i_stream_get_data
        - imap_arg_get_atom
        - imap_args_to_str
        - imap_parser_ref
        - imap_parser_unref
        - imapc_connection_handle_imap_resp_text
        - imapc_connection_input_error
        - imapc_connection_input_reset
        - imapc_connection_parse_capability
        - imapc_connection_read_line
        - memchr
        - p_free_internal
        - str_to_uint32
        - strcasecmp
        - t_strcut
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1275,10'
          Dst:             i_stream_get_data
        - Src:             'imapc-connection.c:1276,19'
          Dst:             memchr
        - Src:             'imapc-connection.c:1278,7'
          Dst:             i_memcasecmp
        - Src:             'imapc-connection.c:1281,14'
          Dst:             t_strndup
        - Src:             'imapc-connection.c:1281,5'
          Dst:             t_strcut
        - Src:             'imapc-connection.c:1279,4'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1288,13'
          Dst:             imapc_connection_read_line
        - Src:             'imapc-connection.c:1291,3'
          Dst:             imapc_connection_input_reset
        - Src:             'imapc-connection.c:1294,7'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-connection.c:1295,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1301,6'
          Dst:             str_to_uint32
        - Src:             'imapc-connection.c:1304,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-connection.c:1305,4'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1313,6'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1314,7'
          Dst:             imapc_connection_handle_imap_resp_text
        - Src:             'imapc-connection.c:1318,13'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1319,11'
          Dst:             imap_args_to_str
        - Src:             'imapc-connection.c:1320,7'
          Dst:             imapc_connection_parse_capability
        - Src:             'imapc-connection.c:1322,13'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1323,3'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:1324,38'
          Dst:             imap_args_to_str
        - Src:             'imapc-connection.c:1324,29'
          Dst:             i_strdup
        - Src:             'imapc-connection.c:1330,20'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:1340,2'
          Dst:             imap_parser_ref
        - Src:             'imapc-connection.c:1342,2'
          Dst:             imap_parser_unref
        - Src:             'imapc-connection.c:1343,2'
          Dst:             imapc_connection_input_reset
    - functionName:    imapc_connection_input_plus
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1386
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          175
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_get_i
        - i_stream_next_line
        - imapc_command_send_more
        - imapc_connection_input_error
        - imapc_connection_input_reset
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1353,14'
          Dst:             i_stream_next_line
        - Src:             'imapc-connection.c:1356,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:1363,4'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:1367,3'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:1369,10'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:1379,4'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1384,2'
          Dst:             imapc_connection_input_reset
    - functionName:    imapc_connection_input_tagged
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1462
      functionLinenumberEnd: 1607
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         105
      ICount:          634
      EdgeCount:       139
      CyclomaticComplexity: 36
      functionsReached:
        - array_append_i
        - array_count_i
        - array_delete_i
        - array_get_i
        - e_error
        - i_panic
        - i_strchr_to_next
        - i_stream_next_line
        - imapc_command_get_readable
        - imapc_command_reply_free
        - imapc_command_send_more
        - imapc_connection_disconnect
        - imapc_connection_handle_resp_text
        - imapc_connection_input_error
        - imapc_connection_input_reset
        - imapc_connection_mailbox_closed
        - imapc_connection_throttle
        - imapc_connection_try_reconnect
        - p_free_internal
        - seq_range_array_remove
        - seq_range_exists
        - strcasecmp
        - strchr
        - t_strdup_noconst
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1469,9'
          Dst:             i_stream_next_line
        - Src:             'imapc-connection.c:1473,9'
          Dst:             t_strdup_noconst
        - Src:             'imapc-connection.c:1477,10'
          Dst:             strchr
        - Src:             'imapc-connection.c:1485,6'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1487,11'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1489,11'
          Dst:             strcasecmp
        - Src:             'imapc-connection.c:1492,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1500,7'
          Dst:             imapc_connection_handle_resp_text
        - Src:             'imapc-connection.c:1505,7'
          Dst:             i_strchr_to_next
        - Src:             'imapc-connection.c:1506,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1516,3'
          Dst:             imapc_connection_throttle
        - Src:             'imapc-connection.c:1520,9'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:1523,3'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:1525,10'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:1529,5'
          Dst:             array_delete_i
        - Src:             'imapc-connection.c:1534,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:1535,6'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:1537,3'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:1540,7'
          Dst:             seq_range_exists
        - Src:             'imapc-connection.c:1542,4'
          Dst:             seq_range_array_remove
        - Src:             'imapc-connection.c:1544,4'
          Dst:             imapc_connection_input_reset
        - Src:             'imapc-connection.c:1547,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1556,3'
          Dst:             imapc_command_get_readable
        - Src:             'imapc-connection.c:1556,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:1559,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1566,3'
          Dst:             imapc_connection_mailbox_closed
        - Src:             'imapc-connection.c:1569,17'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:1574,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1594,3'
          Dst:             array_append_i
        - Src:             'imapc-connection.c:1598,3'
          Dst:             imapc_connection_try_reconnect
        - Src:             'imapc-connection.c:1603,2'
          Dst:             imapc_connection_input_reset
        - Src:             'imapc-connection.c:1604,2'
          Dst:             imapc_command_reply_free
        - Src:             'imapc-connection.c:1605,2'
          Dst:             imapc_command_send_more
    - functionName:    imapc_connection_mailbox_closed
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2573
      functionLinenumberEnd: 2604
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          140
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - imapc_connection_abort_commands
        - imapc_connection_disconnect
        - imapc_connection_send_idle_done
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2580,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:2584,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2590,3'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2595,4'
          Dst:             p_free_internal
        - Src:             'imapc-connection.c:2602,2'
          Dst:             imapc_connection_send_idle_done
        - Src:             'imapc-connection.c:2603,2'
          Dst:             imapc_connection_abort_commands
    - functionName:    imapc_connection_input_banner
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1232
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imap_arg_atom_equals
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_connection_capability_cb
        - imapc_connection_cmd
        - imapc_connection_handle_imap_resp_text
        - imapc_connection_input_reset
        - imapc_connection_read_line
        - imapc_connection_set_state
        - imapc_connection_starttls
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1238,13'
          Dst:             imapc_connection_read_line
        - Src:             'imapc-connection.c:1241,2'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-connection.c:1241,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:1244,6'
          Dst:             imapc_connection_handle_imap_resp_text
        - Src:             'imapc-connection.c:1247,2'
          Dst:             imapc_connection_set_state
        - Src:             'imapc-connection.c:1251,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1251,9'
          Dst:             imapc_connection_capability_cb
        - Src:             'imapc-connection.c:1253,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1254,3'
          Dst:             imapc_command_send
        - Src:             'imapc-connection.c:1256,3'
          Dst:             imapc_connection_starttls
        - Src:             'imapc-connection.c:1259,2'
          Dst:             imapc_connection_input_reset
    - functionName:    imapc_connection_read_line
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          149
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_skip
        - imapc_connection_read_line_more
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:738,16'
          Dst:             imapc_connection_read_line_more
        - Src:             'imapc-connection.c:742,10'
          Dst:             i_stream_get_data
        - Src:             'imapc-connection.c:744,4'
          Dst:             i_stream_skip
        - Src:             'imapc-connection.c:746,4'
          Dst:             i_stream_skip
        - Src:             'imapc-connection.c:748,4'
          Dst:             i_panic
        - Src:             'imapc-connection.c:750,10'
          Dst:             i_stream_get_data
        - Src:             'imapc-connection.c:751,23'
          Dst:             memchr
        - Src:             'imapc-connection.c:753,4'
          Dst:             i_stream_skip
    - functionName:    imapc_connection_handle_imap_resp_text
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_args_to_str
        - imapc_connection_handle_resp_text
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:869,9'
          Dst:             imap_args_to_str
        - Src:             'imapc-connection.c:872,9'
          Dst:             imapc_connection_handle_resp_text
    - functionName:    imapc_connection_capability_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_connection_input_error
        - imapc_connection_starttls
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1221,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1224,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1227,3'
          Dst:             imapc_connection_starttls
    - functionName:    imapc_command_set_flags
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2449
      functionLinenumberEnd: 2451
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_starttls
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1212
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_connection_authenticate
        - imapc_connection_cmd
        - imapc_connection_disconnect
        - imapc_connection_send_id
        - imapc_connection_starttls_cb
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1199,4'
          Dst:             e_error
        - Src:             'imapc-connection.c:1201,4'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1204,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1204,9'
          Dst:             imapc_connection_starttls_cb
        - Src:             'imapc-connection.c:1206,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1207,3'
          Dst:             imapc_command_send
        - Src:             'imapc-connection.c:1210,2'
          Dst:             imapc_connection_send_id
        - Src:             'imapc-connection.c:1211,2'
          Dst:             imapc_connection_authenticate
    - functionName:    imapc_connection_starttls_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1149
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_connection_capability_cb
        - imapc_connection_cmd
        - imapc_connection_disconnect
        - imapc_connection_input_error
        - imapc_connection_ssl_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1154,3'
          Dst:             imapc_connection_input_error
        - Src:             'imapc-connection.c:1159,6'
          Dst:             imapc_connection_ssl_init
        - Src:             'imapc-connection.c:1160,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1163,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1163,9'
          Dst:             imapc_connection_capability_cb
        - Src:             'imapc-connection.c:1165,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1166,3'
          Dst:             imapc_command_send
    - functionName:    imapc_connection_send_id
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_connection_cmd
        - imapc_connection_id_callback
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1185,8'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1185,8'
          Dst:             imapc_connection_id_callback
        - Src:             'imapc-connection.c:1186,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1187,26'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1187,2'
          Dst:             imapc_command_send
    - functionName:    imapc_connection_authenticate
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          430
      EdgeCount:       73
      CyclomaticComplexity: 20
      functionsReached:
        - array_is_created_i
        - base64_encode
        - dsasl_client_enable_channel_binding
        - dsasl_client_mech_get_name
        - dsasl_client_new
        - dsasl_client_output
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - imapc_auth_failed
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_connection_authenticate_cb
        - imapc_connection_channel_bind_callback
        - imapc_connection_cmd
        - imapc_connection_disconnect
        - imapc_connection_get_sasl_mech
        - imapc_connection_login_cb
        - imapc_connection_proxyauth_login_cb
        - need_literal
        - ssl_iostream_get_protocol_version
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1051,3'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1051,3'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1051,3'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:1053,3'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:1053,3'
          Dst:             e_debug
        - Src:             'imapc-connection.c:1053,3'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:1057,6'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:1058,7'
          Dst:             imapc_connection_get_sasl_mech
        - Src:             'imapc-connection.c:1063,4'
          Dst:             imapc_auth_failed
        - Src:             'imapc-connection.c:1064,4'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1072,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1072,9'
          Dst:             imapc_connection_proxyauth_login_cb
        - Src:             'imapc-connection.c:1074,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1075,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-connection.c:1081,9'
          Dst:             need_literal
        - Src:             'imapc-connection.c:1081,43'
          Dst:             need_literal
        - Src:             'imapc-connection.c:1084,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1084,9'
          Dst:             imapc_connection_login_cb
        - Src:             'imapc-connection.c:1086,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1087,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-connection.c:1107,22'
          Dst:             dsasl_client_new
        - Src:             'imapc-connection.c:1111,4'
          Dst:             ssl_iostream_get_protocol_version
        - Src:             'imapc-connection.c:1109,3'
          Dst:             dsasl_client_enable_channel_binding
        - Src:             'imapc-connection.c:1109,3'
          Dst:             imapc_connection_channel_bind_callback
        - Src:             'imapc-connection.c:1115,8'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:1115,8'
          Dst:             imapc_connection_authenticate_cb
        - Src:             'imapc-connection.c:1117,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:1125,7'
          Dst:             dsasl_client_output
        - Src:             'imapc-connection.c:1128,4'
          Dst:             e_error
        - Src:             'imapc-connection.c:1131,4'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:1134,24'
          Dst:             t_str_new
        - Src:             'imapc-connection.c:1135,3'
          Dst:             base64_encode
        - Src:             'imapc-connection.c:1138,9'
          Dst:             dsasl_client_mech_get_name
        - Src:             'imapc-connection.c:1139,9'
          Dst:             str_c
        - Src:             'imapc-connection.c:1137,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-connection.c:1142,9'
          Dst:             dsasl_client_mech_get_name
        - Src:             'imapc-connection.c:1141,3'
          Dst:             imapc_command_sendf
    - functionName:    imapc_connection_get_sasl_mech
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dsasl_client_mech_find
        - imapc_connection_have_auth
        - settings_boollist_get
        - t_strarray_join
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1012,3'
          Dst:             settings_boollist_get
        - Src:             'imapc-connection.c:1016,7'
          Dst:             imapc_connection_have_auth
        - Src:             'imapc-connection.c:1017,14'
          Dst:             dsasl_client_mech_find
        - Src:             'imapc-connection.c:1021,15'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:1027,8'
          Dst:             t_strarray_join
        - Src:             'imapc-connection.c:1026,13'
          Dst:             t_strdup_printf
    - functionName:    imapc_auth_failed
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - imapc_login_callback
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:196,3'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:199,3'
          Dst:             e_error
        - Src:             'imapc-connection.c:201,2'
          Dst:             imapc_login_callback
    - functionName:    imapc_connection_proxyauth_login_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_command_send_more
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_connection_auth_finish
        - imapc_connection_cmd
        - imapc_connection_login_cb
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:938,9'
          Dst:             imapc_connection_cmd
        - Src:             'imapc-connection.c:938,9'
          Dst:             imapc_connection_login_cb
        - Src:             'imapc-connection.c:940,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-connection.c:941,3'
          Dst:             imapc_command_sendf
        - Src:             'imapc-connection.c:942,3'
          Dst:             imapc_command_send_more
        - Src:             'imapc-connection.c:944,3'
          Dst:             imapc_connection_auth_finish
    - functionName:    imapc_command_sendf
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2475
      functionLinenumberEnd: 2481
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_command_sendvf
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2479,2'
          Dst:             imapc_command_sendvf
    - functionName:    need_literal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_login_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_auth_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:926,2'
          Dst:             imapc_connection_auth_finish
    - functionName:    imapc_connection_channel_bind_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ssl_iostream_get_channel_binding
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:1038,9'
          Dst:             ssl_iostream_get_channel_binding
    - functionName:    imapc_connection_authenticate_cb
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          152
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - base64_decode
        - base64_encode
        - buffer_create_dynamic
        - dsasl_client_free
        - dsasl_client_input
        - dsasl_client_output
        - imapc_auth_failed
        - imapc_connection_auth_finish
        - imapc_connection_disconnect
        - o_stream_nsend
        - o_stream_nsend_str
        - pool_datastack_create
        - str_append
        - str_data
        - str_len
        - strlen
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:959,3'
          Dst:             dsasl_client_free
        - Src:             'imapc-connection.c:960,3'
          Dst:             imapc_connection_auth_finish
        - Src:             'imapc-connection.c:964,14'
          Dst:             strlen
        - Src:             'imapc-connection.c:965,8'
          Dst:             pool_datastack_create
        - Src:             'imapc-connection.c:965,8'
          Dst:             buffer_create_dynamic
        - Src:             'imapc-connection.c:966,6'
          Dst:             base64_decode
        - Src:             'imapc-connection.c:968,7'
          Dst:             t_strdup_printf
        - Src:             'imapc-connection.c:967,3'
          Dst:             imapc_auth_failed
        - Src:             'imapc-connection.c:970,13'
          Dst:             dsasl_client_input
        - Src:             'imapc-connection.c:972,3'
          Dst:             imapc_auth_failed
        - Src:             'imapc-connection.c:973,13'
          Dst:             dsasl_client_output
        - Src:             'imapc-connection.c:975,3'
          Dst:             imapc_auth_failed
        - Src:             'imapc-connection.c:977,3'
          Dst:             o_stream_nsend_str
        - Src:             'imapc-connection.c:981,4'
          Dst:             t_str_new
        - Src:             'imapc-connection.c:982,3'
          Dst:             base64_encode
        - Src:             'imapc-connection.c:983,3'
          Dst:             str_append
        - Src:             'imapc-connection.c:984,32'
          Dst:             str_data
        - Src:             'imapc-connection.c:985,11'
          Dst:             str_len
        - Src:             'imapc-connection.c:984,3'
          Dst:             o_stream_nsend
        - Src:             'imapc-connection.c:988,2'
          Dst:             imapc_connection_disconnect
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    imapc_connection_auth_finish
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - i_panic
        - imapc_auth_failed
        - imapc_auth_ok
        - imapc_command_send_more
        - imapc_connection_disconnect
        - imapc_connection_send_enable_imap4rev2
        - imapc_connection_set_state
        - imapc_login_callback
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:903,3'
          Dst:             imapc_auth_failed
        - Src:             'imapc-connection.c:904,3'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:908,2'
          Dst:             imapc_auth_ok
        - Src:             'imapc-connection.c:910,2'
          Dst:             array_count_i
        - Src:             'imapc-connection.c:910,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:911,2'
          Dst:             timeout_remove
        - Src:             'imapc-connection.c:912,2'
          Dst:             imapc_connection_set_state
        - Src:             'imapc-connection.c:913,2'
          Dst:             imapc_login_callback
        - Src:             'imapc-connection.c:916,2'
          Dst:             imapc_connection_send_enable_imap4rev2
        - Src:             'imapc-connection.c:918,2'
          Dst:             imapc_command_send_more
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_auth_ok
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:180,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:180,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:180,2'
          Dst:             event_send_abort
    - functionName:    imapc_command_sendvf
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2485
      functionLinenumberEnd: 2552
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          354
      EdgeCount:       52
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - i_stream_get_size
        - i_stream_ref
        - i_unreached
        - imap_append_quoted
        - imapc_connection_cmd_send
        - need_literal
        - str_append
        - str_append_c
        - str_len
        - str_new
        - str_printfa
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-connection.c:2497,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-connection.c:2488,14'
          Dst:             str_new
        - Src:             'imapc-connection.c:2489,2'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2493,4'
          Dst:             str_append_c
        - Src:             'imapc-connection.c:2499,4'
          Dst:             i_unreached
        - Src:             'imapc-connection.c:2503,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2511,9'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:2512,5'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:2513,8'
          Dst:             i_stream_get_size
        - Src:             'imapc-connection.c:2515,4'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2516,8'
          Dst:             array_append_space_i
        - Src:             'imapc-connection.c:2517,13'
          Dst:             str_len
        - Src:             'imapc-connection.c:2520,4'
          Dst:             i_stream_ref
        - Src:             'imapc-connection.c:2526,9'
          Dst:             need_literal
        - Src:             'imapc-connection.c:2527,5'
          Dst:             imap_append_quoted
        - Src:             'imapc-connection.c:2531,10'
          Dst:             strlen
        - Src:             'imapc-connection.c:2530,5'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2534,10'
          Dst:             strlen
        - Src:             'imapc-connection.c:2533,5'
          Dst:             str_printfa
        - Src:             'imapc-connection.c:2543,4'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2544,4'
          Dst:             str_append
        - Src:             'imapc-connection.c:2549,2'
          Dst:             str_append
        - Src:             'imapc-connection.c:2551,2'
          Dst:             imapc_connection_cmd_send
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    imapc_connection_have_auth
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          96
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - str_begins_builtin_success
        - str_begins_icase
        - strcasecmp
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:998,7'
          Dst:             str_begins_icase
        - Src:             'imapc-connection.c:998,7'
          Dst:             strncasecmp
        - Src:             'imapc-connection.c:998,7'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-connection.c:999,7'
          Dst:             strcasecmp
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_connection_id_callback
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_command_begin
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2037
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2024,2'
          Dst:             i_panic
        - Src:             'imapc-connection.c:2026,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-connection.c:2027,8'
          Dst:             malloc_multiply_check
        - Src:             'imapc-connection.c:2027,8'
          Dst:             p_malloc
    - functionName:    imapc_connection_get_selected_mailbox_name
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2677
      functionLinenumberEnd: 2678
      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:    imapc_command_get_start_time
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2671
      functionLinenumberEnd: 2672
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_client_find_command_by_tag
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2647
      functionLinenumberEnd: 2668
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          229
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - i_memcpy
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2649,6'
          Dst:             str_to_uint
        - Src:             'imapc-connection.c:2656,2'
          Dst:             i_memcpy
        - Src:             'imapc-connection.c:2658,3'
          Dst:             i_memcpy
        - Src:             'imapc-connection.c:2662,3'
          Dst:             i_memcpy
    - functionName:    imapc_connection_get_event
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2641
      functionLinenumberEnd: 2642
      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:    imapc_connection_get_mailbox
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2608
      functionLinenumberEnd: 2612
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_cmd_has_imap4rev2
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2567
      functionLinenumberEnd: 2568
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_get_capabilities
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2562
      functionLinenumberEnd: 2563
      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:    imapc_connection_get_state
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2556
      functionLinenumberEnd: 2557
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_command_connection_is_selected
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2460
      functionLinenumberEnd: 2462
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_command_set_mailbox
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2455
      functionLinenumberEnd: 2457
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_cmd_remove
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2058
      functionLinenumberEnd: 2071
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_delete_i
        - array_get_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2059,6'
          Dst:             array_is_created_i
        - Src:             'imapc-connection.c:2063,39'
          Dst:             array_get_i
        - Src:             'imapc-connection.c:2066,4'
          Dst:             array_delete_i
    - functionName:    imapc_command_abort
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2074
      functionLinenumberEnd: 2085
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_cmd_remove
        - imapc_command_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2081,7'
          Dst:             imapc_cmd_remove
        - Src:             'imapc-connection.c:2082,9'
          Dst:             imapc_cmd_remove
        - Src:             'imapc-connection.c:2084,2'
          Dst:             imapc_command_free
    - functionName:    imapc_command_get_tag
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 2052
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:2053,9'
          Dst:             t_strdup_printf
    - functionName:    imapc_connection_set_no_reconnect
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_connection_ioloop_changed
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          153
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - dns_lookup_switch_ioloop
        - io_loop_move_io
        - io_loop_move_timeout
        - o_stream_switch_ioloop
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:279,14'
          Dst:             io_loop_move_io
        - Src:             'imapc-connection.c:281,14'
          Dst:             io_loop_move_timeout
        - Src:             'imapc-connection.c:283,23'
          Dst:             io_loop_move_timeout
        - Src:             'imapc-connection.c:285,30'
          Dst:             io_loop_move_timeout
        - Src:             'imapc-connection.c:287,3'
          Dst:             o_stream_switch_ioloop
        - Src:             'imapc-connection.c:289,3'
          Dst:             dns_lookup_switch_ioloop
        - Src:             'imapc-connection.c:295,21'
          Dst:             io_loop_move_timeout
    - functionName:    imapc_connection_deinit
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_connection_disconnect
        - imapc_connection_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:272,2'
          Dst:             imapc_connection_disconnect
        - Src:             'imapc-connection.c:273,2'
          Dst:             imapc_connection_unref
    - functionName:    imapc_connection_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          112
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - e_debug
        - event_create
        - event_send_abort
        - event_want_level
        - imapc_client_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-connection.c:218,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-connection.c:218,9'
          Dst:             p_malloc
        - Src:             'imapc-connection.c:219,16'
          Dst:             event_create
        - Src:             'imapc-connection.c:227,2'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:228,2'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:229,2'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:230,2'
          Dst:             array_create_i
        - Src:             'imapc-connection.c:232,2'
          Dst:             event_want_level
        - Src:             'imapc-connection.c:232,2'
          Dst:             e_debug
        - Src:             'imapc-connection.c:232,2'
          Dst:             event_send_abort
        - Src:             'imapc-connection.c:234,2'
          Dst:             imapc_client_ref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_find_lfile_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - imap_arg_get_list_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:548,7'
          Dst:             imap_arg_get_list_full
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    imapc_mail_set_failure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - p_strdup
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-mail-fetch.c:26,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-mail-fetch.c:24,27'
          Dst:             p_strdup
        - Src:             'imapc-mail-fetch.c:36,8'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:37,8'
          Dst:             strcasecmp
    - functionName:    str_insert
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_mail_try_merge_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          160
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
        - null_strcmp
        - str_begins
        - str_begins_builtin_success
        - str_c
        - str_insert
        - str_truncate
        - strchr
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:139,19'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:140,19'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:143,7'
          Dst:             str_begins
        - Src:             'imapc-mail-fetch.c:143,7'
          Dst:             strncmp
        - Src:             'imapc-mail-fetch.c:143,7'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-mail-fetch.c:144,3'
          Dst:             i_unreached
        - Src:             'imapc-mail-fetch.c:145,7'
          Dst:             str_begins
        - Src:             'imapc-mail-fetch.c:145,7'
          Dst:             strncmp
        - Src:             'imapc-mail-fetch.c:145,7'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-mail-fetch.c:146,3'
          Dst:             i_unreached
        - Src:             'imapc-mail-fetch.c:149,7'
          Dst:             strchr
        - Src:             'imapc-mail-fetch.c:150,7'
          Dst:             strchr
        - Src:             'imapc-mail-fetch.c:152,6'
          Dst:             null_strcmp
        - Src:             'imapc-mail-fetch.c:155,2'
          Dst:             str_truncate
        - Src:             'imapc-mail-fetch.c:156,2'
          Dst:             str_insert
        - Src:             'imapc-mail-fetch.c:157,47'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:157,2'
          Dst:             str_insert
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    4
      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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:    3
      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-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    3
      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:    imapc_mail_delayed_send_or_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          144
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - i_panic
        - imapc_mail_fetch_flush
        - imapc_mail_try_merge_fetch
        - malloc_multiply_check
        - p_malloc
        - str_append_str
        - timeout_add_short
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:167,7'
          Dst:             imapc_mail_try_merge_fetch
        - Src:             'imapc-mail-fetch.c:169,3'
          Dst:             imapc_mail_fetch_flush
        - Src:             'imapc-mail-fetch.c:173,4'
          Dst:             malloc_multiply_check
        - Src:             'imapc-mail-fetch.c:173,4'
          Dst:             p_malloc
        - Src:             'imapc-mail-fetch.c:174,3'
          Dst:             array_create_i
        - Src:             'imapc-mail-fetch.c:175,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:176,3'
          Dst:             str_append_str
        - Src:             'imapc-mail-fetch.c:178,2'
          Dst:             array_append_i
        - Src:             'imapc-mail-fetch.c:181,6'
          Dst:             array_count_i
        - Src:             'imapc-mail-fetch.c:194,4'
          Dst:             timeout_add_short
        - Src:             'imapc-mail-fetch.c:194,4'
          Dst:             imapc_mail_fetch_flush
    - functionName:    imapc_mail_fetch_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          138
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - i_memcpy
        - i_panic
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_mail_fetch_callback
        - str_c
        - str_truncate
        - timeout_remove
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:518,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:522,2'
          Dst:             i_memcpy
        - Src:             'imapc-mail-fetch.c:525,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-mail-fetch.c:525,8'
          Dst:             imapc_mail_fetch_callback
        - Src:             'imapc-mail-fetch.c:528,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-mail-fetch.c:529,2'
          Dst:             array_append_i
        - Src:             'imapc-mail-fetch.c:531,26'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:531,2'
          Dst:             imapc_command_send
        - Src:             'imapc-mail-fetch.c:534,2'
          Dst:             timeout_remove
        - Src:             'imapc-mail-fetch.c:535,2'
          Dst:             str_truncate
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_mail_fetch_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          238
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - array_delete_i
        - array_free_i
        - array_lsearch_ptr_idx_i
        - i_memcpy
        - i_panic
        - i_unreached
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_mail_set_failure
        - mail_storage_set_internal_error
        - mailbox_set_critical
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:63,2'
          Dst:             i_memcpy
        - Src:             'imapc-mail-fetch.c:64,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:65,3'
          Dst:             imapc_mail_set_failure
        - Src:             'imapc-mail-fetch.c:70,2'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:72,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'imapc-mail-fetch.c:73,3'
          Dst:             i_unreached
        - Src:             'imapc-mail-fetch.c:74,2'
          Dst:             array_delete_i
        - Src:             'imapc-mail-fetch.c:76,2'
          Dst:             array_free_i
        - Src:             'imapc-mail-fetch.c:77,2'
          Dst:             p_free_internal
        - Src:             'imapc-mail-fetch.c:82,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-mail-fetch.c:86,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-mail-fetch.c:88,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-mail-fetch.c:91,2'
          Dst:             imapc_client_stop
    - functionName:    headers_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          122
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - p_strdup
        - str_array_icase_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:117,2'
          Dst:             array_create_i
        - Src:             'imapc-mail-fetch.c:120,12'
          Dst:             p_strdup
        - Src:             'imapc-mail-fetch.c:121,4'
          Dst:             array_append_i
        - Src:             'imapc-mail-fetch.c:126,23'
          Dst:             str_array_icase_find
        - Src:             'imapc-mail-fetch.c:127,13'
          Dst:             p_strdup
        - Src:             'imapc-mail-fetch.c:128,5'
          Dst:             array_append_i
        - Src:             'imapc-mail-fetch.c:132,2'
          Dst:             array_append_space_i
        - Src:             'imapc-mail-fetch.c:133,9'
          Dst:             array_idx_i
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    headers_have_subset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - str_array_icase_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:103,9'
          Dst:             str_array_icase_find
    - functionName:    imapc_args_to_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - imap_arg_get_list
        - imap_bodystructure_parse_args
        - imap_bodystructure_write
        - imap_write_args
        - mail_set_critical
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:799,7'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mail-fetch.c:800,3'
          Dst:             mail_set_critical
        - Src:             'imapc-mail-fetch.c:805,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-mail-fetch.c:806,6'
          Dst:             imap_bodystructure_parse_args
        - Src:             'imapc-mail-fetch.c:807,3'
          Dst:             mail_set_critical
        - Src:             'imapc-mail-fetch.c:811,19'
          Dst:             t_str_new
        - Src:             'imapc-mail-fetch.c:812,7'
          Dst:             imap_bodystructure_write
        - Src:             'imapc-mail-fetch.c:818,4'
          Dst:             str_truncate
        - Src:             'imapc-mail-fetch.c:819,4'
          Dst:             imap_write_args
        - Src:             'imapc-mail-fetch.c:821,39'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:820,4'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:823,46'
          Dst:             str_c
        - Src:             'imapc-mail-fetch.c:823,9'
          Dst:             p_strdup
        - Src:             'imapc-mail-fetch.c:825,2'
          Dst:             pool_unref
    - functionName:    imapc_fetch_header_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          216
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - headers_have_subset
        - i_panic
        - i_stream_create_fd
        - i_stream_create_from_data
        - i_stream_destroy
        - imap_arg_atom_equals
        - imap_arg_get_astring
        - imap_arg_get_list
        - imap_arg_get_nstring
        - imapc_find_lfile_arg
        - index_mail_parse_header
        - index_mail_parse_header_init
        - mail_set_expunged
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:740,7'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mail-fetch.c:742,7'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-mail-fetch.c:748,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-mail-fetch.c:748,2'
          Dst:             array_create_i
        - Src:             'imapc-mail-fetch.c:749,9'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-mail-fetch.c:750,3'
          Dst:             array_append_i
        - Src:             'imapc-mail-fetch.c:755,2'
          Dst:             array_append_space_i
        - Src:             'imapc-mail-fetch.c:757,26'
          Dst:             array_idx_i
        - Src:             'imapc-mail-fetch.c:757,6'
          Dst:             headers_have_subset
        - Src:             'imapc-mail-fetch.c:761,8'
          Dst:             imapc_find_lfile_arg
        - Src:             'imapc-mail-fetch.c:763,11'
          Dst:             i_stream_create_fd
        - Src:             'imapc-mail-fetch.c:765,8'
          Dst:             imap_arg_get_nstring
        - Src:             'imapc-mail-fetch.c:768,4'
          Dst:             mail_set_expunged
        - Src:             'imapc-mail-fetch.c:771,11'
          Dst:             i_stream_create_from_data
        - Src:             'imapc-mail-fetch.c:775,8'
          Dst:             array_idx_i
        - Src:             'imapc-mail-fetch.c:774,16'
          Dst:             mailbox_header_lookup_init
        - Src:             'imapc-mail-fetch.c:776,2'
          Dst:             index_mail_parse_header_init
        - Src:             'imapc-mail-fetch.c:778,11'
          Dst:             message_parse_header_init
        - Src:             'imapc-mail-fetch.c:779,16'
          Dst:             message_parse_header_next
        - Src:             'imapc-mail-fetch.c:779,62'
          Dst:             t_push
        - Src:             'imapc-mail-fetch.c:780,3'
          Dst:             index_mail_parse_header
        - Src:             'imapc-mail-fetch.c:781,4'
          Dst:             t_pop
        - Src:             'imapc-mail-fetch.c:781,4'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:782,2'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:783,2'
          Dst:             index_mail_parse_header
        - Src:             'imapc-mail-fetch.c:784,2'
          Dst:             message_parse_header_deinit
        - Src:             'imapc-mail-fetch.c:786,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'imapc-mail-fetch.c:787,2'
          Dst:             i_stream_destroy
    - functionName:    imapc_fetch_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          373
      EdgeCount:       79
      CyclomaticComplexity: 21
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_set_used_size
        - dup
        - e_error
        - i_close_fd_path
        - i_panic
        - i_stream_create_concat
        - i_stream_create_fd
        - i_stream_create_fd_autoclose
        - i_stream_create_from_data
        - i_stream_ref
        - i_stream_unref
        - imap_arg_get_nstring
        - imapc_find_lfile_arg
        - imapc_mail_init_stream
        - index_mail_close_streams
        - lseek
        - mail_set_expunged
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:641,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:650,4'
          Dst:             i_stream_ref
        - Src:             'imapc-mail-fetch.c:655,8'
          Dst:             lseek
        - Src:             'imapc-mail-fetch.c:656,5'
          Dst:             e_error
        - Src:             'imapc-mail-fetch.c:657,17'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'imapc-mail-fetch.c:659,3'
          Dst:             index_mail_close_streams
        - Src:             'imapc-mail-fetch.c:660,3'
          Dst:             i_close_fd_path
        - Src:             'imapc-mail-fetch.c:670,8'
          Dst:             imapc_find_lfile_arg
        - Src:             'imapc-mail-fetch.c:671,4'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:674,13'
          Dst:             dup
        - Src:             'imapc-mail-fetch.c:675,4'
          Dst:             e_error
        - Src:             'imapc-mail-fetch.c:676,4'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:680,24'
          Dst:             i_stream_create_fd
        - Src:             'imapc-mail-fetch.c:682,8'
          Dst:             imap_arg_get_nstring
        - Src:             'imapc-mail-fetch.c:687,4'
          Dst:             mail_set_expunged
        - Src:             'imapc-mail-fetch.c:688,4'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:692,17'
          Dst:             buffer_create_dynamic
        - Src:             'imapc-mail-fetch.c:697,4'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:699,4'
          Dst:             buffer_set_used_size
        - Src:             'imapc-mail-fetch.c:701,3'
          Dst:             buffer_append
        - Src:             'imapc-mail-fetch.c:702,24'
          Dst:             i_stream_create_from_data
        - Src:             'imapc-mail-fetch.c:715,24'
          Dst:             i_stream_create_concat
        - Src:             'imapc-mail-fetch.c:716,3'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:717,3'
          Dst:             i_stream_unref
        - Src:             'imapc-mail-fetch.c:720,2'
          Dst:             imapc_mail_init_stream
    - functionName:    dup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_mail_init_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          225
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_get_size
        - i_stream_set_name
        - imapc_stream_filter
        - index_mail_close_streams
        - index_mail_init_stream
        - index_mail_set_read_buffer_size
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:584,6'
          Dst:             t_strdup_printf
        - Src:             'imapc-mail-fetch.c:583,2'
          Dst:             i_stream_set_name
        - Src:             'imapc-mail-fetch.c:585,2'
          Dst:             index_mail_set_read_buffer_size
        - Src:             'imapc-mail-fetch.c:590,3'
          Dst:             imapc_stream_filter
        - Src:             'imapc-mail-fetch.c:595,4'
          Dst:             index_mail_close_streams
        - Src:             'imapc-mail-fetch.c:599,8'
          Dst:             i_stream_get_size
        - Src:             'imapc-mail-fetch.c:601,3'
          Dst:             index_mail_close_streams
        - Src:             'imapc-mail-fetch.c:604,2'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:623,6'
          Dst:             index_mail_init_stream
        - Src:             'imapc-mail-fetch.c:624,3'
          Dst:             index_mail_close_streams
    - functionName:    imapc_stream_filter
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_header_filter
        - i_stream_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:566,17'
          Dst:             i_stream_create_header_filter
        - Src:             'imapc-mail-fetch.c:570,2'
          Dst:             i_stream_unref
    - functionName:    imapc_mail_fetch_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          480
      EdgeCount:       109
      CyclomaticComplexity: 29
      functionsReached:
        - imap_arg_get_astring
        - imap_arg_get_atom
        - imap_parse_datetime
        - imapc_args_to_bodystructure
        - imapc_client_stop
        - imapc_fetch_header_stream
        - imapc_fetch_stream
        - p_strdup
        - str_to_uoff
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:842,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mail-fetch.c:846,7'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:847,4'
          Dst:             imapc_fetch_stream
        - Src:             'imapc-mail-fetch.c:849,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:850,4'
          Dst:             imapc_fetch_stream
        - Src:             'imapc-mail-fetch.c:852,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:853,4'
          Dst:             imapc_fetch_stream
        - Src:             'imapc-mail-fetch.c:855,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:856,4'
          Dst:             imapc_fetch_header_stream
        - Src:             'imapc-mail-fetch.c:858,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:859,8'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-mail-fetch.c:860,8'
          Dst:             imap_parse_datetime
        - Src:             'imapc-mail-fetch.c:867,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:868,8'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-mail-fetch.c:869,9'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:871,14'
          Dst:             imap_parse_datetime
        - Src:             'imapc-mail-fetch.c:875,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:878,6'
          Dst:             imapc_args_to_bodystructure
        - Src:             'imapc-mail-fetch.c:881,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:884,6'
          Dst:             imapc_args_to_bodystructure
        - Src:             'imapc-mail-fetch.c:887,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:888,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mail-fetch.c:889,8'
          Dst:             str_to_uoff
        - Src:             'imapc-mail-fetch.c:896,14'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:897,7'
          Dst:             strcasecmp
        - Src:             'imapc-mail-fetch.c:898,8'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-mail-fetch.c:900,6'
          Dst:             p_strdup
        - Src:             'imapc-mail-fetch.c:908,3'
          Dst:             imapc_client_stop
    - functionName:    imapc_mail_have_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          269
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:431,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:463,2'
          Dst:             i_panic
    - functionName:    imapc_mail_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          190
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - imapc_mail_fetch_flush
        - imapc_mail_get_wanted_fetch_fields
        - imapc_mail_have_fields
        - imapc_mail_send_fetch
        - imapc_mailbox_run_nofetch
        - mail_storage_set_error
        - mail_storage_set_internal_error
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:476,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-mail-fetch.c:482,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-mail-fetch.c:488,12'
          Dst:             imapc_mail_get_wanted_fetch_fields
        - Src:             'imapc-mail-fetch.c:489,2'
          Dst:             t_push
        - Src:             'imapc-mail-fetch.c:490,9'
          Dst:             imapc_mail_send_fetch
        - Src:             'imapc-mail-fetch.c:491,4'
          Dst:             t_pop
        - Src:             'imapc-mail-fetch.c:491,4'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:499,3'
          Dst:             imapc_mail_fetch_flush
        - Src:             'imapc-mail-fetch.c:501,11'
          Dst:             imapc_mail_have_fields
        - Src:             'imapc-mail-fetch.c:503,3'
          Dst:             imapc_mailbox_run_nofetch
        - Src:             'imapc-mail-fetch.c:506,3'
          Dst:             mail_storage_set_internal_error
    - functionName:    imapc_mail_get_wanted_fetch_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          300
      EdgeCount:       69
      CyclomaticComplexity: 21
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_mail_send_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          561
      EdgeCount:       116
      CyclomaticComplexity: 28
      functionsReached:
        - headers_have_subset
        - headers_merge
        - i_panic
        - imap_append_astring
        - imapc_mail_delayed_send_or_merge
        - imapc_mailbox_select
        - mail_index_is_expunged
        - mail_index_lookup_seq
        - mail_set_expunged
        - mail_storage_set_error
        - mail_stream_access_start
        - str_append
        - str_append_c
        - str_len
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:209,2'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:213,3'
          Dst:             mail_storage_set_error
        - Src:             'imapc-mail-fetch.c:218,7'
          Dst:             mail_stream_access_start
        - Src:             'imapc-mail-fetch.c:223,6'
          Dst:             headers_have_subset
        - Src:             'imapc-mail-fetch.c:233,8'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mail-fetch.c:234,7'
          Dst:             mail_index_is_expunged
        - Src:             'imapc-mail-fetch.c:235,4'
          Dst:             mail_set_expunged
        - Src:             'imapc-mail-fetch.c:241,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:243,7'
          Dst:             imapc_mailbox_select
        - Src:             'imapc-mail-fetch.c:250,8'
          Dst:             t_str_new
        - Src:             'imapc-mail-fetch.c:251,2'
          Dst:             str_printfa
        - Src:             'imapc-mail-fetch.c:253,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:255,3'
          Dst:             i_panic
        - Src:             'imapc-mail-fetch.c:257,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:260,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:262,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:263,3'
          Dst:             str_append_c
        - Src:             'imapc-mail-fetch.c:266,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:268,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:272,4'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:279,4'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:283,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:286,4'
          Dst:             headers_merge
        - Src:             'imapc-mail-fetch.c:288,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:291,5'
          Dst:             str_append_c
        - Src:             'imapc-mail-fetch.c:292,4'
          Dst:             imap_append_astring
        - Src:             'imapc-mail-fetch.c:294,3'
          Dst:             str_append
        - Src:             'imapc-mail-fetch.c:297,20'
          Dst:             str_len
        - Src:             'imapc-mail-fetch.c:297,2'
          Dst:             str_truncate
        - Src:             'imapc-mail-fetch.c:298,2'
          Dst:             str_append_c
        - Src:             'imapc-mail-fetch.c:305,2'
          Dst:             imapc_mail_delayed_send_or_merge
    - functionName:    imapc_mail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          199
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - imapc_mail_get_wanted_fetch_fields
        - imapc_mail_has_headers_in_cache
        - imapc_mail_send_fetch
        - imapc_mail_try_init_stream_from_cache
        - imapc_mail_update_access_parts
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:396,2'
          Dst:             imapc_mail_update_access_parts
        - Src:             'imapc-mail-fetch.c:401,3'
          Dst:             imapc_mail_try_init_stream_from_cache
        - Src:             'imapc-mail-fetch.c:403,11'
          Dst:             imapc_mail_get_wanted_fetch_fields
        - Src:             'imapc-mail-fetch.c:406,7'
          Dst:             imapc_mail_has_headers_in_cache
        - Src:             'imapc-mail-fetch.c:413,38'
          Dst:             t_push
        - Src:             'imapc-mail-fetch.c:414,7'
          Dst:             imapc_mail_send_fetch
        - Src:             'imapc-mail-fetch.c:416,4'
          Dst:             t_pop
        - Src:             'imapc-mail-fetch.c:416,4'
          Dst:             i_panic
    - functionName:    imapc_mail_try_init_stream_from_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_mail_cache_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:384,3'
          Dst:             imapc_mail_cache_get
    - functionName:    imapc_mail_cache_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          111
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_create_fd
        - i_stream_create_from_data
        - imapc_mail_init_stream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail-fetch.c:317,29'
          Dst:             i_stream_create_fd
        - Src:             'imapc-mail-fetch.c:322,4'
          Dst:             i_stream_create_from_data
        - Src:             'imapc-mail-fetch.c:333,2'
          Dst:             imapc_mail_init_stream
    - functionName:    imapc_mail_get_hdr_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          124
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - binary_to_hex
        - i_panic
        - i_stream_create_limit
        - i_stream_read_more
        - i_stream_seek
        - i_stream_skip
        - i_stream_unref
        - mail_get_hdr_stream
        - p_strdup
        - sha1_init
        - sha1_loop
        - sha1_result_libmysqlclient_craps_all_over
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:498,2'
          Dst:             sha1_init
        - Src:             'imapc-mail.c:501,6'
          Dst:             mail_get_hdr_stream
        - Src:             'imapc-mail.c:503,2'
          Dst:             i_panic
        - Src:             'imapc-mail.c:505,10'
          Dst:             i_stream_create_limit
        - Src:             'imapc-mail.c:506,9'
          Dst:             i_stream_read_more
        - Src:             'imapc-mail.c:507,3'
          Dst:             sha1_loop
        - Src:             'imapc-mail.c:508,3'
          Dst:             i_stream_skip
        - Src:             'imapc-mail.c:510,2'
          Dst:             i_stream_unref
        - Src:             'imapc-mail.c:511,2'
          Dst:             i_stream_seek
        - Src:             'imapc-mail.c:512,2'
          Dst:             sha1_result_libmysqlclient_craps_all_over
        - Src:             'imapc-mail.c:514,13'
          Dst:             binary_to_hex
        - Src:             'imapc-mail.c:515,21'
          Dst:             p_strdup
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    imapc_mail_get_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          122
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_mail_failed
        - imapc_mail_fetch
        - imapc_mail_get_cached_guid
        - imapc_mail_get_hdr_hash
        - index_mail_cache_add_idx
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:552,6'
          Dst:             imapc_mail_get_cached_guid
        - Src:             'imapc-mail.c:559,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:562,10'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:567,7'
          Dst:             imapc_mail_get_hdr_hash
        - Src:             'imapc-mail.c:572,24'
          Dst:             strlen
        - Src:             'imapc-mail.c:571,2'
          Dst:             index_mail_cache_add_idx
    - functionName:    imapc_mail_get_cached_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          108
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_cache_add_idx
        - mail_cache_field_can_add
        - mail_cache_lookup_field
        - str_c
        - str_new
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:527,7'
          Dst:             mail_cache_field_can_add
        - Src:             'imapc-mail.c:531,23'
          Dst:             strlen
        - Src:             'imapc-mail.c:530,4'
          Dst:             index_mail_cache_add_idx
        - Src:             'imapc-mail.c:536,8'
          Dst:             str_new
        - Src:             'imapc-mail.c:537,6'
          Dst:             mail_cache_lookup_field
        - Src:             'imapc-mail.c:539,22'
          Dst:             str_c
    - functionName:    imapc_mail_failed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_client_mailbox_is_opened
        - imapc_mail_is_expunged
        - mail_set_critical
        - mail_set_expunged
        - mail_storage_set_internal_error
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:71,24'
          Dst:             imapc_mail_is_expunged
        - Src:             'imapc-mail.c:72,3'
          Dst:             mail_set_expunged
        - Src:             'imapc-mail.c:73,14'
          Dst:             imapc_client_mailbox_is_opened
        - Src:             'imapc-mail.c:75,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-mail.c:89,3'
          Dst:             mail_set_critical
    - functionName:    imapc_mail_is_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_client_mailbox_get_msgmap
        - imapc_mailbox_noop
        - imapc_msgmap_uid_to_rseq
        - mail_index_lookup_seq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:45,8'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mail.c:50,11'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-mail.c:51,7'
          Dst:             imapc_msgmap_uid_to_rseq
        - Src:             'imapc-mail.c:56,2'
          Dst:             imapc_mailbox_noop
        - Src:             'imapc-mail.c:62,10'
          Dst:             imapc_msgmap_uid_to_rseq
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imapc_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          253
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - imapc_mail_failed
        - imapc_mail_fetch
        - imapc_mail_get_guid
        - index_mail_get_cached_body
        - index_mail_get_cached_bodystructure
        - index_mail_get_special
        - mail_set_critical
        - p_strdup_printf
        - str_to_uint64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'imapc-mail.c:585,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-mail.c:593,10'
          Dst:             imapc_mail_get_guid
        - Src:             'imapc-mail.c:597,7'
          Dst:             imapc_mail_get_guid
        - Src:             'imapc-mail.c:599,7'
          Dst:             str_to_uint64
        - Src:             'imapc-mail.c:600,4'
          Dst:             mail_set_critical
        - Src:             'imapc-mail.c:605,14'
          Dst:             p_strdup_printf
        - Src:             'imapc-mail.c:612,7'
          Dst:             index_mail_get_cached_body
        - Src:             'imapc-mail.c:614,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:617,10'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:626,7'
          Dst:             index_mail_get_cached_bodystructure
        - Src:             'imapc-mail.c:628,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:631,10'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:640,9'
          Dst:             index_mail_get_special
    - functionName:    imapc_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          203
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_create_from_data
        - imapc_mail_failed
        - imapc_mail_fetch
        - imapc_mail_init_stream
        - imapc_mail_try_init_stream_from_cache
        - index_mail_close_streams
        - index_mail_init_stream
        - mail_set_aborted
        - mail_set_expunged
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:311,3'
          Dst:             index_mail_close_streams
        - Src:             'imapc-mail.c:320,2'
          Dst:             imapc_mail_try_init_stream_from_cache
        - Src:             'imapc-mail.c:325,4'
          Dst:             mail_set_aborted
        - Src:             'imapc-mail.c:331,4'
          Dst:             mail_set_expunged
        - Src:             'imapc-mail.c:337,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:341,8'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:343,4'
          Dst:             i_panic
        - Src:             'imapc-mail.c:347,19'
          Dst:             i_stream_create_from_data
        - Src:             'imapc-mail.c:348,4'
          Dst:             imapc_mail_init_stream
        - Src:             'imapc-mail.c:352,9'
          Dst:             index_mail_init_stream
    - functionName:    imapc_mail_get_header_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          113
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_mail_fetch
        - index_mail_get_header_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:243,10'
          Dst:             index_mail_get_header_stream
        - Src:             'imapc-mail.c:248,8'
          Dst:             index_mail_get_header_stream
        - Src:             'imapc-mail.c:254,6'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:257,9'
          Dst:             index_mail_get_header_stream
    - functionName:    imapc_mail_get_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_read_more
        - i_stream_skip
        - index_mail_get_headers
        - mail_get_header_stream
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:273,12'
          Dst:             mailbox_header_lookup_init
        - Src:             'imapc-mail.c:274,8'
          Dst:             mail_get_header_stream
        - Src:             'imapc-mail.c:275,2'
          Dst:             mailbox_header_lookup_unref
        - Src:             'imapc-mail.c:279,9'
          Dst:             i_stream_read_more
        - Src:             'imapc-mail.c:280,3'
          Dst:             i_stream_skip
        - Src:             'imapc-mail.c:282,9'
          Dst:             index_mail_get_headers
    - functionName:    imapc_mail_get_first_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_mail_get_headers
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:292,8'
          Dst:             imapc_mail_get_headers
    - functionName:    imapc_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          239
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_get_size
        - i_stream_seek
        - imapc_mail_failed
        - imapc_mail_fetch
        - index_mail_get_physical_size
        - mail_get_stream
        - mail_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:177,9'
          Dst:             index_mail_get_physical_size
        - Src:             'imapc-mail.c:188,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:191,8'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:202,6'
          Dst:             mail_get_stream
        - Src:             'imapc-mail.c:204,2'
          Dst:             i_panic
        - Src:             'imapc-mail.c:205,2'
          Dst:             i_stream_seek
        - Src:             'imapc-mail.c:207,8'
          Dst:             i_stream_get_size
        - Src:             'imapc-mail.c:210,3'
          Dst:             i_panic
        - Src:             'imapc-mail.c:212,7'
          Dst:             i_stream_get_name
        - Src:             'imapc-mail.c:211,3'
          Dst:             mail_set_critical
    - functionName:    imapc_mail_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_mail_get_physical_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:224,6'
          Dst:             imapc_mail_get_physical_size
    - functionName:    imapc_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          164
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - imapc_mail_failed
        - imapc_mail_fetch
        - imapc_mail_get_received_date
        - index_mail_get_save_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:146,30'
          Dst:             index_mail_get_save_date
        - Src:             'imapc-mail.c:152,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:155,7'
          Dst:             imapc_mail_failed
        - Src:             'imapc-mail.c:159,7'
          Dst:             imapc_mail_get_received_date
    - functionName:    imapc_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_mail_failed
        - imapc_mail_fetch
        - index_mail_get_received_date
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:122,6'
          Dst:             index_mail_get_received_date
        - Src:             'imapc-mail.c:126,7'
          Dst:             imapc_mail_fetch
        - Src:             'imapc-mail.c:129,8'
          Dst:             imapc_mail_failed
    - functionName:    imapc_mail_get_modseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - imapc_client_mailbox_get_msgmap
        - imapc_mailbox_has_modseqs
        - imapc_msgmap_uid_to_rseq
        - index_mail_get_modseq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:105,7'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-mail.c:106,10'
          Dst:             index_mail_get_modseq
        - Src:             'imapc-mail.c:108,11'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-mail.c:109,6'
          Dst:             imapc_msgmap_uid_to_rseq
        - Src:             'imapc-mail.c:110,13'
          Dst:             array_get_i
    - functionName:    imapc_mail_add_temp_wanted_fields
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_mail_update_access_parts
        - index_mail_add_temp_wanted_fields
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:448,2'
          Dst:             index_mail_add_temp_wanted_fields
        - Src:             'imapc-mail.c:450,3'
          Dst:             imapc_mail_update_access_parts
    - functionName:    imapc_mail_update_access_parts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          304
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - imapc_mail_get_cached_guid
        - imapc_mail_has_headers_in_cache
        - index_mail_get_cached_body
        - index_mail_get_cached_bodystructure
        - index_mail_get_physical_size
        - index_mail_get_received_date
        - index_mail_get_save_date
        - mailbox_header_lookup_init
        - mailbox_header_lookup_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:381,9'
          Dst:             index_mail_get_received_date
        - Src:             'imapc-mail.c:383,7'
          Dst:             index_mail_get_save_date
        - Src:             'imapc-mail.c:386,10'
          Dst:             index_mail_get_received_date
        - Src:             'imapc-mail.c:392,7'
          Dst:             index_mail_get_physical_size
        - Src:             'imapc-mail.c:397,9'
          Dst:             imapc_mail_get_cached_guid
        - Src:             'imapc-mail.c:399,9'
          Dst:             index_mail_get_cached_body
        - Src:             'imapc-mail.c:401,9'
          Dst:             index_mail_get_cached_bodystructure
        - Src:             'imapc-mail.c:406,8'
          Dst:             imapc_mail_has_headers_in_cache
        - Src:             'imapc-mail.c:414,16'
          Dst:             mailbox_header_lookup_init
        - Src:             'imapc-mail.c:416,8'
          Dst:             imapc_mail_has_headers_in_cache
        - Src:             'imapc-mail.c:418,3'
          Dst:             mailbox_header_lookup_unref
    - functionName:    imapc_mail_has_headers_in_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_field_exists
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:363,7'
          Dst:             mail_cache_field_exists
    - functionName:    imapc_mail_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_mail_prefetch
        - index_mail_set_seq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:428,2'
          Dst:             index_mail_set_seq
        - Src:             'imapc-mail.c:438,9'
          Dst:             imapc_mail_prefetch
    - functionName:    imapc_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_free
        - i_close_fd_path
        - i_panic
        - imapc_mail_cache_free
        - imapc_mail_fetch_flush
        - imapc_mailbox_run_nofetch
        - index_mail_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:460,3'
          Dst:             imapc_mail_fetch_flush
        - Src:             'imapc-mail.c:462,4'
          Dst:             imapc_mailbox_run_nofetch
        - Src:             'imapc-mail.c:465,2'
          Dst:             index_mail_close
        - Src:             'imapc-mail.c:469,3'
          Dst:             imapc_mail_cache_free
        - Src:             'imapc-mail.c:479,2'
          Dst:             i_close_fd_path
        - Src:             'imapc-mail.c:480,2'
          Dst:             buffer_free
        - Src:             'imapc-mail.c:484,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mail.c:24,9'
          Dst:             pool_alloconly_create
        - Src:             'imapc-mail.c:25,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-mail.c:25,9'
          Dst:             p_malloc
        - Src:             'imapc-mail.c:28,2'
          Dst:             index_mail_init
    - functionName:    imapc_sync_uid_validity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_mailbox_commit_delayed_trans
        - imapc_mailbox_init_delayed_trans
        - mail_index_get_header
        - mail_index_mark_corrupted
        - mail_index_reset
        - mail_index_update_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:886,2'
          Dst:             imapc_mailbox_init_delayed_trans
        - Src:             'imapc-mailbox.c:887,8'
          Dst:             mail_index_get_header
        - Src:             'imapc-mailbox.c:892,4'
          Dst:             mail_index_reset
        - Src:             'imapc-mailbox.c:897,8'
          Dst:             imapc_mailbox_commit_delayed_trans
        - Src:             'imapc-mailbox.c:898,5'
          Dst:             mail_index_mark_corrupted
        - Src:             'imapc-mailbox.c:899,4'
          Dst:             imapc_mailbox_init_delayed_trans
        - Src:             'imapc-mailbox.c:901,3'
          Dst:             mail_index_update_header
    - functionName:    imapc_mailbox_init_delayed_trans
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imapc_mailbox_get_sync_view
        - mail_cache_get_transaction
        - mail_cache_view_open
        - mail_index_transaction_begin
        - mail_index_transaction_open_updated_view
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:56,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:57,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:60,32'
          Dst:             imapc_mailbox_get_sync_view
        - Src:             'imapc-mailbox.c:60,3'
          Dst:             mail_index_transaction_begin
        - Src:             'imapc-mailbox.c:63,3'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'imapc-mailbox.c:66,3'
          Dst:             mail_cache_view_open
        - Src:             'imapc-mailbox.c:68,3'
          Dst:             mail_cache_get_transaction
    - functionName:    imapc_mailbox_commit_delayed_trans
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          189
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - i_panic
        - imapc_mailbox_commit_delayed_expunges
        - mail_cache_view_close
        - mail_index_transaction_commit
        - mail_index_transaction_rollback
        - mail_index_view_close
        - mailbox_set_index_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:103,2'
          Dst:             mail_index_view_close
        - Src:             'imapc-mailbox.c:108,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'imapc-mailbox.c:110,7'
          Dst:             mail_index_transaction_commit
        - Src:             'imapc-mailbox.c:111,4'
          Dst:             mailbox_set_index_error
        - Src:             'imapc-mailbox.c:118,3'
          Dst:             mail_cache_view_close
        - Src:             'imapc-mailbox.c:120,6'
          Dst:             array_count_i
        - Src:             'imapc-mailbox.c:124,3'
          Dst:             mail_index_view_close
        - Src:             'imapc-mailbox.c:125,7'
          Dst:             imapc_mailbox_commit_delayed_expunges
        - Src:             'imapc-mailbox.c:129,2'
          Dst:             mail_index_view_close
        - Src:             'imapc-mailbox.c:130,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:131,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:132,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_mailbox_commit_delayed_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - imapc_mailbox_get_sync_view
        - mail_index_expunge
        - mail_index_lookup_seq
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mailbox_set_index_error
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:74,33'
          Dst:             imapc_mailbox_get_sync_view
        - Src:             'imapc-mailbox.c:81,10'
          Dst:             mail_index_transaction_begin
        - Src:             'imapc-mailbox.c:84,2'
          Dst:             seq_range_array_iter_init
        - Src:             'imapc-mailbox.c:85,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'imapc-mailbox.c:86,7'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mailbox.c:87,4'
          Dst:             mail_index_expunge
        - Src:             'imapc-mailbox.c:89,2'
          Dst:             array_clear_i
        - Src:             'imapc-mailbox.c:90,8'
          Dst:             mail_index_transaction_commit
        - Src:             'imapc-mailbox.c:92,3'
          Dst:             mailbox_set_index_error
    - functionName:    imapc_mailbox_get_sync_view
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_view_open
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:47,21'
          Dst:             mail_index_view_open
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_untagged_esearch_gmail_pop3
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          157
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_create_i
        - e_error
        - imap_arg_atom_equals
        - imap_arg_get_atom
        - imap_seq_set_nostar_parse
        - imapc_client_mailbox_get_msgmap
        - imapc_msgmap_count
        - imapc_msgmap_rseq_to_uid
        - mail_index_keyword_lookup_or_create
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_lookup_seq
        - mail_index_update_keywords
        - p_free_internal
        - pool_datastack_create
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:788,2'
          Dst:             p_free_internal
        - Src:             'imapc-mailbox.c:793,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-mailbox.c:793,2'
          Dst:             array_create_i
        - Src:             'imapc-mailbox.c:794,7'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-mailbox.c:795,7'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:796,6'
          Dst:             imap_seq_set_nostar_parse
        - Src:             'imapc-mailbox.c:797,3'
          Dst:             e_error
        - Src:             'imapc-mailbox.c:801,2'
          Dst:             mail_index_keyword_lookup_or_create
        - Src:             'imapc-mailbox.c:804,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-mailbox.c:804,2'
          Dst:             array_create_i
        - Src:             'imapc-mailbox.c:805,2'
          Dst:             array_append_i
        - Src:             'imapc-mailbox.c:806,7'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'imapc-mailbox.c:808,11'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-mailbox.c:809,2'
          Dst:             seq_range_array_iter_init
        - Src:             'imapc-mailbox.c:810,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'imapc-mailbox.c:811,14'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-mailbox.c:815,9'
          Dst:             imapc_msgmap_rseq_to_uid
        - Src:             'imapc-mailbox.c:816,8'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mailbox.c:821,3'
          Dst:             mail_index_update_keywords
        - Src:             'imapc-mailbox.c:824,2'
          Dst:             mail_index_keywords_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    4
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    imapc_mailbox_msgmap_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          363
      EdgeCount:       80
      CyclomaticComplexity: 23
      functionsReached:
        - imapc_client_mailbox_get_msgmap
        - imapc_mailbox_set_corrupted
        - imapc_msgmap_append
        - imapc_msgmap_count
        - imapc_msgmap_rseq_to_uid
        - imapc_msgmap_uid_to_rseq
        - imapc_msgmap_uidnext
        - mail_index_append
        - mail_index_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:384,3'
          Dst:             imapc_mailbox_set_corrupted
        - Src:             'imapc-mailbox.c:392,11'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-mailbox.c:393,14'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-mailbox.c:404,7'
          Dst:             imapc_msgmap_uid_to_rseq
        - Src:             'imapc-mailbox.c:406,25'
          Dst:             imapc_msgmap_uidnext
        - Src:             'imapc-mailbox.c:417,9'
          Dst:             imapc_msgmap_rseq_to_uid
        - Src:             'imapc-mailbox.c:419,4'
          Dst:             imapc_mailbox_set_corrupted
        - Src:             'imapc-mailbox.c:432,7'
          Dst:             imapc_msgmap_uid_to_rseq
        - Src:             'imapc-mailbox.c:433,4'
          Dst:             imapc_mailbox_set_corrupted
        - Src:             'imapc-mailbox.c:442,25'
          Dst:             imapc_msgmap_uidnext
        - Src:             'imapc-mailbox.c:446,15'
          Dst:             imapc_msgmap_uidnext
        - Src:             'imapc-mailbox.c:443,3'
          Dst:             imapc_mailbox_set_corrupted
        - Src:             'imapc-mailbox.c:450,3'
          Dst:             imapc_msgmap_append
        - Src:             'imapc-mailbox.c:452,13'
          Dst:             mail_index_get_header
        - Src:             'imapc-mailbox.c:457,4'
          Dst:             mail_index_append
    - functionName:    imapc_mailbox_set_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_reconnect
        - mail_index_mark_corrupted
        - mail_storage_set_internal_error
        - t_strdup_printf
        - t_strdup_vprintf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:27,19'
          Dst:             t_strdup_vprintf
        - Src:             'imapc-mailbox.c:26,11'
          Dst:             t_strdup_printf
        - Src:             'imapc-mailbox.c:30,2'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-mailbox.c:35,3'
          Dst:             mail_index_mark_corrupted
        - Src:             'imapc-mailbox.c:40,2'
          Dst:             imapc_client_mailbox_reconnect
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_untagged_fetch_handle
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          327
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - array_idx_set_i
        - i_panic
        - imapc_mailbox_index_expunge
        - imapc_mailbox_init_delayed_trans
        - imapc_mailbox_msgmap_update
        - imapc_untagged_fetch_update_flags
        - mail_cache_add
        - mail_cache_field_can_add
        - mail_index_lookup_seq
        - mail_index_lookup_uid
        - mail_index_modseq_lookup
        - mail_index_update_modseq
        - module_context_get_require
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:554,2'
          Dst:             imapc_mailbox_init_delayed_trans
        - Src:             'imapc-mailbox.c:555,6'
          Dst:             imapc_mailbox_msgmap_update
        - Src:             'imapc-mailbox.c:569,8'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mailbox.c:582,4'
          Dst:             mail_index_lookup_uid
        - Src:             'imapc-mailbox.c:584,4'
          Dst:             imapc_mailbox_index_expunge
        - Src:             'imapc-mailbox.c:587,3'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:594,3'
          Dst:             imapc_untagged_fetch_update_flags
        - Src:             'imapc-mailbox.c:599,7'
          Dst:             mail_index_modseq_lookup
        - Src:             'imapc-mailbox.c:600,4'
          Dst:             mail_index_update_modseq
        - Src:             'imapc-mailbox.c:601,3'
          Dst:             array_idx_set_i
        - Src:             'imapc-mailbox.c:604,40'
          Dst:             module_context_get_require
        - Src:             'imapc-mailbox.c:608,7'
          Dst:             mail_cache_field_can_add
        - Src:             'imapc-mailbox.c:611,39'
          Dst:             strlen
        - Src:             'imapc-mailbox.c:610,4'
          Dst:             mail_cache_add
    - functionName:    imapc_mailbox_index_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_expunge
        - mail_index_lookup_seq
        - seq_range_array_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:162,6'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mailbox.c:163,3'
          Dst:             mail_index_expunge
        - Src:             'imapc-mailbox.c:164,11'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-mailbox.c:171,3'
          Dst:             seq_range_array_add
    - functionName:    imapc_untagged_fetch_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          119
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - keywords_are_equal
        - mail_index_keywords_create
        - mail_index_keywords_unref
        - mail_index_lookup
        - mail_index_lookup_keywords
        - mail_index_update_flags
        - mail_index_update_keywords
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:520,8'
          Dst:             mail_index_lookup
        - Src:             'imapc-mailbox.c:522,3'
          Dst:             mail_index_update_flags
        - Src:             'imapc-mailbox.c:526,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-mailbox.c:526,2'
          Dst:             array_create_i
        - Src:             'imapc-mailbox.c:527,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'imapc-mailbox.c:534,3'
          Dst:             array_append_i
        - Src:             'imapc-mailbox.c:537,2'
          Dst:             array_append_space_i
        - Src:             'imapc-mailbox.c:539,6'
          Dst:             array_idx_i
        - Src:             'imapc-mailbox.c:538,7'
          Dst:             mail_index_keywords_create
        - Src:             'imapc-mailbox.c:540,7'
          Dst:             keywords_are_equal
        - Src:             'imapc-mailbox.c:541,3'
          Dst:             mail_index_update_keywords
        - Src:             'imapc-mailbox.c:544,2'
          Dst:             mail_index_keywords_unref
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    keywords_are_equal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:342,11'
          Dst:             array_get_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imapc_untagged_fetch_parse
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          432
      EdgeCount:       108
      CyclomaticComplexity: 30
      functionsReached:
        - array_append_i
        - array_create_i
        - imap_arg_get_astring
        - imap_arg_get_atom
        - imap_arg_get_list
        - imap_parse_system_flag
        - imapc_mailbox_has_modseqs
        - p_strdup
        - str_to_uint32
        - str_to_uint64
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:627,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:631,7'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:632,9'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:633,8'
          Dst:             str_to_uint32
        - Src:             'imapc-mailbox.c:635,14'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:636,9'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:639,4'
          Dst:             array_create_i
        - Src:             'imapc-mailbox.c:642,10'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:645,20'
          Dst:             imap_parse_system_flag
        - Src:             'imapc-mailbox.c:647,14'
          Dst:             p_strdup
        - Src:             'imapc-mailbox.c:649,6'
          Dst:             array_append_i
        - Src:             'imapc-mailbox.c:652,14'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:653,7'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-mailbox.c:655,9'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:657,9'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:658,8'
          Dst:             str_to_uint64
        - Src:             'imapc-mailbox.c:661,14'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:663,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:665,14'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:667,9'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:670,10'
          Dst:             imap_arg_get_astring
        - Src:             'imapc-mailbox.c:672,9'
          Dst:             strcasecmp
    - functionName:    imapc_untagged_fetch_ctx_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:490,16'
          Dst:             pool_alloconly_create
        - Src:             'imapc-mailbox.c:492,3'
          Dst:             malloc_multiply_check
        - Src:             'imapc-mailbox.c:492,3'
          Dst:             p_malloc
    - functionName:    imapc_mailbox_idle_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:138,2'
          Dst:             timeout_remove
    - functionName:    imapc_mailbox_idle_notify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_mailbox_idle_timeout
        - io_loop_set_current
        - timeout_add_short
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:149,3'
          Dst:             io_loop_set_current
        - Src:             'imapc-mailbox.c:151,4'
          Dst:             timeout_add_short
        - Src:             'imapc-mailbox.c:151,4'
          Dst:             imapc_mailbox_idle_timeout
        - Src:             'imapc-mailbox.c:153,3'
          Dst:             io_loop_set_current
    - functionName:    imapc_resp_text_permanentflags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - imap_arg_get_atom
        - imap_arg_get_list
        - imap_parse_system_flag
        - mail_index_keyword_lookup_or_create
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:960,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:962,23'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:969,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-mailbox.c:972,7'
          Dst:             strcmp
        - Src:             'imapc-mailbox.c:975,29'
          Dst:             imap_parse_system_flag
        - Src:             'imapc-mailbox.c:978,4'
          Dst:             mail_index_keyword_lookup_or_create
    - functionName:    imapc_resp_text_highestmodseq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uint64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:946,6'
          Dst:             str_to_uint64
    - functionName:    imapc_resp_text_uidnext
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:933,6'
          Dst:             str_to_uint32
    - functionName:    imapc_resp_text_uidvalidity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_mail_cache_free
        - imapc_sync_uid_validity
        - str_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:915,6'
          Dst:             str_to_uint32
        - Src:             'imapc-mailbox.c:921,3'
          Dst:             imapc_mail_cache_free
        - Src:             'imapc-mailbox.c:922,3'
          Dst:             imapc_sync_uid_validity
    - functionName:    imapc_untagged_esearch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          110
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - imap_arg_atom_equals
        - imap_arg_get_list
        - imap_arg_get_string
        - imapc_search_reply_esearch
        - imapc_untagged_esearch_gmail_pop3
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:859,23'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:868,7'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-mailbox.c:869,7'
          Dst:             imap_arg_get_string
        - Src:             'imapc-mailbox.c:876,6'
          Dst:             strcmp
        - Src:             'imapc-mailbox.c:877,3'
          Dst:             imapc_untagged_esearch_gmail_pop3
        - Src:             'imapc-mailbox.c:879,3'
          Dst:             imapc_search_reply_esearch
    - functionName:    imapc_untagged_sort
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_search_reply_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:850,2'
          Dst:             imapc_search_reply_sort
    - functionName:    imapc_untagged_search
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_search_reply_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:837,2'
          Dst:             imapc_search_reply_search
    - functionName:    imapc_untagged_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - array_delete_i
        - array_is_created_i
        - imapc_client_mailbox_get_msgmap
        - imapc_mailbox_idle_notify
        - imapc_mailbox_index_expunge
        - imapc_mailbox_init_delayed_trans
        - imapc_mailbox_set_corrupted
        - imapc_msgmap_count
        - imapc_msgmap_expunge
        - imapc_msgmap_rseq_to_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:752,3'
          Dst:             imapc_mailbox_set_corrupted
        - Src:             'imapc-mailbox.c:758,11'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-mailbox.c:759,13'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-mailbox.c:763,8'
          Dst:             imapc_msgmap_rseq_to_uid
        - Src:             'imapc-mailbox.c:764,2'
          Dst:             imapc_msgmap_expunge
        - Src:             'imapc-mailbox.c:765,6'
          Dst:             array_is_created_i
        - Src:             'imapc-mailbox.c:766,3'
          Dst:             array_delete_i
        - Src:             'imapc-mailbox.c:768,2'
          Dst:             imapc_mailbox_init_delayed_trans
        - Src:             'imapc-mailbox.c:769,2'
          Dst:             imapc_mailbox_index_expunge
        - Src:             'imapc-mailbox.c:770,2'
          Dst:             imapc_mailbox_idle_notify
    - functionName:    imapc_untagged_fetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          224
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - array_append_i
        - i_memcpy
        - imap_arg_get_list
        - imapc_mail_fetch_update
        - imapc_mailbox_idle_notify
        - imapc_untagged_fetch_ctx_create
        - imapc_untagged_fetch_ctx_free
        - imapc_untagged_fetch_handle
        - imapc_untagged_fetch_parse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:694,42'
          Dst:             imap_arg_get_list
        - Src:             'imapc-mailbox.c:703,3'
          Dst:             imapc_untagged_fetch_ctx_create
        - Src:             'imapc-mailbox.c:704,7'
          Dst:             imapc_untagged_fetch_parse
        - Src:             'imapc-mailbox.c:705,3'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-mailbox.c:709,16'
          Dst:             imapc_untagged_fetch_handle
        - Src:             'imapc-mailbox.c:712,2'
          Dst:             i_memcpy
        - Src:             'imapc-mailbox.c:713,3'
          Dst:             i_memcpy
        - Src:             'imapc-mailbox.c:715,5'
          Dst:             imapc_mail_fetch_update
        - Src:             'imapc-mailbox.c:724,3'
          Dst:             imapc_untagged_fetch_ctx_free
        - Src:             'imapc-mailbox.c:728,3'
          Dst:             array_append_i
        - Src:             'imapc-mailbox.c:730,2'
          Dst:             imapc_mailbox_idle_notify
    - functionName:    imapc_untagged_fetch_ctx_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - pool_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:502,2'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:504,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_untagged_exists
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - imapc_mailbox_get_sync_view
        - imapc_mailbox_idle_notify
        - mail_index_get_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:325,10'
          Dst:             imapc_mailbox_get_sync_view
        - Src:             'imapc-mailbox.c:329,9'
          Dst:             mail_index_get_header
        - Src:             'imapc-mailbox.c:333,2'
          Dst:             imapc_mailbox_idle_notify
    - functionName:    imapc_mailbox_register_callbacks
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 1007
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_mailbox_register_resp_text
        - imapc_mailbox_register_untagged
        - imapc_resp_text_highestmodseq
        - imapc_resp_text_permanentflags
        - imapc_resp_text_uidnext
        - imapc_resp_text_uidvalidity
        - imapc_untagged_esearch
        - imapc_untagged_exists
        - imapc_untagged_expunge
        - imapc_untagged_fetch
        - imapc_untagged_search
        - imapc_untagged_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:1008,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1008,2'
          Dst:             imapc_untagged_exists
        - Src:             'imapc-mailbox.c:1010,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1010,2'
          Dst:             imapc_untagged_fetch
        - Src:             'imapc-mailbox.c:1012,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1012,2'
          Dst:             imapc_untagged_expunge
        - Src:             'imapc-mailbox.c:1014,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1014,2'
          Dst:             imapc_untagged_search
        - Src:             'imapc-mailbox.c:1016,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1016,2'
          Dst:             imapc_untagged_sort
        - Src:             'imapc-mailbox.c:1018,2'
          Dst:             imapc_mailbox_register_untagged
        - Src:             'imapc-mailbox.c:1018,2'
          Dst:             imapc_untagged_esearch
        - Src:             'imapc-mailbox.c:1020,2'
          Dst:             imapc_mailbox_register_resp_text
        - Src:             'imapc-mailbox.c:1020,2'
          Dst:             imapc_resp_text_uidvalidity
        - Src:             'imapc-mailbox.c:1022,2'
          Dst:             imapc_mailbox_register_resp_text
        - Src:             'imapc-mailbox.c:1022,2'
          Dst:             imapc_resp_text_uidnext
        - Src:             'imapc-mailbox.c:1024,2'
          Dst:             imapc_mailbox_register_resp_text
        - Src:             'imapc-mailbox.c:1024,2'
          Dst:             imapc_resp_text_highestmodseq
        - Src:             'imapc-mailbox.c:1026,2'
          Dst:             imapc_mailbox_register_resp_text
        - Src:             'imapc-mailbox.c:1026,2'
          Dst:             imapc_resp_text_permanentflags
    - functionName:    imapc_mailbox_register_untagged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:990,7'
          Dst:             array_append_space_i
        - Src:             'imapc-mailbox.c:991,13'
          Dst:             p_strdup
    - functionName:    imapc_mailbox_register_resp_text
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:1001,7'
          Dst:             array_append_space_i
        - Src:             'imapc-mailbox.c:1002,13'
          Dst:             p_strdup
    - functionName:    imapc_mailbox_name_equals
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_mailbox_get_remote_name
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:474,3'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-mailbox.c:476,6'
          Dst:             strcmp
        - Src:             'imapc-mailbox.c:479,13'
          Dst:             strcasecmp
        - Src:             'imapc-mailbox.c:480,6'
          Dst:             strcasecmp
    - functionName:    imapc_mailbox_fetch_state_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_mailbox_fetch_state_finish
        - mail_storage_set_critical
        - mail_storage_set_internal_error
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-mailbox.c:217,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-mailbox.c:215,2'
          Dst:             imapc_client_stop
        - Src:             'imapc-mailbox.c:219,3'
          Dst:             imapc_mailbox_fetch_state_finish
        - Src:             'imapc-mailbox.c:222,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-mailbox.c:225,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-mailbox.c:229,3'
          Dst:             mail_storage_set_critical
    - functionName:    imapc_mailbox_fetch_state_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          122
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - imapc_mailbox_index_expunge
        - mail_index_lookup_uid
        - mail_index_view_get_messages_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:184,3'
          Dst:             i_panic
        - Src:             'imapc-mailbox.c:191,14'
          Dst:             mail_index_view_get_messages_count
        - Src:             'imapc-mailbox.c:193,3'
          Dst:             mail_index_lookup_uid
        - Src:             'imapc-mailbox.c:199,3'
          Dst:             imapc_mailbox_index_expunge
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imapc_mailbox_fetch_state
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_list_get_mailbox_flags
        - imapc_mailbox_fetch_state_callback
        - imapc_mailbox_has_modseqs
        - mail_index_is_in_memory
        - mail_index_modseq_enable
        - str_append
        - str_append_c
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:266,18'
          Dst:             t_str_new
        - Src:             'imapc-mailbox.c:267,2'
          Dst:             str_printfa
        - Src:             'imapc-mailbox.c:268,6'
          Dst:             imapc_mailbox_has_modseqs
        - Src:             'imapc-mailbox.c:269,3'
          Dst:             str_append
        - Src:             'imapc-mailbox.c:270,3'
          Dst:             mail_index_modseq_enable
        - Src:             'imapc-mailbox.c:275,8'
          Dst:             mail_index_is_in_memory
        - Src:             'imapc-mailbox.c:278,4'
          Dst:             str_append
        - Src:             'imapc-mailbox.c:281,7'
          Dst:             imapc_list_get_mailbox_flags
        - Src:             'imapc-mailbox.c:284,4'
          Dst:             str_append
        - Src:             'imapc-mailbox.c:287,2'
          Dst:             str_append_c
        - Src:             'imapc-mailbox.c:289,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-mailbox.c:289,8'
          Dst:             imapc_mailbox_fetch_state_callback
        - Src:             'imapc-mailbox.c:297,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-mailbox.c:300,26'
          Dst:             str_c
        - Src:             'imapc-mailbox.c:300,2'
          Dst:             imapc_command_send
    - functionName:    imap_mailbox_select_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-mailbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_mailbox_fetch_state
        - imapc_mailbox_fetch_state_finish
        - imapc_mailbox_init_delayed_trans
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-mailbox.c:240,3'
          Dst:             imapc_mailbox_init_delayed_trans
        - Src:             'imapc-mailbox.c:241,3'
          Dst:             imapc_mailbox_fetch_state_finish
        - Src:             'imapc-mailbox.c:244,9'
          Dst:             imapc_mailbox_fetch_state
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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-imap-client/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    imapc_msgmap_reset
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:87,2'
          Dst:             array_clear_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    imapc_msgmap_expunge
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_delete_i
        - i_panic
        - imapc_msgmap_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:79,2'
          Dst:             i_panic
        - Src:             'imapc-msgmap.c:80,2'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-msgmap.c:80,2'
          Dst:             i_panic
        - Src:             'imapc-msgmap.c:82,2'
          Dst:             array_delete_i
    - functionName:    imapc_msgmap_count
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:35,9'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_msgmap_append
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - i_panic
        - imapc_msgmap_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:70,2'
          Dst:             imapc_msgmap_count
        - Src:             'imapc-msgmap.c:70,2'
          Dst:             i_panic
        - Src:             'imapc-msgmap.c:71,2'
          Dst:             i_panic
        - Src:             'imapc-msgmap.c:74,2'
          Dst:             array_append_i
    - functionName:    uint32_cmp
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../src/lib/sort.h'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_msgmap_uid_to_rseq
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_i
        - array_idx_i
        - uint32_cmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:56,6'
          Dst:             array_bsearch_i
        - Src:             'imapc-msgmap.c:56,6'
          Dst:             uint32_cmp
        - Src:             'imapc-msgmap.c:62,10'
          Dst:             array_idx_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    imapc_msgmap_rseq_to_uid
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_i
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:47,9'
          Dst:             array_idx_i
    - functionName:    imapc_msgmap_uidnext
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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-imap-client/../../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:    imapc_msgmap_deinit
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 31
      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:             'imapc-msgmap.c:29,2'
          Dst:             array_free_i
        - Src:             'imapc-msgmap.c:30,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    imapc_msgmap_init
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-msgmap.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-msgmap.c:17,11'
          Dst:             malloc_multiply_check
        - Src:             'imapc-msgmap.c:17,11'
          Dst:             p_malloc
        - Src:             'imapc-msgmap.c:18,2'
          Dst:             array_create_i
    - functionName:    imapc_copy_simple_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          116
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_save_add_to_index
        - imapc_save_copyuid
        - mailbox_set_critical
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:615,7'
          Dst:             strcasecmp
        - Src:             'imapc-save.c:616,4'
          Dst:             imapc_save_copyuid
        - Src:             'imapc-save.c:617,3'
          Dst:             imapc_save_add_to_index
        - Src:             'imapc-save.c:620,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-save.c:624,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-save.c:628,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_save_copyuid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - array_create_i
        - array_is_created_i
        - imap_seq_set_nostar_parse
        - pool_datastack_create
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - seq_range_array_merge
        - str_array_length
        - str_to_uint32
        - t_strsplit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:563,9'
          Dst:             t_strsplit
        - Src:             'imapc-save.c:564,6'
          Dst:             str_array_length
        - Src:             'imapc-save.c:567,6'
          Dst:             str_to_uint32
        - Src:             'imapc-save.c:574,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-save.c:574,2'
          Dst:             array_create_i
        - Src:             'imapc-save.c:575,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-save.c:575,2'
          Dst:             array_create_i
        - Src:             'imapc-save.c:577,6'
          Dst:             imap_seq_set_nostar_parse
        - Src:             'imapc-save.c:579,6'
          Dst:             imap_seq_set_nostar_parse
        - Src:             'imapc-save.c:582,7'
          Dst:             array_is_created_i
        - Src:             'imapc-save.c:583,3'
          Dst:             array_create_i
        - Src:             'imapc-save.c:585,2'
          Dst:             seq_range_array_merge
        - Src:             'imapc-save.c:587,2'
          Dst:             seq_range_array_iter_init
        - Src:             'imapc-save.c:588,8'
          Dst:             seq_range_array_iter_nth
    - functionName:    imapc_save_add_to_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          94
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_create_fd_autoclose
        - imapc_mail_init_stream
        - mail_index_append
        - mail_set_seq_saving
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:152,2'
          Dst:             mail_index_append
        - Src:             'imapc-save.c:153,2'
          Dst:             mail_set_seq_saving
        - Src:             'imapc-save.c:159,24'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'imapc-save.c:165,3'
          Dst:             imapc_mail_init_stream
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    3
      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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_mail_copy_bulk_try_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - seqset_builder_try_add
        - str_c
        - strcmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:713,2'
          Dst:             str_c
        - Src:             'imapc-save.c:713,2'
          Dst:             strncmp
        - Src:             'imapc-save.c:713,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:715,6'
          Dst:             strcmp
        - Src:             'imapc-save.c:719,9'
          Dst:             seqset_builder_try_add
    - functionName:    imapc_mail_copy_bulk_delayed_send_or_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          124
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_strdup
        - imapc_copy_bulk_finish
        - imapc_mail_copy_bulk_flush
        - imapc_mail_copy_bulk_try_merge
        - malloc_multiply_check
        - p_malloc
        - seqset_builder_add
        - seqset_builder_init
        - str_printfa
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:731,7'
          Dst:             imapc_mail_copy_bulk_try_merge
        - Src:             'imapc-save.c:734,3'
          Dst:             imapc_mail_copy_bulk_flush
        - Src:             'imapc-save.c:735,3'
          Dst:             imapc_copy_bulk_finish
        - Src:             'imapc-save.c:739,4'
          Dst:             malloc_multiply_check
        - Src:             'imapc-save.c:739,4'
          Dst:             p_malloc
        - Src:             'imapc-save.c:740,3'
          Dst:             str_printfa
        - Src:             'imapc-save.c:742,4'
          Dst:             seqset_builder_init
        - Src:             'imapc-save.c:743,3'
          Dst:             seqset_builder_add
        - Src:             'imapc-save.c:745,25'
          Dst:             i_strdup
        - Src:             'imapc-save.c:747,3'
          Dst:             i_panic
    - functionName:    imapc_mail_copy_bulk_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imap_append_astring
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_copy_bulk_callback
        - imapc_copy_bulk_ctx_deinit
        - seqset_builder_deinit
        - str_append
        - str_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:691,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:692,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:693,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:695,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-save.c:695,8'
          Dst:             imapc_copy_bulk_callback
        - Src:             'imapc-save.c:699,2'
          Dst:             seqset_builder_deinit
        - Src:             'imapc-save.c:701,2'
          Dst:             str_append
        - Src:             'imapc-save.c:702,2'
          Dst:             imap_append_astring
        - Src:             'imapc-save.c:704,26'
          Dst:             str_c
        - Src:             'imapc-save.c:704,2'
          Dst:             imapc_command_send
        - Src:             'imapc-save.c:706,2'
          Dst:             imapc_copy_bulk_ctx_deinit
    - functionName:    imapc_copy_bulk_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imapc_mailbox_run_nofetch
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:364,3'
          Dst:             imapc_mailbox_run_nofetch
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_copy_bulk_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          167
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - imapc_client_stop
        - imapc_copy_set_error
        - imapc_save_copyuid
        - imapc_transaction_save_rollback
        - null_strcasecmp
        - p_free_internal
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:659,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:660,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:668,7'
          Dst:             null_strcasecmp
        - Src:             'imapc-save.c:669,10'
          Dst:             imapc_save_copyuid
        - Src:             'imapc-save.c:670,4'
          Dst:             imapc_transaction_save_rollback
        - Src:             'imapc-save.c:674,6'
          Dst:             strcasecmp
        - Src:             'imapc-save.c:675,6'
          Dst:             imapc_save_copyuid
        - Src:             'imapc-save.c:679,3'
          Dst:             imapc_copy_set_error
        - Src:             'imapc-save.c:683,2'
          Dst:             p_free_internal
        - Src:             'imapc-save.c:684,2'
          Dst:             imapc_client_stop
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imapc_copy_bulk_ctx_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:507,2'
          Dst:             str_truncate
        - Src:             'imapc-save.c:508,2'
          Dst:             p_free_internal
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_transaction_save_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          254
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_panic
        - imapc_client_stop
        - imapc_copy_bulk_ctx_deinit
        - imapc_rollback_send_expunge
        - imapc_transaction_save_commit_pre
        - p_free_internal
        - seq_range_array_merge
        - seqset_builder_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:521,15'
          Dst:             imapc_transaction_save_commit_pre
        - Src:             'imapc-save.c:523,9'
          Dst:             i_panic
        - Src:             'imapc-save.c:527,11'
          Dst:             seqset_builder_deinit
        - Src:             'imapc-save.c:528,11'
          Dst:             p_free_internal
        - Src:             'imapc-save.c:530,10'
          Dst:             imapc_copy_bulk_ctx_deinit
        - Src:             'imapc-save.c:531,10'
          Dst:             imapc_client_stop
        - Src:             'imapc-save.c:536,21'
          Dst:             array_is_created_i
        - Src:             'imapc-save.c:537,3'
          Dst:             i_panic
        - Src:             'imapc-save.c:538,3'
          Dst:             seq_range_array_merge
        - Src:             'imapc-save.c:541,3'
          Dst:             imapc_rollback_send_expunge
        - Src:             'imapc-save.c:542,3'
          Dst:             array_free_i
        - Src:             'imapc-save.c:546,3'
          Dst:             array_free_i
        - Src:             'imapc-save.c:547,3'
          Dst:             p_free_internal
    - functionName:    imapc_copy_set_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_copy_error_from_reply
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:598,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-save.c:601,3'
          Dst:             mailbox_set_critical
    - functionName:    imapc_transaction_save_commit_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_array_i
        - array_is_created_i
        - i_panic
        - mail_index_expunge
        - mail_index_view_get_messages_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:374,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:377,13'
          Dst:             mail_index_view_get_messages_count
        - Src:             'imapc-save.c:381,3'
          Dst:             mail_index_expunge
        - Src:             'imapc-save.c:383,22'
          Dst:             array_is_created_i
        - Src:             'imapc-save.c:385,3'
          Dst:             array_append_array_i
    - functionName:    imapc_rollback_send_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          144
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - array_is_created_i
        - imapc_expunge_send_cmd_str
        - imapc_mailbox_run_nofetch
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - seqset_builder_add
        - seqset_builder_deinit
        - seqset_builder_init
        - seqset_builder_try_add
        - str_len
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:466,7'
          Dst:             array_is_created_i
        - Src:             'imapc-save.c:469,13'
          Dst:             t_str_new
        - Src:             'imapc-save.c:470,19'
          Dst:             seqset_builder_init
        - Src:             'imapc-save.c:471,2'
          Dst:             seq_range_array_iter_init
        - Src:             'imapc-save.c:474,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'imapc-save.c:477,8'
          Dst:             seqset_builder_try_add
        - Src:             'imapc-save.c:483,4'
          Dst:             seqset_builder_deinit
        - Src:             'imapc-save.c:484,4'
          Dst:             imapc_expunge_send_cmd_str
        - Src:             'imapc-save.c:486,5'
          Dst:             imapc_mailbox_run_nofetch
        - Src:             'imapc-save.c:490,4'
          Dst:             str_truncate
        - Src:             'imapc-save.c:491,21'
          Dst:             seqset_builder_init
        - Src:             'imapc-save.c:494,4'
          Dst:             seqset_builder_add
        - Src:             'imapc-save.c:497,2'
          Dst:             seqset_builder_deinit
        - Src:             'imapc-save.c:498,6'
          Dst:             str_len
        - Src:             'imapc-save.c:499,3'
          Dst:             imapc_expunge_send_cmd_str
        - Src:             'imapc-save.c:501,3'
          Dst:             imapc_mailbox_run_nofetch
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    imapc_expunge_send_cmd_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imapc_client_mailbox_cmd
        - imapc_command_send
        - imapc_copy_rollback_expunge_callback
        - imapc_copy_rollback_store_callback
        - imapc_expunge_construct_cmd_str
        - str_c
        - str_len
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:438,18'
          Dst:             t_str_new
        - Src:             'imapc-save.c:439,20'
          Dst:             t_str_new
        - Src:             'imapc-save.c:441,2'
          Dst:             imapc_expunge_construct_cmd_str
        - Src:             'imapc-save.c:443,2'
          Dst:             str_len
        - Src:             'imapc-save.c:443,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:444,2'
          Dst:             str_len
        - Src:             'imapc-save.c:444,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:446,14'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-save.c:446,14'
          Dst:             imapc_copy_rollback_store_callback
        - Src:             'imapc-save.c:449,16'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-save.c:449,16'
          Dst:             imapc_copy_rollback_expunge_callback
        - Src:             'imapc-save.c:453,32'
          Dst:             str_c
        - Src:             'imapc-save.c:453,2'
          Dst:             imapc_command_send
        - Src:             'imapc-save.c:454,34'
          Dst:             str_c
        - Src:             'imapc-save.c:454,2'
          Dst:             imapc_command_send
    - functionName:    imapc_expunge_construct_cmd_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_append
        - str_append_str
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:422,2'
          Dst:             str_append
        - Src:             'imapc-save.c:423,2'
          Dst:             str_append_str
        - Src:             'imapc-save.c:424,2'
          Dst:             str_append
        - Src:             'imapc-save.c:425,2'
          Dst:             str_append
        - Src:             'imapc-save.c:426,2'
          Dst:             str_append_str
        - Src:             'imapc-save.c:428,2'
          Dst:             str_truncate
    - functionName:    imapc_copy_rollback_store_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:215,3'
          Dst:             e_error
        - Src:             'imapc-save.c:222,3'
          Dst:             i_panic
    - functionName:    imapc_copy_rollback_expunge_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          86
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - imapc_client_stop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:236,3'
          Dst:             e_error
        - Src:             'imapc-save.c:246,2'
          Dst:             imapc_client_stop
    - functionName:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    imapc_save_appenduid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - seq_range_array_add_with_init
        - str_array_length
        - str_to_uint32
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:124,9'
          Dst:             t_strsplit
        - Src:             'imapc-save.c:125,6'
          Dst:             str_array_length
        - Src:             'imapc-save.c:128,6'
          Dst:             str_to_uint32
        - Src:             'imapc-save.c:135,6'
          Dst:             str_to_uint32
        - Src:             'imapc-save.c:136,3'
          Dst:             seq_range_array_add_with_init
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_save_noop_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_client_stop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:205,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_save_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          135
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - imapc_save_add_to_index
        - imapc_save_appenduid
        - imapc_storage_client_handle_auth_failure
        - mailbox_set_critical
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:179,7'
          Dst:             strcasecmp
        - Src:             'imapc-save.c:180,4'
          Dst:             imapc_save_appenduid
        - Src:             'imapc-save.c:181,3'
          Dst:             imapc_save_add_to_index
        - Src:             'imapc-save.c:183,13'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-save.c:186,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-save.c:190,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-save.c:194,2'
          Dst:             imapc_client_stop
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    imapc_append_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mail_index_get_keywords
        - str_append
        - str_append_c
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:256,11'
          Dst:             mail_index_get_keywords
        - Src:             'imapc-save.c:258,12'
          Dst:             array_idx_i
        - Src:             'imapc-save.c:259,7'
          Dst:             str_len
        - Src:             'imapc-save.c:260,4'
          Dst:             str_append_c
        - Src:             'imapc-save.c:261,3'
          Dst:             str_append
    - functionName:    imapc_copy_simple
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_client_mailbox_cmd
        - imapc_command_sendf
        - imapc_copy_simple_callback
        - imapc_mailbox_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:641,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-save.c:641,8'
          Dst:             imapc_copy_simple_callback
        - Src:             'imapc-save.c:644,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-save.c:646,3'
          Dst:             imapc_mailbox_run
    - functionName:    imapc_copy_bulk
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 761
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_mail_copy_bulk_delayed_send_or_merge
        - imapc_mailbox_get_remote_name
        - imapc_save_add_to_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:758,10'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-save.c:757,2'
          Dst:             imapc_mail_copy_bulk_delayed_send_or_merge
        - Src:             'imapc-save.c:759,2'
          Dst:             imapc_save_add_to_index
    - functionName:    imapc_is_mail_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - mail_index_lookup_seq
        - mail_index_transaction_get_view
        - mail_index_transaction_is_expunged
        - seq_range_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:766,6'
          Dst:             array_is_created_i
        - Src:             'imapc-save.c:767,6'
          Dst:             seq_range_exists
        - Src:             'imapc-save.c:773,3'
          Dst:             mail_index_transaction_get_view
        - Src:             'imapc-save.c:775,9'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-save.c:776,3'
          Dst:             mail_index_transaction_is_expunged
    - functionName:    imapc_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          267
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - imapc_client_get_capabilities
        - imapc_client_mailbox_get_msgmap
        - imapc_copy_bulk
        - imapc_copy_simple
        - imapc_is_mail_expunged
        - imapc_msgmap_uid_to_rseq
        - index_save_context_free
        - mail_set_expunged
        - mail_storage_copy
        - mail_storage_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:787,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:792,3'
          Dst:             i_panic
        - Src:             'imapc-save.c:795,7'
          Dst:             imapc_is_mail_expunged
        - Src:             'imapc-save.c:796,4'
          Dst:             mail_set_expunged
        - Src:             'imapc-save.c:799,4'
          Dst:             imapc_client_mailbox_get_msgmap
        - Src:             'imapc-save.c:801,8'
          Dst:             imapc_msgmap_uid_to_rseq
        - Src:             'imapc-save.c:802,4'
          Dst:             mail_storage_set_error
        - Src:             'imapc-save.c:806,4'
          Dst:             index_save_context_free
        - Src:             'imapc-save.c:813,8'
          Dst:             imapc_client_get_capabilities
        - Src:             'imapc-save.c:815,5'
          Dst:             mail_storage_set_error
        - Src:             'imapc-save.c:819,5'
          Dst:             index_save_context_free
        - Src:             'imapc-save.c:824,10'
          Dst:             imapc_copy_bulk
        - Src:             'imapc-save.c:826,10'
          Dst:             imapc_copy_simple
        - Src:             'imapc-save.c:827,3'
          Dst:             index_save_context_free
        - Src:             'imapc-save.c:830,9'
          Dst:             mail_storage_copy
    - functionName:    imapc_transaction_save_commit_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_transaction_save_rollback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:414,2'
          Dst:             imapc_transaction_save_rollback
    - functionName:    imapc_transaction_save_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_copy_bulk_finish
        - imapc_mail_copy_bulk_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:402,9'
          Dst:             imapc_mail_copy_bulk_flush
        - Src:             'imapc-save.c:403,9'
          Dst:             imapc_copy_bulk_finish
    - functionName:    imapc_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imapc_save_finish
        - imapc_transaction_save_commit_pre
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:357,8'
          Dst:             imapc_transaction_save_commit_pre
        - Src:             'imapc-save.c:358,8'
          Dst:             imapc_save_finish
    - functionName:    imapc_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_close_fd_path
        - i_stream_unref
        - imapc_save_append
        - index_save_context_free
        - mail_set_critical
        - mail_storage_set_error_from_errno
        - o_stream_finish
        - o_stream_get_error
        - o_stream_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:329,7'
          Dst:             o_stream_finish
        - Src:             'imapc-save.c:330,9'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'imapc-save.c:333,6'
          Dst:             o_stream_get_error
        - Src:             'imapc-save.c:331,5'
          Dst:             mail_set_critical
        - Src:             'imapc-save.c:340,7'
          Dst:             imapc_save_append
        - Src:             'imapc-save.c:344,2'
          Dst:             o_stream_unref
        - Src:             'imapc-save.c:345,2'
          Dst:             i_stream_unref
        - Src:             'imapc-save.c:346,2'
          Dst:             i_close_fd_path
        - Src:             'imapc-save.c:347,2'
          Dst:             p_free_internal
        - Src:             'imapc-save.c:348,2'
          Dst:             index_save_context_free
    - functionName:    imapc_save_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          229
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_create_fd
        - i_stream_unref
        - imap_to_datetime
        - imap_write_flags
        - imapc_append_keywords
        - imapc_client_cmd
        - imapc_command_send
        - imapc_command_sendf
        - imapc_command_set_flags
        - imapc_mailbox_get_remote_name
        - imapc_mailbox_run
        - imapc_save_callback
        - imapc_save_noop_callback
        - str_append
        - str_append_c
        - str_c
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:275,19'
          Dst:             t_str_new
        - Src:             'imapc-save.c:277,3'
          Dst:             str_append
        - Src:             'imapc-save.c:278,3'
          Dst:             imap_write_flags
        - Src:             'imapc-save.c:281,4'
          Dst:             imapc_append_keywords
        - Src:             'imapc-save.c:282,3'
          Dst:             str_append_c
        - Src:             'imapc-save.c:283,11'
          Dst:             str_c
        - Src:             'imapc-save.c:287,4'
          Dst:             imap_to_datetime
        - Src:             'imapc-save.c:286,18'
          Dst:             t_strdup_printf
        - Src:             'imapc-save.c:292,10'
          Dst:             i_stream_create_fd
        - Src:             'imapc-save.c:295,8'
          Dst:             imapc_client_cmd
        - Src:             'imapc-save.c:295,8'
          Dst:             imapc_save_callback
        - Src:             'imapc-save.c:298,3'
          Dst:             imapc_mailbox_get_remote_name
        - Src:             'imapc-save.c:297,2'
          Dst:             imapc_command_sendf
        - Src:             'imapc-save.c:300,2'
          Dst:             i_stream_unref
        - Src:             'imapc-save.c:302,3'
          Dst:             imapc_mailbox_run
        - Src:             'imapc-save.c:311,9'
          Dst:             imapc_client_cmd
        - Src:             'imapc-save.c:311,9'
          Dst:             imapc_save_noop_callback
        - Src:             'imapc-save.c:313,3'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-save.c:314,3'
          Dst:             imapc_command_send
        - Src:             'imapc-save.c:316,4'
          Dst:             imapc_mailbox_run
    - functionName:    imapc_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_save_continue
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:107,6'
          Dst:             index_storage_save_continue
    - functionName:    imapc_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          125
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_strdup
        - i_stream_create_crlf
        - imapc_client_create_temp_fd
        - imapc_storage_client_handle_auth_failure
        - mail_set_critical
        - o_stream_cork
        - o_stream_create_fd_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:76,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:78,6'
          Dst:             imapc_storage_client_handle_auth_failure
        - Src:             'imapc-save.c:81,12'
          Dst:             imapc_client_create_temp_fd
        - Src:             'imapc-save.c:84,3'
          Dst:             mail_set_critical
        - Src:             'imapc-save.c:93,19'
          Dst:             i_strdup
        - Src:             'imapc-save.c:94,15'
          Dst:             i_stream_create_crlf
        - Src:             'imapc-save.c:95,22'
          Dst:             o_stream_create_fd_file
        - Src:             'imapc-save.c:96,2'
          Dst:             o_stream_cork
    - functionName:    imapc_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-save.c:57,2'
          Dst:             i_panic
        - Src:             'imapc-save.c:60,9'
          Dst:             malloc_multiply_check
        - Src:             'imapc-save.c:60,9'
          Dst:             p_malloc
    - functionName:    imapc_search_is_fast_local
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - imapc_search_is_fast_local
      functionUses:    2
      BranchProfiles:
        - Branch String:   'imapc-search.c:137,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-search.c:140,9'
          Dst:             imapc_search_is_fast_local
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    imapc_build_search_query_args
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_build_search_query_arg
        - str_append
        - str_append_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:272,4'
          Dst:             str_append
        - Src:             'imapc-search.c:273,8'
          Dst:             imapc_build_search_query_arg
        - Src:             'imapc-search.c:275,3'
          Dst:             str_append_c
        - Src:             'imapc-search.c:277,20'
          Dst:             str_len
        - Src:             'imapc-search.c:277,2'
          Dst:             str_truncate
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    20
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imapc_build_search_query_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          425
      EdgeCount:       97
      CyclomaticComplexity: 18
      functionsReached:
        - array_create_i
        - i_panic
        - imap_write_seq_range
        - imapc_build_search_query_args
        - mail_search_arg_to_imap
        - mailbox_get_private_flags_mask
        - mailbox_get_uid_range
        - pool_datastack_create
        - str_append
        - str_append_c
        - str_begins_icase_with
        - str_c
        - str_len
        - strncasecmp
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'imapc-search.c:174,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-search.c:170,3'
          Dst:             str_append
        - Src:             'imapc-search.c:176,10'
          Dst:             imapc_build_search_query_args
        - Src:             'imapc-search.c:179,3'
          Dst:             str_append_c
        - Src:             'imapc-search.c:180,8'
          Dst:             imapc_build_search_query_args
        - Src:             'imapc-search.c:183,3'
          Dst:             str_append_c
        - Src:             'imapc-search.c:187,3'
          Dst:             t_push
        - Src:             'imapc-search.c:190,4'
          Dst:             pool_datastack_create
        - Src:             'imapc-search.c:190,4'
          Dst:             array_create_i
        - Src:             'imapc-search.c:191,4'
          Dst:             mailbox_get_uid_range
        - Src:             'imapc-search.c:193,4'
          Dst:             str_append
        - Src:             'imapc-search.c:194,4'
          Dst:             imap_write_seq_range
        - Src:             'imapc-search.c:195,5'
          Dst:             t_pop
        - Src:             'imapc-search.c:195,5'
          Dst:             i_panic
        - Src:             'imapc-search.c:203,17'
          Dst:             str_len
        - Src:             'imapc-search.c:204,9'
          Dst:             mail_search_arg_to_imap
        - Src:             'imapc-search.c:206,8'
          Dst:             str_c
        - Src:             'imapc-search.c:206,8'
          Dst:             strncasecmp
        - Src:             'imapc-search.c:206,8'
          Dst:             str_c
        - Src:             'imapc-search.c:206,8'
          Dst:             str_begins_icase_with
        - Src:             'imapc-search.c:207,8'
          Dst:             str_c
        - Src:             'imapc-search.c:207,8'
          Dst:             strncasecmp
        - Src:             'imapc-search.c:207,8'
          Dst:             str_c
        - Src:             'imapc-search.c:207,8'
          Dst:             str_begins_icase_with
        - Src:             'imapc-search.c:217,10'
          Dst:             mail_search_arg_to_imap
        - Src:             'imapc-search.c:220,8'
          Dst:             mailbox_get_private_flags_mask
        - Src:             'imapc-search.c:237,10'
          Dst:             mail_search_arg_to_imap
        - Src:             'imapc-search.c:242,10'
          Dst:             mail_search_arg_to_imap
        - Src:             'imapc-search.c:246,10'
          Dst:             mail_search_arg_to_imap
        - Src:             'imapc-search.c:258,10'
          Dst:             mail_search_arg_to_imap
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    4
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_build_search_query_toplevel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_count_i
        - imapc_build_search_query_arg
        - str_append_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:300,9'
          Dst:             str_len
        - Src:             'imapc-search.c:301,8'
          Dst:             imapc_build_search_query_arg
        - Src:             'imapc-search.c:302,4'
          Dst:             str_truncate
        - Src:             'imapc-search.c:305,3'
          Dst:             str_append_c
        - Src:             'imapc-search.c:306,3'
          Dst:             array_append_i
        - Src:             'imapc-search.c:308,6'
          Dst:             array_count_i
        - Src:             'imapc-search.c:310,20'
          Dst:             str_len
        - Src:             'imapc-search.c:310,2'
          Dst:             str_truncate
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_search_reply_sort
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          105
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - e_error
        - imap_arg_get_atom
        - str_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:577,3'
          Dst:             e_error
        - Src:             'imapc-search.c:582,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-search.c:583,7'
          Dst:             str_to_uint32
        - Src:             'imapc-search.c:584,4'
          Dst:             e_error
        - Src:             'imapc-search.c:587,3'
          Dst:             array_append_i
    - functionName:    imapc_search_reply_esort
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - imap_arg_atom_equals
        - imap_arg_get_atom
        - imap_seq_set_ordered_parse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:536,7'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-search.c:538,9'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-search.c:539,9'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-search.c:540,8'
          Dst:             imap_seq_set_ordered_parse
        - Src:             'imapc-search.c:541,3'
          Dst:             e_error
    - functionName:    imapc_search_reply_esearch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          102
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - imap_arg_atom_equals
        - imap_arg_get_atom
        - imap_seq_set_nostar_parse
        - imapc_search_reply_esort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:551,3'
          Dst:             e_error
        - Src:             'imapc-search.c:556,3'
          Dst:             imapc_search_reply_esort
        - Src:             'imapc-search.c:561,7'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-search.c:563,9'
          Dst:             imap_arg_atom_equals
        - Src:             'imapc-search.c:564,9'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-search.c:565,8'
          Dst:             imap_seq_set_nostar_parse
        - Src:             'imapc-search.c:566,3'
          Dst:             e_error
    - functionName:    imapc_search_reply_search
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - imap_arg_get_atom
        - seq_range_array_add
        - str_to_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:512,3'
          Dst:             e_error
        - Src:             'imapc-search.c:521,8'
          Dst:             imap_arg_get_atom
        - Src:             'imapc-search.c:522,7'
          Dst:             str_to_uint32
        - Src:             'imapc-search.c:523,4'
          Dst:             e_error
        - Src:             'imapc-search.c:526,3'
          Dst:             seq_range_array_add
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    imapc_search_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - index_storage_search_deinit
        - module_context_get
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:489,38'
          Dst:             module_context_get
        - Src:             'imapc-search.c:495,3'
          Dst:             array_free_i
        - Src:             'imapc-search.c:496,3'
          Dst:             array_free_i
        - Src:             'imapc-search.c:497,3'
          Dst:             p_free_internal
        - Src:             'imapc-search.c:499,6'
          Dst:             index_storage_search_deinit
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_search_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_search_match_index_args
        - mail_index_lookup_seq
        - mail_search_args_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:445,7'
          Dst:             mail_index_lookup_seq
        - Src:             'imapc-search.c:451,7'
          Dst:             index_storage_search_match_index_args
        - Src:             'imapc-search.c:456,3'
          Dst:             mail_search_args_reset
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:    imapc_search_next_update_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          113
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_idx_i
        - imapc_search_next_uid
        - index_storage_search_next_update_seq
        - module_context_get
        - seq_range_array_iter_nth
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:464,38'
          Dst:             module_context_get
        - Src:             'imapc-search.c:469,10'
          Dst:             index_storage_search_next_update_seq
        - Src:             'imapc-search.c:472,20'
          Dst:             array_count_i
        - Src:             'imapc-search.c:473,11'
          Dst:             array_idx_i
        - Src:             'imapc-search.c:474,8'
          Dst:             imapc_search_next_uid
        - Src:             'imapc-search.c:480,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'imapc-search.c:481,7'
          Dst:             imapc_search_next_uid
    - functionName:    imapc_search_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          119
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imapc_client_stop
        - imapc_copy_error_from_reply
        - mail_storage_set_internal_error
        - mailbox_set_critical
        - module_context_get
        - seq_range_array_iter_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:342,38'
          Dst:             module_context_get
        - Src:             'imapc-search.c:343,2'
          Dst:             i_panic
        - Src:             'imapc-search.c:347,3'
          Dst:             seq_range_array_iter_init
        - Src:             'imapc-search.c:350,3'
          Dst:             imapc_copy_error_from_reply
        - Src:             'imapc-search.c:353,3'
          Dst:             mail_storage_set_internal_error
        - Src:             'imapc-search.c:355,3'
          Dst:             mailbox_set_critical
        - Src:             'imapc-search.c:358,2'
          Dst:             imapc_client_stop
    - functionName:    imapc_search_set_matches
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_search_set_matches
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:432,4'
          Dst:             imapc_search_set_matches
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    imapc_build_search_query
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          89
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - imapc_build_search_query_toplevel
        - imapc_search_is_fast_local
        - str_append
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:319,18'
          Dst:             t_str_new
        - Src:             'imapc-search.c:325,6'
          Dst:             imapc_search_is_fast_local
        - Src:             'imapc-search.c:328,2'
          Dst:             str_append
        - Src:             'imapc-search.c:330,3'
          Dst:             str_append
        - Src:             'imapc-search.c:331,7'
          Dst:             imapc_build_search_query_toplevel
        - Src:             'imapc-search.c:333,13'
          Dst:             str_c
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imapc_build_sort_query
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          288
      EdgeCount:       57
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
        - imapc_build_search_query_toplevel
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imapc-search.c:61,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imapc-search.c:39,18'
          Dst:             t_str_new
        - Src:             'imapc-search.c:54,2'
          Dst:             str_append
        - Src:             'imapc-search.c:56,3'
          Dst:             str_append
        - Src:             'imapc-search.c:57,2'
          Dst:             str_append_c
        - Src:             'imapc-search.c:60,4'
          Dst:             str_append
        - Src:             'imapc-search.c:63,4'
          Dst:             str_append
        - Src:             'imapc-search.c:66,4'
          Dst:             str_append
        - Src:             'imapc-search.c:69,4'
          Dst:             str_append
        - Src:             'imapc-search.c:72,4'
          Dst:             str_append
        - Src:             'imapc-search.c:75,4'
          Dst:             str_append
        - Src:             'imapc-search.c:78,4'
          Dst:             str_append
        - Src:             'imapc-search.c:81,4'
          Dst:             str_append
        - Src:             'imapc-search.c:86,4'
          Dst:             str_append
        - Src:             'imapc-search.c:91,4'
          Dst:             str_append
        - Src:             'imapc-search.c:97,4'
          Dst:             i_unreached
        - Src:             'imapc-search.c:100,4'
          Dst:             str_append_c
        - Src:             'imapc-search.c:102,2'
          Dst:             str_append
        - Src:             'imapc-search.c:103,2'
          Dst:             str_append
        - Src:             'imapc-search.c:104,2'
          Dst:             str_append_c
        - Src:             'imapc-search.c:107,7'
          Dst:             imapc_build_search_query_toplevel
        - Src:             'imapc-search.c:110,3'
          Dst:             str_append
        - Src:             'imapc-search.c:112,13'
          Dst:             str_c
    - functionName:    imapc_search_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/imapc/imapc-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          236
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - array_clear_i
        - array_create_i
        - array_idx_set_i
        - i_memcpy
        - i_panic
        - imapc_build_search_query
        - imapc_build_sort_query
        - imapc_client_mailbox_cmd
        - imapc_client_run
        - imapc_command_send
        - imapc_command_set_flags
        - imapc_mailbox_flush_local_flag_changes
        - imapc_search_callback
        - imapc_search_set_matches
        - index_storage_search_init
        - malloc_multiply_check
        - module_get_context_id
        - p_malloc
        - pool_datastack_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-search.c:376,2'
          Dst:             pool_datastack_create
        - Src:             'imapc-search.c:376,2'
          Dst:             array_create_i
        - Src:             'imapc-search.c:378,6'
          Dst:             imapc_build_sort_query
        - Src:             'imapc-search.c:380,9'
          Dst:             index_storage_search_init
        - Src:             'imapc-search.c:382,10'
          Dst:             malloc_multiply_check
        - Src:             'imapc-search.c:382,10'
          Dst:             p_malloc
        - Src:             'imapc-search.c:385,3'
          Dst:             array_clear_i
        - Src:             'imapc-search.c:386,9'
          Dst:             index_storage_search_init
        - Src:             'imapc-search.c:388,8'
          Dst:             imapc_build_search_query
        - Src:             'imapc-search.c:393,10'
          Dst:             malloc_multiply_check
        - Src:             'imapc-search.c:393,10'
          Dst:             p_malloc
        - Src:             'imapc-search.c:395,2'
          Dst:             array_create_i
        - Src:             'imapc-search.c:396,2'
          Dst:             array_create_i
        - Src:             'imapc-search.c:397,2'
          Dst:             module_get_context_id
        - Src:             'imapc-search.c:397,2'
          Dst:             array_idx_set_i
        - Src:             'imapc-search.c:404,6'
          Dst:             imapc_mailbox_flush_local_flag_changes
        - Src:             'imapc-search.c:409,2'
          Dst:             i_memcpy
        - Src:             'imapc-search.c:410,3'
          Dst:             imapc_search_set_matches
        - Src:             'imapc-search.c:412,8'
          Dst:             imapc_client_mailbox_cmd
        - Src:             'imapc-search.c:412,8'
          Dst:             imapc_search_callback
        - Src:             'imapc-search.c:414,2'
          Dst:             imapc_command_set_flags
        - Src:             'imapc-search.c:415,2'
          Dst:             imapc_command_send
        - Src:             'imapc-search.c:417,2'
          Dst:             i_panic
        - Src:             'imapc-search.c:420,3'
          Dst:             imapc_client_run
    - functionName:    imapc_settings_parse_throttle
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - str_array_length
        - str_to_uint
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-settings.c:166,8'
          Dst:             t_strsplit
        - Src:             'imapc-settings.c:167,6'
          Dst:             str_array_length
        - Src:             'imapc-settings.c:168,6'
          Dst:             str_to_uint
        - Src:             'imapc-settings.c:169,6'
          Dst:             str_to_uint
        - Src:             'imapc-settings.c:170,6'
          Dst:             str_to_uint
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-imap-client/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imapc_settings_parse_features
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          219
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - imapc_capability_lookup
        - imapc_settings_parse_throttle
        - settings_boollist_get
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-settings.c:185,8'
          Dst:             settings_boollist_get
        - Src:             'imapc-settings.c:189,8'
          Dst:             strcmp
        - Src:             'imapc-settings.c:194,7'
          Dst:             str_begins
        - Src:             'imapc-settings.c:194,7'
          Dst:             strncmp
        - Src:             'imapc-settings.c:194,7'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-settings.c:195,8'
          Dst:             imapc_settings_parse_throttle
        - Src:             'imapc-settings.c:199,7'
          Dst:             str_begins
        - Src:             'imapc-settings.c:199,7'
          Dst:             strncmp
        - Src:             'imapc-settings.c:199,7'
          Dst:             str_begins_builtin_success
        - Src:             'imapc-settings.c:201,5'
          Dst:             imapc_capability_lookup
        - Src:             'imapc-settings.c:208,15'
          Dst:             t_strdup_printf
    - functionName:    imapc_capability_lookup
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-settings.c:128,7'
          Dst:             strcasecmp
    - functionName:    imapc_settings_check
      functionSourceFile: '/src/dovecot/src/lib-imap-client/imapc-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - imapc_settings_parse_features
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imapc-settings.c:230,6'
          Dst:             imapc_settings_parse_features
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_index_copy_cache
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          125
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - mail_index_ext_get_reset_id
        - mail_index_ext_reset
        - mail_index_lookup_ext_full
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:41,2'
          Dst:             mail_index_lookup_ext_full
        - Src:             'index-rebuild.c:46,7'
          Dst:             mail_index_ext_get_reset_id
        - Src:             'index-rebuild.c:54,3'
          Dst:             mail_index_ext_reset
        - Src:             'index-rebuild.c:58,3'
          Dst:             mail_index_update_ext
    - functionName:    index_index_copy_vsize
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_ext
        - mail_index_update_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:20,2'
          Dst:             mail_index_lookup_ext
        - Src:             'index-rebuild.c:23,3'
          Dst:             mail_index_update_ext
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_rebuild_box_preserve_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mail_index_get_header_ext
        - mail_index_update_header_ext
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:183,2'
          Dst:             mail_index_get_header_ext
        - Src:             'index-rebuild.c:185,3'
          Dst:             mail_index_get_header_ext
        - Src:             'index-rebuild.c:190,2'
          Dst:             mail_index_update_header_ext
    - functionName:    index_rebuild_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          287
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - mail_index_get_header
        - mail_index_modseq_get_highest
        - mail_index_transaction_open_updated_view
        - mail_index_update_header
        - mail_index_update_header_ext
        - mail_index_view_close
        - mail_index_view_get_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:116,29'
          Dst:             mail_index_view_get_index
        - Src:             'index-rebuild.c:122,8'
          Dst:             mail_index_get_header
        - Src:             'index-rebuild.c:124,3'
          Dst:             mail_index_get_header
        - Src:             'index-rebuild.c:125,15'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'index-rebuild.c:126,14'
          Dst:             mail_index_get_header
        - Src:             'index-rebuild.c:135,2'
          Dst:             mail_index_update_header
        - Src:             'index-rebuild.c:147,3'
          Dst:             mail_index_update_header
        - Src:             'index-rebuild.c:159,2'
          Dst:             mail_index_update_header
        - Src:             'index-rebuild.c:165,30'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-rebuild.c:167,12'
          Dst:             mail_index_modseq_get_highest
        - Src:             'index-rebuild.c:171,2'
          Dst:             mail_index_update_header_ext
        - Src:             'index-rebuild.c:173,2'
          Dst:             mail_index_view_close
    - functionName:    index_index_rebuild_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          86
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - index_rebuild_box_preserve_header
        - index_rebuild_header
        - mail_cache_purge_with_trans
        - mail_index_close
        - mail_index_free
        - mail_index_view_close
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:245,8'
          Dst:             mail_cache_purge_with_trans
        - Src:             'index-rebuild.c:247,2'
          Dst:             index_rebuild_header
        - Src:             'index-rebuild.c:248,2'
          Dst:             index_rebuild_box_preserve_header
        - Src:             'index-rebuild.c:249,2'
          Dst:             index_rebuild_box_preserve_header
        - Src:             'index-rebuild.c:250,2'
          Dst:             index_rebuild_box_preserve_header
        - Src:             'index-rebuild.c:252,3'
          Dst:             mail_index_view_close
        - Src:             'index-rebuild.c:253,3'
          Dst:             mail_index_close
        - Src:             'index-rebuild.c:254,3'
          Dst:             mail_index_free
        - Src:             'index-rebuild.c:256,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_index_rebuild_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          150
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mail_cache_open_and_verify
        - mail_index_alloc
        - mail_index_ext_lookup
        - mail_index_free
        - mail_index_is_locked
        - mail_index_open
        - mail_index_reset
        - mail_index_set_lock_method
        - mail_index_view_open
        - mailbox_get_index_path
        - mailbox_recent_flags_reset
        - malloc_multiply_check
        - p_malloc
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:204,2'
          Dst:             mail_index_is_locked
        - Src:             'index-rebuild.c:204,2'
          Dst:             i_panic
        - Src:             'index-rebuild.c:206,8'
          Dst:             malloc_multiply_check
        - Src:             'index-rebuild.c:206,8'
          Dst:             p_malloc
        - Src:             'index-rebuild.c:210,2'
          Dst:             mail_index_reset
        - Src:             'index-rebuild.c:211,2'
          Dst:             mailbox_recent_flags_reset
        - Src:             'index-rebuild.c:212,8'
          Dst:             mail_index_ext_lookup
        - Src:             'index-rebuild.c:215,8'
          Dst:             mail_cache_open_and_verify
        - Src:             'index-rebuild.c:218,14'
          Dst:             mailbox_get_index_path
        - Src:             'index-rebuild.c:219,16'
          Dst:             t_strconcat
        - Src:             'index-rebuild.c:220,22'
          Dst:             mail_index_alloc
        - Src:             'index-rebuild.c:227,2'
          Dst:             mail_index_set_lock_method
        - Src:             'index-rebuild.c:230,6'
          Dst:             mail_index_open
        - Src:             'index-rebuild.c:231,3'
          Dst:             mail_index_free
        - Src:             'index-rebuild.c:233,22'
          Dst:             mail_index_view_open
    - functionName:    index_index_copy_from_old
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          75
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - index_index_copy_cache
        - index_index_copy_vsize
        - mail_index_keywords_create_from_indexes
        - mail_index_keywords_unref
        - mail_index_lookup
        - mail_index_lookup_keywords
        - mail_index_modseq_lookup
        - mail_index_update_flags
        - mail_index_update_keywords
        - mail_index_update_modseq
        - mail_index_view_get_index
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:68,29'
          Dst:             mail_index_view_get_index
        - Src:             'index-rebuild.c:75,8'
          Dst:             mail_index_lookup
        - Src:             'index-rebuild.c:76,2'
          Dst:             mail_index_update_flags
        - Src:             'index-rebuild.c:80,2'
          Dst:             pool_datastack_create
        - Src:             'index-rebuild.c:80,2'
          Dst:             array_create_i
        - Src:             'index-rebuild.c:81,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'index-rebuild.c:82,7'
          Dst:             mail_index_keywords_create_from_indexes
        - Src:             'index-rebuild.c:83,2'
          Dst:             mail_index_update_keywords
        - Src:             'index-rebuild.c:84,2'
          Dst:             mail_index_keywords_unref
        - Src:             'index-rebuild.c:87,11'
          Dst:             mail_index_modseq_lookup
        - Src:             'index-rebuild.c:88,2'
          Dst:             mail_index_update_modseq
        - Src:             'index-rebuild.c:90,2'
          Dst:             index_index_copy_vsize
        - Src:             'index-rebuild.c:91,2'
          Dst:             index_index_copy_cache
    - functionName:    index_rebuild_index_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_index_copy_from_old
        - mail_index_lookup_seq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-rebuild.c:99,6'
          Dst:             mail_index_lookup_seq
        - Src:             'index-rebuild.c:102,3'
          Dst:             index_index_copy_from_old
        - Src:             'index-rebuild.c:104,6'
          Dst:             mail_index_lookup_seq
        - Src:             'index-rebuild.c:106,3'
          Dst:             index_index_copy_from_old
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    search_arg_mime_filename_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:300,2'
          Dst:             p_free_internal
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
        - i_panic
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:357,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:359,28'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:360,20'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:361,7'
          Dst:             malloc_multiply_check
        - Src:             '../../../src/lib/array.h:359,2'
          Dst:             buffer_copy
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    search_arg_mime_filename_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          265
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_strdup
        - i_unreached
        - message_part_data_get_filename
        - str_begins_with
        - str_c
        - str_new
        - str_truncate
        - strcmp
        - strlen
        - strncmp
        - strstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:276,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:253,7'
          Dst:             message_part_data_get_filename
        - Src:             'index-search-mime.c:257,16'
          Dst:             str_new
        - Src:             'index-search-mime.c:260,3'
          Dst:             str_truncate
        - Src:             'index-search-mime.c:263,12'
          Dst:             strlen
        - Src:             'index-search-mime.c:265,4'
          Dst:             i_panic
        - Src:             'index-search-mime.c:266,18'
          Dst:             str_c
        - Src:             'index-search-mime.c:266,9'
          Dst:             i_strdup
        - Src:             'index-search-mime.c:272,2'
          Dst:             str_truncate
        - Src:             'index-search-mime.c:273,39'
          Dst:             strlen
        - Src:             'index-search-mime.c:274,11'
          Dst:             str_c
        - Src:             'index-search-mime.c:278,11'
          Dst:             strcmp
        - Src:             'index-search-mime.c:280,11'
          Dst:             strstr
        - Src:             'index-search-mime.c:282,11'
          Dst:             strlen
        - Src:             'index-search-mime.c:282,11'
          Dst:             strncmp
        - Src:             'index-search-mime.c:282,11'
          Dst:             str_begins_with
        - Src:             'index-search-mime.c:284,10'
          Dst:             strlen
        - Src:             'index-search-mime.c:285,10'
          Dst:             strlen
        - Src:             'index-search-mime.c:287,4'
          Dst:             strlen
        - Src:             'index-search-mime.c:287,4'
          Dst:             strncmp
        - Src:             'index-search-mime.c:287,4'
          Dst:             str_begins_with
        - Src:             'index-search-mime.c:291,2'
          Dst:             i_unreached
    - functionName:    search_arg_mime_child_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          326
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - array_copy
        - array_count_i
        - array_create_i
        - array_idx_modifiable_i
        - i_panic
        - mail_search_mime_args_foreach
        - mail_search_mime_args_reset
        - pool_datastack_create
        - search_mime_arg
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:91,2'
          Dst:             t_push
        - Src:             'index-search-mime.c:96,3'
          Dst:             pool_datastack_create
        - Src:             'index-search-mime.c:96,3'
          Dst:             array_create_i
        - Src:             'index-search-mime.c:98,4'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:97,3'
          Dst:             array_copy
        - Src:             'index-search-mime.c:101,15'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:102,12'
          Dst:             array_idx_modifiable_i
        - Src:             'index-search-mime.c:104,4'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:104,4'
          Dst:             i_panic
        - Src:             'index-search-mime.c:105,12'
          Dst:             array_append_space_i
        - Src:             'index-search-mime.c:112,4'
          Dst:             mail_search_mime_args_reset
        - Src:             'index-search-mime.c:116,13'
          Dst:             mail_search_mime_args_foreach
        - Src:             'index-search-mime.c:116,13'
          Dst:             search_mime_arg
        - Src:             'index-search-mime.c:121,17'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:122,14'
          Dst:             array_idx_modifiable_i
        - Src:             'index-search-mime.c:124,6'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:124,6'
          Dst:             i_panic
        - Src:             'index-search-mime.c:125,14'
          Dst:             array_append_space_i
        - Src:             'index-search-mime.c:134,14'
          Dst:             array_idx_modifiable_i
        - Src:             'index-search-mime.c:142,3'
          Dst:             array_clear_i
        - Src:             'index-search-mime.c:144,4'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:143,3'
          Dst:             array_copy
        - Src:             'index-search-mime.c:145,4'
          Dst:             t_pop
        - Src:             'index-search-mime.c:145,4'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    search_mime_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - search_mime_arg_match
      functionUses:    3
      BranchProfiles:
        - Branch String:   'index-search-mime.c:469,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:469,10'
          Dst:             search_mime_arg_match
    - functionName:    search_mime_arg_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         83
      ICount:          608
      EdgeCount:       91
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - search_arg_mime_child_match
        - search_arg_mime_envelope_address_match
        - search_arg_mime_envelope_time_match
        - search_arg_mime_filename_match
        - search_arg_mime_language_match
        - search_arg_mime_param_match
        - search_arg_mime_parent_match
        - search_arg_mime_substring_match
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:352,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:350,2'
          Dst:             i_panic
        - Src:             'index-search-mime.c:355,3'
          Dst:             i_unreached
        - Src:             'index-search-mime.c:365,10'
          Dst:             search_arg_mime_substring_match
        - Src:             'index-search-mime.c:369,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:372,10'
          Dst:             search_arg_mime_param_match
        - Src:             'index-search-mime.c:378,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:382,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:385,10'
          Dst:             search_arg_mime_language_match
        - Src:             'index-search-mime.c:388,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:392,4'
          Dst:             strcmp
        - Src:             'index-search-mime.c:396,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:400,4'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:403,10'
          Dst:             search_arg_mime_param_match
        - Src:             'index-search-mime.c:410,10'
          Dst:             search_arg_mime_envelope_time_match
        - Src:             'index-search-mime.c:419,10'
          Dst:             search_arg_mime_envelope_address_match
        - Src:             'index-search-mime.c:425,10'
          Dst:             search_arg_mime_substring_match
        - Src:             'index-search-mime.c:430,10'
          Dst:             search_arg_mime_substring_match
        - Src:             'index-search-mime.c:435,10'
          Dst:             search_arg_mime_substring_match
        - Src:             'index-search-mime.c:448,10'
          Dst:             search_arg_mime_parent_match
        - Src:             'index-search-mime.c:450,10'
          Dst:             search_arg_mime_child_match
        - Src:             'index-search-mime.c:456,10'
          Dst:             search_arg_mime_filename_match
    - functionName:    search_arg_mime_substring_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strstr
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:162,10'
          Dst:             strstr
    - functionName:    search_arg_mime_param_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strcasecmp
        - strstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:313,7'
          Dst:             strcasecmp
        - Src:             'index-search-mime.c:316,12'
          Dst:             strstr
    - functionName:    search_arg_mime_language_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:329,2'
          Dst:             i_panic
        - Src:             'index-search-mime.c:335,8'
          Dst:             strcasecmp
    - functionName:    search_arg_mime_envelope_time_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - message_date_parse
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:186,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:181,5'
          Dst:             strlen
        - Src:             'index-search-mime.c:180,7'
          Dst:             message_date_parse
        - Src:             'index-search-mime.c:195,3'
          Dst:             i_unreached
    - functionName:    search_arg_mime_envelope_address_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - i_unreached
        - message_address_write
        - str_c
        - strstr
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:211,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:231,3'
          Dst:             i_unreached
        - Src:             'index-search-mime.c:238,14'
          Dst:             t_str_new
        - Src:             'index-search-mime.c:239,2'
          Dst:             message_address_write
        - Src:             'index-search-mime.c:240,17'
          Dst:             str_c
        - Src:             'index-search-mime.c:240,10'
          Dst:             strstr
    - functionName:    search_arg_mime_parent_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          106
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_modifiable_i
        - mail_search_mime_args_foreach
        - mail_search_mime_args_reset
        - search_mime_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:52,10'
          Dst:             array_idx_modifiable_i
        - Src:             'index-search-mime.c:55,2'
          Dst:             mail_search_mime_args_reset
        - Src:             'index-search-mime.c:59,8'
          Dst:             mail_search_mime_args_foreach
        - Src:             'index-search-mime.c:59,8'
          Dst:             search_mime_arg
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    search_arg_mime_parts_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          147
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_delete_i
        - array_idx_modifiable_i
        - mail_search_mime_args_foreach
        - mail_search_mime_args_reset
        - search_mime_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:490,10'
          Dst:             array_append_space_i
        - Src:             'index-search-mime.c:496,3'
          Dst:             mail_search_mime_args_reset
        - Src:             'index-search-mime.c:499,18'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:501,9'
          Dst:             mail_search_mime_args_foreach
        - Src:             'index-search-mime.c:501,9'
          Dst:             search_mime_arg
        - Src:             'index-search-mime.c:506,12'
          Dst:             array_append_space_i
        - Src:             'index-search-mime.c:513,5'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:513,5'
          Dst:             array_delete_i
        - Src:             'index-search-mime.c:514,13'
          Dst:             array_count_i
        - Src:             'index-search-mime.c:514,13'
          Dst:             array_idx_modifiable_i
    - functionName:    search_arg_match_mimepart
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - imap_bodystructure_parse_full
        - mail_get_special
        - pool_alloconly_create
        - search_arg_mime_parts_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:536,17'
          Dst:             pool_alloconly_create
        - Src:             'index-search-mime.c:538,3'
          Dst:             array_create_i
        - Src:             'index-search-mime.c:543,7'
          Dst:             mail_get_special
        - Src:             'index-search-mime.c:547,7'
          Dst:             imap_bodystructure_parse_full
        - Src:             'index-search-mime.c:554,9'
          Dst:             search_arg_mime_parts_match
    - functionName:    search_mime_arg_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - search_arg_mime_filename_deinit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:594,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:599,3'
          Dst:             search_arg_mime_filename_deinit
    - functionName:    index_search_mime_arg_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mail_search_mime_args_foreach
        - mail_search_mime_args_reset
        - search_mime_arg_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:612,2'
          Dst:             i_panic
        - Src:             'index-search-mime.c:618,2'
          Dst:             mail_search_mime_args_reset
        - Src:             'index-search-mime.c:619,8'
          Dst:             mail_search_mime_args_foreach
        - Src:             'index-search-mime.c:619,8'
          Dst:             search_mime_arg_deinit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    search_mimepart_arg
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - search_arg_match_mimepart
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-search-mime.c:561,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-search-mime.c:561,10'
          Dst:             search_arg_match_mimepart
    - functionName:    index_search_mime_arg_match
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-mime.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_search_args_foreach
        - pool_unref
        - search_mimepart_arg
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-mime.c:583,8'
          Dst:             mail_search_args_foreach
        - Src:             'index-search-mime.c:583,8'
          Dst:             search_mimepart_arg
        - Src:             'index-search-mime.c:585,2'
          Dst:             pool_unref
        - Src:             'index-search-mime.c:586,2'
          Dst:             str_free
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    index_sort_add_ids_range
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         141
      ICount:          848
      EdgeCount:       174
      CyclomaticComplexity: 35
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - index_sort_get_string
        - mail_index_lookup_uid
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:553,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-sort-string.c:571,3'
          Dst:             i_panic
        - Src:             'index-sort-string.c:575,3'
          Dst:             i_panic
        - Src:             'index-sort-string.c:578,2'
          Dst:             i_panic
        - Src:             'index-sort-string.c:589,6'
          Dst:             i_panic
        - Src:             'index-sort-string.c:603,4'
          Dst:             i_panic
        - Src:             'index-sort-string.c:606,3'
          Dst:             i_panic
        - Src:             'index-sort-string.c:611,4'
          Dst:             i_panic
        - Src:             'index-sort-string.c:616,5'
          Dst:             i_panic
        - Src:             'index-sort-string.c:625,8'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:635,8'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:642,2'
          Dst:             i_panic
        - Src:             'index-sort-string.c:649,8'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:658,32'
          Dst:             strcmp
        - Src:             'index-sort-string.c:664,5'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sort-string.c:666,5'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sort-string.c:668,17'
          Dst:             t_strdup_printf
        - Src:             'index-sort-string.c:675,35'
          Dst:             strcmp
        - Src:             'index-sort-string.c:689,5'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sort-string.c:691,17'
          Dst:             t_strdup_printf
        - Src:             'index-sort-string.c:696,4'
          Dst:             i_panic
        - Src:             'index-sort-string.c:704,2'
          Dst:             i_panic
        - Src:             'index-sort-string.c:706,27'
          Dst:             strcmp
        - Src:             'index-sort-string.c:707,7'
          Dst:             strcmp
        - Src:             'index-sort-string.c:711,14'
          Dst:             t_strdup_printf
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    index_sort_get_string
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          210
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - index_sort_get_expunged_string
        - index_sort_header_get
        - p_strdup
        - str_c
        - str_len
        - t_pop
        - t_push
        - t_str_new
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:374,38'
          Dst:             t_push
        - Src:             'index-sort-string.c:378,9'
          Dst:             t_str_new
        - Src:             'index-sort-string.c:379,9'
          Dst:             index_sort_header_get
        - Src:             'index-sort-string.c:384,9'
          Dst:             index_sort_get_expunged_string
        - Src:             'index-sort-string.c:392,29'
          Dst:             str_len
        - Src:             'index-sort-string.c:393,37'
          Dst:             str_c
        - Src:             'index-sort-string.c:393,5'
          Dst:             p_strdup
        - Src:             'index-sort-string.c:395,4'
          Dst:             t_pop
        - Src:             'index-sort-string.c:395,4'
          Dst:             i_panic
    - functionName:    index_sort_get_expunged_string
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          308
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - array_get_i
        - index_sort_header_get
        - p_strdup
        - str_c
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:315,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:340,7'
          Dst:             index_sort_header_get
        - Src:             'index-sort-string.c:342,13'
          Dst:             str_len
        - Src:             'index-sort-string.c:343,37'
          Dst:             str_c
        - Src:             'index-sort-string.c:343,5'
          Dst:             p_strdup
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_sort_bsearch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          255
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - index_sort_get_string
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:413,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-sort-string.c:414,2'
          Dst:             i_panic
        - Src:             'index-sort-string.c:418,7'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:419,10'
          Dst:             strcmp
        - Src:             'index-sort-string.c:425,9'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:428,12'
          Dst:             strcmp
        - Src:             'index-sort-string.c:458,14'
          Dst:             index_sort_get_string
    - functionName:    sort_node_zero_string_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_sort_node_cmp_type
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:256,8'
          Dst:             strcmp
        - Src:             'index-sort-string.c:260,9'
          Dst:             index_sort_node_cmp_type
    - functionName:    index_sort_reget_sort_ids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - array_clear_i
        - array_get_i
        - i_panic
        - index_sort_generate_seqs
        - index_sort_node_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:141,2'
          Dst:             i_panic
        - Src:             'index-sort-string.c:144,2'
          Dst:             index_sort_generate_seqs
        - Src:             'index-sort-string.c:145,2'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:146,2'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:150,9'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:153,3'
          Dst:             index_sort_node_add
    - functionName:    index_sort_generate_seqs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          167
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_create_i
        - array_get_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:110,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:111,11'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:113,7'
          Dst:             array_is_created_i
        - Src:             'index-sort-string.c:114,3'
          Dst:             array_create_i
        - Src:             'index-sort-string.c:116,3'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:131,3'
          Dst:             array_append_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    index_sort_node_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          336
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - array_append_i
        - i_panic
        - index_sort_list_reset_broken
        - index_sort_reget_sort_ids
        - mail_index_ext_get_reset_id
        - mail_index_lookup_ext_full
        - mail_index_lookup_uid
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:166,2'
          Dst:             mail_index_lookup_ext_full
        - Src:             'index-sort-string.c:189,4'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sort-string.c:191,4'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sort-string.c:193,38'
          Dst:             t_strdup_printf
        - Src:             'index-sort-string.c:193,4'
          Dst:             index_sort_list_reset_broken
        - Src:             'index-sort-string.c:205,8'
          Dst:             mail_index_ext_get_reset_id
        - Src:             'index-sort-string.c:210,5'
          Dst:             i_panic
        - Src:             'index-sort-string.c:220,5'
          Dst:             index_sort_reget_sort_ids
        - Src:             'index-sort-string.c:226,3'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:228,3'
          Dst:             array_append_i
    - functionName:    index_sort_list_reset_broken
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          77
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - buffer_get_modifiable_data
        - mailbox_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:852,2'
          Dst:             mailbox_set_critical
        - Src:             'index-sort-string.c:855,2'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:856,2'
          Dst:             array_append_array_i
        - Src:             'index-sort-string.c:858,2'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:860,2'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    6
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sort_write_changed_sort_ids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          247
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_i
        - array_sort_i
        - i_panic
        - mail_index_ext_reset_inc
        - mail_index_is_expunged
        - mail_index_update_ext
        - sort_node_seq_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:756,2'
          Dst:             mail_index_ext_reset_inc
        - Src:             'index-sort-string.c:766,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:772,8'
          Dst:             mail_index_is_expunged
        - Src:             'index-sort-string.c:777,2'
          Dst:             array_count_i
        - Src:             'index-sort-string.c:777,2'
          Dst:             array_create_i
        - Src:             'index-sort-string.c:780,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:782,3'
          Dst:             i_panic
        - Src:             'index-sort-string.c:787,3'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:791,2'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:791,2'
          Dst:             sort_node_seq_cmp
        - Src:             'index-sort-string.c:792,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:794,3'
          Dst:             mail_index_update_ext
        - Src:             'index-sort-string.c:797,2'
          Dst:             array_free_i
    - functionName:    sort_node_seq_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    index_sort_add_sort_ids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_i
        - index_sort_add_ids_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:722,10'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:736,7'
          Dst:             index_sort_add_ids_range
    - functionName:    index_sort_merge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          276
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_i
        - array_get_modifiable_i
        - index_sort_bsearch
        - index_sort_get_string
        - index_sort_node_cmp_type
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:476,2'
          Dst:             array_count_i
        - Src:             'index-sort-string.c:476,2'
          Dst:             array_count_i
        - Src:             'index-sort-string.c:476,2'
          Dst:             array_create_i
        - Src:             'index-sort-string.c:479,11'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:480,12'
          Dst:             array_get_modifiable_i
        - Src:             'index-sort-string.c:485,7'
          Dst:             index_sort_get_string
        - Src:             'index-sort-string.c:486,10'
          Dst:             strcmp
        - Src:             'index-sort-string.c:487,32'
          Dst:             strcmp
        - Src:             'index-sort-string.c:501,10'
          Dst:             index_sort_node_cmp_type
        - Src:             'index-sort-string.c:506,4'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:510,4'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:519,5'
          Dst:             index_sort_bsearch
        - Src:             'index-sort-string.c:521,5'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:530,3'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:532,3'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:536,2'
          Dst:             array_free_i
    - functionName:    index_sort_zeroes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          186
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_modifiable_i
        - array_sort_i
        - i_panic
        - index_sort_header_get
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - sort_node_zero_string_cmp
        - str_c
        - str_free
        - str_len
        - str_new
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:276,22'
          Dst:             malloc_multiply_check
        - Src:             'index-sort-string.c:276,22'
          Dst:             p_malloc
        - Src:             'index-sort-string.c:278,3'
          Dst:             pool_alloconly_create
        - Src:             'index-sort-string.c:279,8'
          Dst:             str_new
        - Src:             'index-sort-string.c:280,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-sort-string.c:282,3'
          Dst:             i_panic
        - Src:             'index-sort-string.c:284,3'
          Dst:             t_push
        - Src:             'index-sort-string.c:285,8'
          Dst:             index_sort_header_get
        - Src:             'index-sort-string.c:291,5'
          Dst:             str_len
        - Src:             'index-sort-string.c:292,20'
          Dst:             str_c
        - Src:             'index-sort-string.c:292,5'
          Dst:             p_strdup
        - Src:             'index-sort-string.c:293,5'
          Dst:             t_pop
        - Src:             'index-sort-string.c:293,5'
          Dst:             i_panic
        - Src:             'index-sort-string.c:295,2'
          Dst:             str_free
        - Src:             'index-sort-string.c:299,2'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:299,2'
          Dst:             sort_node_zero_string_cmp
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    index_sort_add_missing
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          145
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
        - index_sort_node_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:824,9'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:829,4'
          Dst:             i_panic
        - Src:             'index-sort-string.c:833,5'
          Dst:             index_sort_node_add
    - functionName:    sort_node_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_sort_node_cmp_type
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:810,9'
          Dst:             index_sort_node_cmp_type
    - functionName:    index_sort_list_finish_string
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          278
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - array_free_i
        - array_get_i
        - array_is_created_i
        - array_reverse_i
        - array_sort_i
        - index_sort_add_missing
        - index_sort_add_sort_ids
        - index_sort_generate_seqs
        - index_sort_list_reset_broken
        - index_sort_merge
        - index_sort_write_changed_sort_ids
        - index_sort_zeroes
        - p_free_internal
        - pool_unref
        - sort_node_cmp
        - sort_node_seq_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:873,6'
          Dst:             array_count_i
        - Src:             'index-sort-string.c:875,3'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:875,3'
          Dst:             sort_node_cmp
        - Src:             'index-sort-string.c:877,11'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:878,8'
          Dst:             array_is_created_i
        - Src:             'index-sort-string.c:879,4'
          Dst:             array_create_i
        - Src:             'index-sort-string.c:881,4'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:885,4'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:887,3'
          Dst:             array_free_i
        - Src:             'index-sort-string.c:891,4'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:891,4'
          Dst:             sort_node_seq_cmp
        - Src:             'index-sort-string.c:892,4'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:892,4'
          Dst:             sort_node_seq_cmp
        - Src:             'index-sort-string.c:898,3'
          Dst:             index_sort_generate_seqs
        - Src:             'index-sort-string.c:900,3'
          Dst:             index_sort_add_missing
        - Src:             'index-sort-string.c:902,3'
          Dst:             array_sort_i
        - Src:             'index-sort-string.c:902,3'
          Dst:             sort_node_cmp
        - Src:             'index-sort-string.c:905,4'
          Dst:             index_sort_zeroes
        - Src:             'index-sort-string.c:915,5'
          Dst:             array_reverse_i
        - Src:             'index-sort-string.c:916,5'
          Dst:             array_reverse_i
        - Src:             'index-sort-string.c:920,4'
          Dst:             index_sort_merge
        - Src:             'index-sort-string.c:922,8'
          Dst:             index_sort_add_sort_ids
        - Src:             'index-sort-string.c:926,4'
          Dst:             index_sort_list_reset_broken
        - Src:             'index-sort-string.c:928,3'
          Dst:             index_sort_write_changed_sort_ids
        - Src:             'index-sort-string.c:932,4'
          Dst:             array_reverse_i
        - Src:             'index-sort-string.c:935,11'
          Dst:             array_get_i
        - Src:             'index-sort-string.c:936,3'
          Dst:             array_clear_i
        - Src:             'index-sort-string.c:940,5'
          Dst:             array_append_i
        - Src:             'index-sort-string.c:943,3'
          Dst:             pool_unref
        - Src:             'index-sort-string.c:944,3'
          Dst:             p_free_internal
        - Src:             'index-sort-string.c:945,3'
          Dst:             array_free_i
        - Src:             'index-sort-string.c:952,2'
          Dst:             array_free_i
        - Src:             'index-sort-string.c:953,2'
          Dst:             p_free_internal
    - functionName:    index_sort_list_add_string
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_sort_node_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sort-string.c:247,2'
          Dst:             index_sort_node_add
    - functionName:    index_sort_list_init_string
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sort-string.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - array_create_i
        - i_unreached
        - mail_index_ext_register
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'index-sort-string.c:60,2'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sort-string.c:80,3'
          Dst:             i_unreached
        - Src:             'index-sort-string.c:83,27'
          Dst:             malloc_multiply_check
        - Src:             'index-sort-string.c:83,27'
          Dst:             p_malloc
        - Src:             'index-sort-string.c:87,16'
          Dst:             mail_index_ext_register
        - Src:             'index-sort-string.c:90,2'
          Dst:             array_create_i
        - Src:             'index-sort-string.c:91,2'
          Dst:             array_create_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_sync_changes_apply
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - array_get_i
        - array_is_created_i
        - mail_index_sync_flags_apply
        - mail_index_sync_keywords_apply
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-sync-changes.c:174,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sync-changes.c:172,10'
          Dst:             array_get_i
        - Src:             'index-sync-changes.c:176,4'
          Dst:             mail_index_sync_flags_apply
        - Src:             'index-sync-changes.c:181,9'
          Dst:             array_is_created_i
        - Src:             'index-sync-changes.c:188,5'
          Dst:             array_create_i
        - Src:             'index-sync-changes.c:191,8'
          Dst:             mail_index_sync_keywords_apply
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sync_changes_get_next_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_sync_changes_have
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:154,9'
          Dst:             array_count_i
    - functionName:    index_sync_changes_have_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - i_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:79,10'
          Dst:             array_idx_i
        - Src:             'index-sync-changes.c:82,4'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sync_changes_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          189
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_count_i
        - i_memcpy
        - index_sync_changes_delete_to
        - index_sync_changes_have_expunges
        - mail_index_lookup_seq_range
        - mail_index_sync_next
        - mail_index_update_flags_range
      functionUses:    2
      BranchProfiles:
        - Branch String:   'index-sync-changes.c:119,3'
          Branch Sides:    []
      Callsites:
        - Src:             'index-sync-changes.c:100,2'
          Dst:             index_sync_changes_delete_to
        - Src:             'index-sync-changes.c:101,15'
          Dst:             array_count_i
        - Src:             'index-sync-changes.c:105,4'
          Dst:             array_append_i
        - Src:             'index-sync-changes.c:109,5'
          Dst:             i_memcpy
        - Src:             'index-sync-changes.c:114,8'
          Dst:             mail_index_sync_next
        - Src:             'index-sync-changes.c:129,10'
          Dst:             mail_index_lookup_seq_range
        - Src:             'index-sync-changes.c:138,4'
          Dst:             mail_index_update_flags_range
        - Src:             'index-sync-changes.c:147,4'
          Dst:             index_sync_changes_have_expunges
    - functionName:    index_sync_changes_delete_to
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:56,10'
          Dst:             array_get_modifiable_i
        - Src:             'index-sync-changes.c:59,3'
          Dst:             i_panic
        - Src:             'index-sync-changes.c:68,2'
          Dst:             array_delete_i
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    index_sync_changes_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:46,2'
          Dst:             array_clear_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    index_sync_changes_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 42
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:40,2'
          Dst:             array_free_i
        - Src:             'index-sync-changes.c:41,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sync_changes_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-changes.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-changes.c:26,8'
          Dst:             malloc_multiply_check
        - Src:             'index-sync-changes.c:26,8'
          Dst:             p_malloc
        - Src:             'index-sync-changes.c:31,2'
          Dst:             array_create_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    index_sync_uidify_array
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_uid
        - seq_range_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:30,4'
          Dst:             mail_index_lookup_uid
        - Src:             'index-sync-search.c:31,4'
          Dst:             seq_range_array_add
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sync_search_results_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_search_results_update_expunges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:94,3'
          Dst:             index_search_results_update_expunges
    - functionName:    search_result_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_search_result_update_appends
        - index_search_result_update_flags
        - search_result_want_flag_updates
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:74,6'
          Dst:             search_result_want_flag_updates
        - Src:             'index-sync-search.c:75,9'
          Dst:             index_search_result_update_flags
        - Src:             'index-sync-search.c:78,8'
          Dst:             index_search_result_update_appends
    - functionName:    search_result_want_flag_updates
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    index_sync_search_results_update
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - search_result_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:86,12'
          Dst:             array_get_i
        - Src:             'index-sync-search.c:88,3'
          Dst:             search_result_update
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    index_sync_uidify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_create_i
        - index_sync_uidify_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:40,10'
          Dst:             array_count_i
        - Src:             'index-sync-search.c:41,3'
          Dst:             array_count_i
        - Src:             'index-sync-search.c:42,2'
          Dst:             array_create_i
        - Src:             'index-sync-search.c:44,2'
          Dst:             index_sync_uidify_array
        - Src:             'index-sync-search.c:45,2'
          Dst:             index_sync_uidify_array
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_sync_search_results_uidify
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-sync-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - array_is_created_i
        - i_panic
        - index_sync_uidify
        - search_result_want_flag_updates
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-sync-search.c:53,2'
          Dst:             array_is_created_i
        - Src:             'index-sync-search.c:53,2'
          Dst:             i_panic
        - Src:             'index-sync-search.c:55,12'
          Dst:             array_get_i
        - Src:             'index-sync-search.c:58,7'
          Dst:             search_result_want_flag_updates
        - Src:             'index-sync-search.c:59,4'
          Dst:             index_sync_uidify
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    mbox_read_from_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          458
      EdgeCount:       72
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read_memarea
        - i_stream_skip
        - io_stream_set_error
        - mbox_from_parse
        - memchr
        - memcmp
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:58,8'
          Dst:             i_stream_get_data
        - Src:             'istream-raw-mbox.c:59,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:71,14'
          Dst:             memchr
        - Src:             'istream-raw-mbox.c:72,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-raw-mbox.c:73,9'
          Dst:             i_stream_get_data
        - Src:             'istream-raw-mbox.c:87,3'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:92,24'
          Dst:             memcmp
        - Src:             'istream-raw-mbox.c:93,6'
          Dst:             mbox_from_parse
        - Src:             'istream-raw-mbox.c:97,3'
          Dst:             io_stream_set_error
        - Src:             'istream-raw-mbox.c:105,3'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:109,3'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:117,3'
          Dst:             i_stream_skip
        - Src:             'istream-raw-mbox.c:119,17'
          Dst:             i_stream_read_memarea
        - Src:             'istream-raw-mbox.c:120,8'
          Dst:             memchr
        - Src:             'istream-raw-mbox.c:124,4'
          Dst:             i_stream_skip
        - Src:             'istream-raw-mbox.c:127,4'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:138,2'
          Dst:             i_stream_skip
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_end_of_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          131
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:162,3'
          Dst:             i_panic
    - functionName:    mbox_istream_log_read_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - i_stream_get_error
        - i_stream_get_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:32,4'
          Dst:             i_stream_get_name
        - Src:             'istream-raw-mbox.c:33,4'
          Dst:             i_stream_get_error
        - Src:             'istream-raw-mbox.c:31,3'
          Dst:             i_error
    - functionName:    istream_raw_mbox_set_unlocked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    istream_raw_mbox_set_locked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    istream_raw_mbox_is_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    istream_raw_mbox_is_eof
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    istream_raw_mbox_set_next_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 781
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:785,2'
          Dst:             i_panic
    - functionName:    istream_raw_mbox_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          254
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_read
        - i_stream_seek_mark
        - istream_raw_mbox_next
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:735,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:739,2'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:748,10'
          Dst:             istream_raw_mbox_next
        - Src:             'istream-raw-mbox.c:761,3'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:763,3'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:772,2'
          Dst:             i_stream_seek_mark
        - Src:             'istream-raw-mbox.c:773,2'
          Dst:             i_stream_seek_mark
        - Src:             'istream-raw-mbox.c:776,9'
          Dst:             i_stream_read
    - functionName:    istream_raw_mbox_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          134
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_seek_mark
        - istream_raw_mbox_get_body_size
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:703,6'
          Dst:             istream_raw_mbox_get_body_size
        - Src:             'istream-raw-mbox.c:711,2'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:721,3'
          Dst:             i_stream_seek_mark
        - Src:             'istream-raw-mbox.c:722,2'
          Dst:             i_stream_seek_mark
    - functionName:    istream_raw_mbox_get_body_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          302
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_read_more
        - i_stream_seek
        - i_stream_skip
        - istream_raw_mbox_get_body_offset
        - istream_raw_mbox_is_valid_from
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:605,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:606,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:608,6'
          Dst:             istream_raw_mbox_get_body_offset
        - Src:             'istream-raw-mbox.c:631,4'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:635,3'
          Dst:             i_stream_seek
        - Src:             'istream-raw-mbox.c:636,7'
          Dst:             istream_raw_mbox_is_valid_from
        - Src:             'istream-raw-mbox.c:639,4'
          Dst:             i_stream_seek
        - Src:             'istream-raw-mbox.c:651,9'
          Dst:             i_stream_read_more
        - Src:             'istream-raw-mbox.c:652,3'
          Dst:             i_stream_skip
        - Src:             'istream-raw-mbox.c:653,2'
          Dst:             i_stream_seek
        - Src:             'istream-raw-mbox.c:657,2'
          Dst:             i_panic
    - functionName:    istream_raw_mbox_get_body_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          142
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_error
        - i_panic
        - i_stream_get_data_size
        - i_stream_get_name
        - i_stream_read
        - i_stream_seek
        - i_stream_skip
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:565,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:573,2'
          Dst:             i_stream_seek
        - Src:             'istream-raw-mbox.c:575,25'
          Dst:             i_stream_get_data_size
        - Src:             'istream-raw-mbox.c:575,3'
          Dst:             i_stream_skip
        - Src:             'istream-raw-mbox.c:577,7'
          Dst:             i_stream_read
        - Src:             'istream-raw-mbox.c:581,6'
          Dst:             i_stream_get_name
        - Src:             'istream-raw-mbox.c:579,5'
          Dst:             i_error
        - Src:             'istream-raw-mbox.c:584,5'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:590,2'
          Dst:             i_stream_seek
    - functionName:    istream_raw_mbox_is_valid_from
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          260
      EdgeCount:       68
      CyclomaticComplexity: 18
      functionsReached:
        - i_stream_get_data
        - i_stream_read_bytes
        - i_stream_read_memarea
        - mbox_from_parse
        - mbox_istream_log_read_error
        - memchr
        - memcmp
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:482,10'
          Dst:             i_stream_get_data
        - Src:             'istream-raw-mbox.c:485,18'
          Dst:             i_stream_read_memarea
        - Src:             'istream-raw-mbox.c:487,3'
          Dst:             mbox_istream_log_read_error
        - Src:             'istream-raw-mbox.c:495,19'
          Dst:             memcmp
        - Src:             'istream-raw-mbox.c:498,26'
          Dst:             memcmp
        - Src:             'istream-raw-mbox.c:505,9'
          Dst:             memchr
        - Src:             'istream-raw-mbox.c:506,9'
          Dst:             i_stream_read_bytes
        - Src:             'istream-raw-mbox.c:510,5'
          Dst:             mbox_istream_log_read_error
        - Src:             'istream-raw-mbox.c:515,6'
          Dst:             mbox_from_parse
        - Src:             'istream-raw-mbox.c:519,2'
          Dst:             p_free_internal
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    istream_raw_mbox_has_crlf_ending
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:692,2'
          Dst:             i_panic
    - functionName:    istream_raw_mbox_get_sender
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:680,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:683,9'
          Dst:             i_stream_read
    - functionName:    istream_raw_mbox_get_received_time
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:668,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:671,9'
          Dst:             i_stream_read
    - functionName:    istream_raw_mbox_get_header_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_error
        - i_panic
        - i_stream_get_name
        - i_stream_read
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:540,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:543,9'
          Dst:             i_stream_read
        - Src:             'istream-raw-mbox.c:547,19'
          Dst:             i_stream_get_name
        - Src:             'istream-raw-mbox.c:546,3'
          Dst:             i_error
    - functionName:    istream_raw_mbox_get_start_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:529,2'
          Dst:             i_panic
    - functionName:    i_stream_raw_mbox_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:431,6'
          Dst:             i_stream_stat
    - functionName:    i_stream_raw_mbox_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:418,2'
          Dst:             i_stream_sync
    - functionName:    i_stream_raw_mbox_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_raw_mbox_read
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         161
      ICount:          1114
      EdgeCount:       210
      CyclomaticComplexity: 51
      functionsReached:
        - handle_end_of_mail
        - i_error
        - i_panic
        - i_stream_get_data
        - i_stream_get_name
        - i_stream_raw_mbox_read
        - i_stream_read_memarea
        - i_stream_seek
        - io_stream_set_error
        - mbox_from_parse
        - mbox_istream_log_read_error
        - mbox_read_from_line
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:182,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:183,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:192,2'
          Dst:             i_stream_seek
        - Src:             'istream-raw-mbox.c:199,9'
          Dst:             i_stream_get_data
        - Src:             'istream-raw-mbox.c:209,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-raw-mbox.c:215,4'
          Dst:             mbox_istream_log_read_error
        - Src:             'istream-raw-mbox.c:240,4'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:254,4'
          Dst:             handle_end_of_mail
        - Src:             'istream-raw-mbox.c:255,21'
          Dst:             i_stream_raw_mbox_read
        - Src:             'istream-raw-mbox.c:266,11'
          Dst:             i_stream_raw_mbox_read
        - Src:             'istream-raw-mbox.c:268,7'
          Dst:             mbox_read_from_line
        - Src:             'istream-raw-mbox.c:272,5'
          Dst:             i_stream_get_name
        - Src:             'istream-raw-mbox.c:269,4'
          Dst:             io_stream_set_error
        - Src:             'istream-raw-mbox.c:275,5'
          Dst:             i_error
        - Src:             'istream-raw-mbox.c:284,9'
          Dst:             i_stream_get_data
        - Src:             'istream-raw-mbox.c:286,11'
          Dst:             i_stream_raw_mbox_read
        - Src:             'istream-raw-mbox.c:331,9'
          Dst:             mbox_from_parse
        - Src:             'istream-raw-mbox.c:338,6'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:343,6'
          Dst:             handle_end_of_mail
        - Src:             'istream-raw-mbox.c:376,4'
          Dst:             i_stream_get_name
        - Src:             'istream-raw-mbox.c:373,3'
          Dst:             io_stream_set_error
        - Src:             'istream-raw-mbox.c:379,3'
          Dst:             i_error
        - Src:             'istream-raw-mbox.c:390,11'
          Dst:             i_stream_raw_mbox_read
        - Src:             'istream-raw-mbox.c:391,3'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:394,3'
          Dst:             i_panic
    - functionName:    i_stream_raw_mbox_destroy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_seek
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:41,2'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:42,2'
          Dst:             p_free_internal
        - Src:             'istream-raw-mbox.c:44,2'
          Dst:             i_stream_seek
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    i_stream_create_raw_mbox
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c'
      linkageType:     externalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          138
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_create
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-raw-mbox.c:447,2'
          Dst:             i_panic
        - Src:             'istream-raw-mbox.c:449,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-raw-mbox.c:449,12'
          Dst:             p_malloc
        - Src:             'istream-raw-mbox.c:467,9'
          Dst:             i_stream_create
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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-index/../../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:    mail_index_map_clear_recent_flags
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_index_map_check_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          419
      EdgeCount:       69
      CyclomaticComplexity: 19
      functionsReached:
        - i_strdup
        - mail_index_check_header_compat
        - mail_index_map_clear_recent_flags
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-index-map-hdr.c:327,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-map-hdr.c:288,7'
          Dst:             mail_index_check_header_compat
        - Src:             'mail-index-map-hdr.c:293,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:300,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:309,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:316,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:322,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:334,27'
          Dst:             i_strdup
        - Src:             'mail-index-map-hdr.c:338,3'
          Dst:             mail_index_map_clear_recent_flags
        - Src:             'mail-index-map-hdr.c:357,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:363,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:369,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:386,15'
          Dst:             t_strdup_printf
    - functionName:    mail_index_check_header_compat
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          152
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-hdr.c:233,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:251,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:257,14'
          Dst:             t_strdup_printf
        - Src:             'mail-index-map-hdr.c:263,14'
          Dst:             t_strdup_printf
    - functionName:    mail_index_hdr_check_indexid
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_unlink_if_exists
        - mail_index_set_error
        - mail_transaction_log_has_changed
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-hdr.c:200,3'
          Dst:             i_panic
        - Src:             'mail-index-map-hdr.c:206,6'
          Dst:             mail_transaction_log_has_changed
        - Src:             'mail-index-map-hdr.c:214,2'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:218,3'
          Dst:             i_unlink_if_exists
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_map_parse_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          441
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - array_is_created_i
        - e_warning
        - i_panic
        - mail_index_keyword_lookup
        - mail_index_keyword_lookup_or_create
        - mail_index_map_lookup_ext
        - mail_index_set_error
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-hdr.c:71,7'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-map-hdr.c:72,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-map-hdr.c:73,4'
          Dst:             array_clear_i
        - Src:             'mail-index-map-hdr.c:76,8'
          Dst:             array_idx_i
        - Src:             'mail-index-map-hdr.c:89,2'
          Dst:             i_panic
        - Src:             'mail-index-map-hdr.c:94,15'
          Dst:             array_is_created_i
        - Src:             'mail-index-map-hdr.c:95,3'
          Dst:             array_count_i
        - Src:             'mail-index-map-hdr.c:99,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:106,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:115,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:128,3'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:135,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-map-hdr.c:136,3'
          Dst:             array_create_i
        - Src:             'mail-index-map-hdr.c:140,18'
          Dst:             array_count_i
        - Src:             'mail-index-map-hdr.c:148,4'
          Dst:             e_warning
        - Src:             'mail-index-map-hdr.c:153,18'
          Dst:             strlen
        - Src:             'mail-index-map-hdr.c:155,13'
          Dst:             array_idx_i
        - Src:             'mail-index-map-hdr.c:156,8'
          Dst:             mail_index_keyword_lookup
        - Src:             'mail-index-map-hdr.c:158,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:166,6'
          Dst:             array_count_i
        - Src:             'mail-index-map-hdr.c:174,4'
          Dst:             e_warning
        - Src:             'mail-index-map-hdr.c:179,18'
          Dst:             strlen
        - Src:             'mail-index-map-hdr.c:182,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:187,3'
          Dst:             mail_index_keyword_lookup_or_create
        - Src:             'mail-index-map-hdr.c:188,3'
          Dst:             array_append_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    mail_index_map_parse_extensions
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-map-hdr.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          173
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_count_i
        - mail_index_map_ext_get_next
        - mail_index_map_ext_hdr_check
        - mail_index_map_init_extbufs
        - mail_index_map_lookup_ext
        - mail_index_map_register_ext
        - mail_index_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-map-hdr.c:24,14'
          Dst:             array_count_i
        - Src:             'mail-index-map-hdr.c:25,2'
          Dst:             mail_index_map_init_extbufs
        - Src:             'mail-index-map-hdr.c:29,3'
          Dst:             array_append_i
        - Src:             'mail-index-map-hdr.c:34,7'
          Dst:             mail_index_map_ext_get_next
        - Src:             'mail-index-map-hdr.c:36,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:42,7'
          Dst:             mail_index_map_ext_hdr_check
        - Src:             'mail-index-map-hdr.c:44,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:49,7'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-map-hdr.c:50,4'
          Dst:             mail_index_set_error
        - Src:             'mail-index-map-hdr.c:56,9'
          Dst:             mail_index_map_register_ext
    - functionName:    mail_index_ext_align_cmp
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sync_ext_reorder
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          672
      EdgeCount:       100
      CyclomaticComplexity: 19
      functionsReached:
        - array_get_modifiable_i
        - buffer_append_zero
        - buffer_create_dynamic
        - buffer_free
        - buffer_get_modifiable_data
        - buffer_write
        - get_ext_header
        - i_panic
        - mail_index_ext_align_cmp
        - malloc_multiply_check
        - qsort
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:130,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:132,8'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-sync-ext.c:133,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:136,16'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-sync-ext.c:136,16'
          Dst:             t_malloc0
        - Src:             'mail-index-sync-ext.c:137,15'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-sync-ext.c:137,15'
          Dst:             t_malloc0
        - Src:             'mail-index-sync-ext.c:138,11'
          Dst:             malloc_multiply_check
        - Src:             'mail-index-sync-ext.c:138,11'
          Dst:             t_malloc0
        - Src:             'mail-index-sync-ext.c:145,2'
          Dst:             qsort
        - Src:             'mail-index-sync-ext.c:145,2'
          Dst:             mail_index_ext_align_cmp
        - Src:             'mail-index-sync-ext.c:179,4'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:186,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:194,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:198,15'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-sync-ext.c:203,3'
          Dst:             buffer_write
        - Src:             'mail-index-sync-ext.c:208,4'
          Dst:             buffer_write
        - Src:             'mail-index-sync-ext.c:219,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:220,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-sync-ext.c:223,2'
          Dst:             buffer_free
        - Src:             'mail-index-sync-ext.c:226,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-sync-ext.c:231,27'
          Dst:             get_ext_header
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    get_ext_header
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_modifiable_data
        - i_panic
        - memcmp
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:104,13'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-index-sync-ext.c:106,2'
          Dst:             strlen
        - Src:             'mail-index-sync-ext.c:106,2'
          Dst:             memcmp
        - Src:             'mail-index-sync-ext.c:106,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_sync_ext_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          483
      EdgeCount:       82
      CyclomaticComplexity: 18
      functionsReached:
        - array_idx_i
        - i_panic
        - mail_index_lookup_seq
        - mail_index_sync_set_corrupted
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-sync-ext.c:685,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync-ext.c:651,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:652,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:655,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:660,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-sync-ext.c:663,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-ext.c:664,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:679,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:716,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:722,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:728,3'
          Dst:             mail_index_sync_set_corrupted
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_index_sync_ext_rec_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          225
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_i
        - i_memcpy
        - i_panic
        - mail_index_lookup_seq
        - mail_index_sync_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:612,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:613,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:616,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:621,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mail-index-sync-ext.c:624,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-ext.c:625,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:632,2'
          Dst:             i_memcpy
    - functionName:    mail_index_sync_ext_hdr_update
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          144
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_i
        - buffer_write
        - i_panic
        - mail_index_modseq_hdr_update
        - mail_index_sync_set_corrupted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:580,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:587,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-ext.c:589,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:594,2'
          Dst:             buffer_write
        - Src:             'mail-index-sync-ext.c:595,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:598,3'
          Dst:             mail_index_modseq_hdr_update
    - functionName:    mail_index_sync_ext_clear
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          121
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_get_space_unsafe
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:528,9'
          Dst:             buffer_get_space_unsafe
        - Src:             'mail-index-sync-ext.c:530,2'
          Dst:             i_panic
    - functionName:    mail_index_sync_ext_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_modifiable_i
        - get_ext_header
        - mail_index_sync_ext_clear
        - mail_index_sync_get_atomic_map
        - mail_index_sync_set_corrupted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:547,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:559,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-sync-ext.c:561,8'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-sync-ext.c:565,3'
          Dst:             mail_index_sync_ext_clear
        - Src:             'mail-index-sync-ext.c:567,12'
          Dst:             get_ext_header
    - functionName:    mail_index_sync_ext_init_new
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          279
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - buffer_append
        - buffer_append_zero
        - i_panic
        - mail_index_ext_name_is_valid
        - mail_index_map_register_ext
        - mail_index_sync_get_atomic_map
        - mail_index_sync_init_handlers
        - strlen
        - sync_ext_reorder
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:367,2'
          Dst:             mail_index_ext_name_is_valid
        - Src:             'mail-index-sync-ext.c:367,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:372,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-sync-ext.c:375,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:379,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-sync-ext.c:386,16'
          Dst:             mail_index_map_register_ext
        - Src:             'mail-index-sync-ext.c:388,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-ext.c:391,2'
          Dst:             strlen
        - Src:             'mail-index-sync-ext.c:391,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:392,2'
          Dst:             buffer_append
        - Src:             'mail-index-sync-ext.c:393,2'
          Dst:             buffer_append
        - Src:             'mail-index-sync-ext.c:395,2'
          Dst:             buffer_append_zero
        - Src:             'mail-index-sync-ext.c:398,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:400,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:404,9'
          Dst:             mail_index_sync_init_handlers
        - Src:             'mail-index-sync-ext.c:405,2'
          Dst:             sync_ext_reorder
        - Src:             'mail-index-sync-ext.c:406,2'
          Dst:             i_panic
    - functionName:    mail_index_sync_init_handlers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_create_i
        - array_idx_get_space_i
        - array_is_created_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:74,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:78,10'
          Dst:             array_count_i
        - Src:             'mail-index-sync-ext.c:79,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:81,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:82,3'
          Dst:             array_create_i
        - Src:             'mail-index-sync-ext.c:85,8'
          Dst:             array_idx_get_space_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    sync_ext_resize
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          471
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - buffer_delete
        - buffer_insert_zero
        - get_ext_header
        - i_panic
        - mail_index_sync_get_atomic_map
        - sync_ext_reorder
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:247,8'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-sync-ext.c:264,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-sync-ext.c:266,8'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-sync-ext.c:273,4'
          Dst:             buffer_delete
        - Src:             'mail-index-sync-ext.c:280,3'
          Dst:             buffer_insert_zero
        - Src:             'mail-index-sync-ext.c:305,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:308,12'
          Dst:             get_ext_header
        - Src:             'mail-index-sync-ext.c:317,27'
          Dst:             array_count_i
        - Src:             'mail-index-sync-ext.c:321,9'
          Dst:             array_idx_modifiable_i
        - Src:             'mail-index-sync-ext.c:329,3'
          Dst:             sync_ext_reorder
    - functionName:    mail_index_sync_ext_unknown_complain
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_create_dynamic
        - buffer_get_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:345,4'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-sync-ext.c:347,6'
          Dst:             buffer_get_space_unsafe
    - functionName:    mail_index_sync_ext_intro
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          399
      EdgeCount:       69
      CyclomaticComplexity: 18
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - i_panic
        - mail_index_map_ext_hdr_check
        - mail_index_map_lookup_ext
        - mail_index_sync_ext_init_new
        - mail_index_sync_ext_unknown_complain
        - mail_index_sync_set_corrupted
        - strcmp
        - strlen
        - sync_ext_resize
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:428,8'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:429,20'
          Dst:             array_count_i
        - Src:             'mail-index-sync-ext.c:437,4'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:440,8'
          Dst:             mail_index_sync_ext_unknown_complain
        - Src:             'mail-index-sync-ext.c:442,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:448,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:457,10'
          Dst:             t_strndup
        - Src:             'mail-index-sync-ext.c:458,8'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-ext.c:464,9'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-ext.c:467,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:470,6'
          Dst:             strcmp
        - Src:             'mail-index-sync-ext.c:474,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:480,22'
          Dst:             strlen
        - Src:             'mail-index-sync-ext.c:488,6'
          Dst:             mail_index_map_ext_hdr_check
        - Src:             'mail-index-sync-ext.c:490,3'
          Dst:             mail_index_sync_set_corrupted
        - Src:             'mail-index-sync-ext.c:500,4'
          Dst:             sync_ext_resize
        - Src:             'mail-index-sync-ext.c:513,2'
          Dst:             mail_index_sync_ext_init_new
    - functionName:    mail_index_sync_deinit_handlers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:93,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:94,3'
          Dst:             array_free_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mail_index_sync_deinit_expunge_handlers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:60,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:67,2'
          Dst:             array_free_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mail_index_sync_init_expunge_handlers
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-ext.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          203
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_create_i
        - array_get_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-ext.c:23,7'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:27,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-ext.c:28,3'
          Dst:             array_clear_i
        - Src:             'mail-index-sync-ext.c:30,3'
          Dst:             array_create_i
        - Src:             'mail-index-sync-ext.c:32,9'
          Dst:             array_get_i
        - Src:             'mail-index-sync-ext.c:33,8'
          Dst:             array_get_i
        - Src:             'mail-index-sync-ext.c:34,11'
          Dst:             array_get_i
        - Src:             'mail-index-sync-ext.c:35,13'
          Dst:             array_get_modifiable_i
        - Src:             'mail-index-sync-ext.c:37,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-ext.c:49,3'
          Dst:             array_append_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    keywords_get_header_buf
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          173
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_write
        - i_panic
        - pool_datastack_create
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:55,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:62,12'
          Dst:             strlen
        - Src:             'mail-index-sync-keywords.c:64,8'
          Dst:             pool_datastack_create
        - Src:             'mail-index-sync-keywords.c:64,8'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-sync-keywords.c:65,2'
          Dst:             buffer_append
        - Src:             'mail-index-sync-keywords.c:66,2'
          Dst:             buffer_append
        - Src:             'mail-index-sync-keywords.c:68,2'
          Dst:             buffer_write
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    mail_index_sync_keywords_reset
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          137
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_idx_i
        - mail_index_lookup_seq_range
        - mail_index_map_lookup_ext
        - mail_index_modseq_update_to_highest
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:325,7'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-keywords.c:331,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-keywords.c:334,8'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-sync-keywords.c:338,3'
          Dst:             mail_index_modseq_update_to_highest
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-index/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    keywords_update_records
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          247
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_unreached
        - mail_index_lookup_seq_range
        - mail_index_modseq_update_to_highest
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mail-index-sync-keywords.c:228,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:213,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:215,7'
          Dst:             mail_index_lookup_seq_range
        - Src:             'mail-index-sync-keywords.c:218,2'
          Dst:             mail_index_modseq_update_to_highest
        - Src:             'mail-index-sync-keywords.c:223,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:226,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:245,3'
          Dst:             i_unreached
    - functionName:    keywords_ext_register
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          135
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_create_from_data
        - i_panic
        - mail_index_sync_ext_intro
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:84,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:86,2'
          Dst:             buffer_create_from_data
        - Src:             'mail-index-sync-keywords.c:89,6'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-sync-keywords.c:103,3'
          Dst:             buffer_append
        - Src:             'mail-index-sync-keywords.c:108,6'
          Dst:             mail_index_sync_ext_intro
        - Src:             'mail-index-sync-keywords.c:109,3'
          Dst:             i_panic
    - functionName:    keywords_header_add
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          336
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - array_idx_i
        - buffer_append_space_unsafe
        - buffer_append_zero
        - buffer_copy
        - buffer_create_dynamic
        - buffer_write
        - i_panic
        - i_unreached
        - keywords_ext_register
        - keywords_get_header_buf
        - mail_index_map_lookup_ext
        - mail_index_map_parse_keywords
        - mail_index_sync_get_atomic_map
        - pool_datastack_create
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:129,8'
          Dst:             mail_index_sync_get_atomic_map
        - Src:             'mail-index-sync-keywords.c:131,7'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-keywords.c:136,9'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-keywords.c:137,9'
          Dst:             keywords_get_header_buf
        - Src:             'mail-index-sync-keywords.c:146,9'
          Dst:             pool_datastack_create
        - Src:             'mail-index-sync-keywords.c:146,9'
          Dst:             buffer_create_dynamic
        - Src:             'mail-index-sync-keywords.c:147,12'
          Dst:             buffer_append_space_unsafe
        - Src:             'mail-index-sync-keywords.c:161,16'
          Dst:             strlen
        - Src:             'mail-index-sync-keywords.c:162,2'
          Dst:             buffer_write
        - Src:             'mail-index-sync-keywords.c:163,2'
          Dst:             buffer_write
        - Src:             'mail-index-sync-keywords.c:170,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-sync-keywords.c:175,3'
          Dst:             buffer_append_zero
        - Src:             'mail-index-sync-keywords.c:176,3'
          Dst:             keywords_ext_register
        - Src:             'mail-index-sync-keywords.c:183,8'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-keywords.c:185,4'
          Dst:             i_unreached
        - Src:             'mail-index-sync-keywords.c:186,9'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-keywords.c:188,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:191,2'
          Dst:             buffer_copy
        - Src:             'mail-index-sync-keywords.c:192,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:194,6'
          Dst:             mail_index_map_parse_keywords
        - Src:             'mail-index-sync-keywords.c:195,3'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:198,2'
          Dst:             i_panic
    - functionName:    keyword_lookup
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - array_is_created_i
        - mail_index_keyword_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:19,6'
          Dst:             array_is_created_i
        - Src:             'mail-index-sync-keywords.c:20,6'
          Dst:             mail_index_keyword_lookup
        - Src:             'mail-index-sync-keywords.c:23,13'
          Dst:             array_get_i
    - functionName:    mail_index_sync_keywords
      functionSourceFile: '/src/dovecot/src/lib-index/mail-index-sync-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          256
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_idx_i
        - i_panic
        - i_unreached
        - keyword_lookup
        - keywords_ext_register
        - keywords_header_add
        - keywords_update_records
        - mail_index_map_lookup_ext
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-index-sync-keywords.c:262,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:267,2'
          Dst:             i_panic
        - Src:             'mail-index-sync-keywords.c:272,17'
          Dst:             t_strndup
        - Src:             'mail-index-sync-keywords.c:273,7'
          Dst:             keyword_lookup
        - Src:             'mail-index-sync-keywords.c:274,3'
          Dst:             keywords_header_add
        - Src:             'mail-index-sync-keywords.c:279,7'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-keywords.c:281,3'
          Dst:             i_unreached
        - Src:             'mail-index-sync-keywords.c:283,8'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-keywords.c:293,11'
          Dst:             array_count_i
        - Src:             'mail-index-sync-keywords.c:291,3'
          Dst:             keywords_ext_register
        - Src:             'mail-index-sync-keywords.c:294,8'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mail-index-sync-keywords.c:297,4'
          Dst:             i_unreached
        - Src:             'mail-index-sync-keywords.c:298,9'
          Dst:             array_idx_i
        - Src:             'mail-index-sync-keywords.c:302,9'
          Dst:             keywords_update_records
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    bits_is_power_of_two
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/bits.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mail_search_args_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-imap.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_arg_to_imap
        - str_append_c
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-imap.c:340,8'
          Dst:             mail_search_arg_to_imap
        - Src:             'mail-search-args-imap.c:343,4'
          Dst:             str_append_c
    - functionName:    mail_search_arg_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-imap.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          896
      EdgeCount:       150
      CyclomaticComplexity: 25
      functionsReached:
        - array_idx_i
        - imap_append_astring
        - imap_str_is_atom
        - imap_write_flags
        - imap_write_seq_range
        - mail_index_get_keywords
        - mail_search_arg_to_imap_date
        - mail_search_arg_to_imap_flags
        - mail_search_mime_part_to_imap
        - mail_search_subargs_to_imap
        - mail_thread_type_to_str
        - str_append
        - str_append_c
        - str_len
        - str_printfa
        - str_truncate
        - strcasecmp
        - t_str_ucase
        - t_strdup_printf
      functionUses:    8
      BranchProfiles:
        - Branch String:   'mail-search-args-imap.c:92,2'
          Branch Sides:    []
        - Branch String:   'mail-search-args-imap.c:150,3'
          Branch Sides:    []
        - Branch String:   'mail-search-args-imap.c:177,3'
          Branch Sides:    []
        - Branch String:   'mail-search-args-imap.c:197,3'
          Branch Sides:    []
        - Branch String:   'mail-search-args-imap.c:277,4'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-search-args-imap.c:88,12'
          Dst:             str_len
        - Src:             'mail-search-args-imap.c:90,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:91,14'
          Dst:             str_len
        - Src:             'mail-search-args-imap.c:94,8'
          Dst:             mail_search_subargs_to_imap
        - Src:             'mail-search-args-imap.c:99,8'
          Dst:             mail_search_subargs_to_imap
        - Src:             'mail-search-args-imap.c:104,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:107,3'
          Dst:             imap_write_seq_range
        - Src:             'mail-search-args-imap.c:110,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:111,3'
          Dst:             imap_write_seq_range
        - Src:             'mail-search-args-imap.c:114,3'
          Dst:             mail_search_arg_to_imap_flags
        - Src:             'mail-search-args-imap.c:125,9'
          Dst:             imap_str_is_atom
        - Src:             'mail-search-args-imap.c:126,5'
          Dst:             str_truncate
        - Src:             'mail-search-args-imap.c:127,5'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:130,4'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:134,15'
          Dst:             mail_index_get_keywords
        - Src:             'mail-search-args-imap.c:137,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:139,11'
          Dst:             array_idx_i
        - Src:             'mail-search-args-imap.c:141,5'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:142,4'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:145,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:152,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:155,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:158,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:161,7'
          Dst:             mail_search_arg_to_imap_date
        - Src:             'mail-search-args-imap.c:165,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-args-imap.c:171,4'
          Dst:             str_truncate
        - Src:             'mail-search-args-imap.c:172,4'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:179,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:182,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:185,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:188,8'
          Dst:             mail_search_arg_to_imap_date
        - Src:             'mail-search-args-imap.c:189,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-args-imap.c:199,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:202,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:205,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:208,7'
          Dst:             mail_search_arg_to_imap_date
        - Src:             'mail-search-args-imap.c:212,15'
          Dst:             t_strdup_printf
        - Src:             'mail-search-args-imap.c:218,4'
          Dst:             str_truncate
        - Src:             'mail-search-args-imap.c:219,4'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:224,3'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:227,3'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:232,7'
          Dst:             strcasecmp
        - Src:             'mail-search-args-imap.c:233,7'
          Dst:             strcasecmp
        - Src:             'mail-search-args-imap.c:234,7'
          Dst:             strcasecmp
        - Src:             'mail-search-args-imap.c:235,7'
          Dst:             strcasecmp
        - Src:             'mail-search-args-imap.c:236,7'
          Dst:             strcasecmp
        - Src:             'mail-search-args-imap.c:237,21'
          Dst:             t_str_ucase
        - Src:             'mail-search-args-imap.c:237,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:239,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:240,4'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:242,3'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:243,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:247,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:248,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:251,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:252,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:259,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:263,9'
          Dst:             imap_str_is_atom
        - Src:             'mail-search-args-imap.c:264,5'
          Dst:             str_truncate
        - Src:             'mail-search-args-imap.c:265,5'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:268,4'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:271,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:272,4'
          Dst:             imap_write_flags
        - Src:             'mail-search-args-imap.c:276,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:279,5'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:282,5'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:285,5'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:288,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:290,3'
          Dst:             str_printfa
        - Src:             'mail-search-args-imap.c:294,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:297,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:299,10'
          Dst:             mail_thread_type_to_str
        - Src:             'mail-search-args-imap.c:298,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:301,3'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:302,8'
          Dst:             mail_search_subargs_to_imap
        - Src:             'mail-search-args-imap.c:307,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:308,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:317,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:318,3'
          Dst:             imap_append_astring
        - Src:             'mail-search-args-imap.c:321,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:322,3'
          Dst:             imap_write_seq_range
        - Src:             'mail-search-args-imap.c:325,3'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:326,8'
          Dst:             mail_search_mime_part_to_imap
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    31
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    mail_search_subargs_to_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          126
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - mail_search_arg_to_imap
        - str_append
        - str_append_c
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-imap.c:27,3'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:30,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:31,8'
          Dst:             mail_search_arg_to_imap
        - Src:             'mail-search-args-imap.c:34,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:37,3'
          Dst:             str_append_c
    - functionName:    mail_search_arg_to_imap_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - bits_is_power_of_two
        - i_panic
        - str_append
        - str_append_c
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-imap.c:66,2'
          Dst:             i_panic
        - Src:             'mail-search-args-imap.c:68,7'
          Dst:             bits_is_power_of_two
        - Src:             'mail-search-args-imap.c:69,3'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:72,4'
          Dst:             str_append
        - Src:             'mail-search-args-imap.c:73,4'
          Dst:             str_append_c
        - Src:             'mail-search-args-imap.c:77,21'
          Dst:             str_len
        - Src:             'mail-search-args-imap.c:77,2'
          Dst:             str_truncate
        - Src:             'mail-search-args-imap.c:78,7'
          Dst:             bits_is_power_of_two
        - Src:             'mail-search-args-imap.c:79,3'
          Dst:             str_append_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    5
      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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    mail_search_arg_to_imap_date
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-args-imap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - imap_to_date
        - localtime
        - str_printfa
        - utc_offset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-args-imap.c:49,19'
          Dst:             localtime
        - Src:             'mail-search-args-imap.c:50,19'
          Dst:             utc_offset
        - Src:             'mail-search-args-imap.c:53,7'
          Dst:             imap_to_date
        - Src:             'mail-search-args-imap.c:55,2'
          Dst:             str_printfa
    - functionName:    mail_search_mime_build_list
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_search_mime_build_key_int
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:105,9'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime-build.c:105,9'
          Dst:             p_malloc
        - Src:             'mail-search-mime-build.c:109,16'
          Dst:             mail_search_mime_build_key_int
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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-storage/../../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:    mail_search_mime_build_key_int
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          141
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mail_search_mime_build_list
        - mail_search_mime_register_find
        - mail_search_parse_key
        - p_strconcat
        - strcmp
        - t_str_ucase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:52,13'
          Dst:             mail_search_parse_key
        - Src:             'mail-search-mime-build.c:55,6'
          Dst:             strcmp
        - Src:             'mail-search-mime-build.c:56,7'
          Dst:             mail_search_mime_build_list
        - Src:             'mail-search-mime-build.c:67,8'
          Dst:             t_str_ucase
        - Src:             'mail-search-mime-build.c:69,12'
          Dst:             mail_search_mime_register_find
        - Src:             'mail-search-mime-build.c:74,22'
          Dst:             p_strconcat
    - functionName:    mail_search_mime_build_add
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:167,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime-build.c:167,8'
          Dst:             p_malloc
    - functionName:    mail_search_mime_build
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mail_search_mime_build_key
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:144,3'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime-build.c:144,3'
          Dst:             p_malloc
        - Src:             'mail-search-mime-build.c:146,11'
          Dst:             mail_search_mime_build_key
    - functionName:    mail_search_mime_build_key
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_search_mime_build_key_int
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:89,8'
          Dst:             mail_search_mime_build_key_int
    - functionName:    mail_search_mime_build_str
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_search_mime_build_new
        - mail_search_parse_string
        - p_strdup
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:32,9'
          Dst:             mail_search_mime_build_new
        - Src:             'mail-search-mime-build.c:33,6'
          Dst:             mail_search_parse_string
        - Src:             'mail-search-mime-build.c:35,20'
          Dst:             p_strdup
    - functionName:    mail_search_mime_build_new
      functionSourceFile: '/src/dovecot/src/lib-storage/mail-search-mime-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-search-mime-build.c:20,8'
          Dst:             malloc_multiply_check
        - Src:             'mail-search-mime-build.c:20,8'
          Dst:             p_malloc
    - functionName:    mail_storage_list_mailbox_create
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          105
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mailbox_create
        - mailbox_get_last_internal_error
        - mailbox_get_last_mail_error
        - mailbox_get_vname
        - mailbox_mark_index_deleted
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:328,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:328,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:328,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:329,6'
          Dst:             mailbox_create
        - Src:             'mail-storage-list-index-rebuild.c:332,6'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage-list-index-rebuild.c:335,7'
          Dst:             mailbox_mark_index_deleted
        - Src:             'mail-storage-list-index-rebuild.c:337,7'
          Dst:             mailbox_create
        - Src:             'mail-storage-list-index-rebuild.c:340,6'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage-list-index-rebuild.c:344,3'
          Dst:             mailbox_get_vname
        - Src:             'mail-storage-list-index-rebuild.c:344,27'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:342,2'
          Dst:             mailbox_set_critical
    - functionName:    mail_storage_list_index_try_create
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          187
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - guid_128_copy
        - guid_128_to_string
        - mail_storage_list_mailbox_create
        - mail_storage_set_critical
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_get_last_mail_error
        - mailbox_name_add_random_suffix
        - mailbox_open
        - mailbox_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:370,2'
          Dst:             guid_128_copy
        - Src:             'mail-storage-list-index-rebuild.c:372,28'
          Dst:             mailbox_name_add_random_suffix
        - Src:             'mail-storage-list-index-rebuild.c:375,8'
          Dst:             mailbox_alloc
        - Src:             'mail-storage-list-index-rebuild.c:376,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:376,2'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:376,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:376,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:380,13'
          Dst:             mail_storage_list_mailbox_create
        - Src:             'mail-storage-list-index-rebuild.c:382,11'
          Dst:             mailbox_sync
        - Src:             'mail-storage-list-index-rebuild.c:385,10'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:383,3'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:388,2'
          Dst:             mailbox_free
        - Src:             'mail-storage-list-index-rebuild.c:395,8'
          Dst:             mailbox_alloc
        - Src:             'mail-storage-list-index-rebuild.c:396,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:396,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:396,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:397,6'
          Dst:             mailbox_open
        - Src:             'mail-storage-list-index-rebuild.c:398,6'
          Dst:             mailbox_get_last_mail_error
        - Src:             'mail-storage-list-index-rebuild.c:401,10'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:399,3'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:404,2'
          Dst:             mailbox_free
    - functionName:    guid_128_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/guid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/guid.h:38,2'
          Dst:             i_memcpy
    - functionName:    mailbox_name_add_random_suffix
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex
        - random_fill
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:351,2'
          Dst:             random_fill
        - Src:             'mail-storage-list-index-rebuild.c:353,7'
          Dst:             binary_to_hex
        - Src:             'mail-storage-list-index-rebuild.c:352,9'
          Dst:             t_strconcat
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    try_get_mailbox_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          176
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_index_alloc
        - mail_index_close
        - mail_index_ext_lookup
        - mail_index_free
        - mail_index_get_header_ext
        - mail_index_get_last_error
        - mail_index_open
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_name_hdr_decode_storage_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:105,3'
          Dst:             mail_index_alloc
        - Src:             'mail-storage-list-index-rebuild.c:111,12'
          Dst:             mail_index_open
        - Src:             'mail-storage-list-index-rebuild.c:112,7'
          Dst:             mail_index_ext_lookup
        - Src:             'mail-storage-list-index-rebuild.c:113,11'
          Dst:             mail_index_view_open
        - Src:             'mail-storage-list-index-rebuild.c:116,4'
          Dst:             mail_index_get_header_ext
        - Src:             'mail-storage-list-index-rebuild.c:118,14'
          Dst:             mailbox_name_hdr_decode_storage_name
        - Src:             'mail-storage-list-index-rebuild.c:122,4'
          Dst:             mail_index_view_close
        - Src:             'mail-storage-list-index-rebuild.c:124,4'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:124,4'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:124,4'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:127,3'
          Dst:             mail_index_close
        - Src:             'mail-storage-list-index-rebuild.c:129,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:129,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:129,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:131,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:131,3'
          Dst:             mail_index_get_last_error
        - Src:             'mail-storage-list-index-rebuild.c:131,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:131,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:134,2'
          Dst:             mail_index_free
    - functionName:    mail_storage_list_index_create
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - guid_128_to_string
        - i_panic
        - mail_storage_list_index_try_create
        - mail_storage_set_critical
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:418,3'
          Dst:             t_push
        - Src:             'mail-storage-list-index-rebuild.c:419,10'
          Dst:             mail_storage_list_index_try_create
        - Src:             'mail-storage-list-index-rebuild.c:421,5'
          Dst:             t_pop
        - Src:             'mail-storage-list-index-rebuild.c:421,5'
          Dst:             i_panic
        - Src:             'mail-storage-list-index-rebuild.c:428,3'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:425,2'
          Dst:             mail_storage_set_critical
    - functionName:    get_box_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - guid_128_to_string
        - mailbox_list_get_root_forced
        - t_strdup_printf
        - try_get_mailbox_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:144,5'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mail-storage-list-index-rebuild.c:145,5'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:143,3'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-list-index-rebuild.c:149,6'
          Dst:             try_get_mailbox_name
        - Src:             'mail-storage-list-index-rebuild.c:150,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:150,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:150,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:153,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:153,3'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:153,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:153,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:158,4'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:156,14'
          Dst:             t_strdup_printf
    - functionName:    mailbox_name_sanitize
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib-storage/mail-storage-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 956
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib-storage/mail-storage-private.h:957,9'
          Dst:             str_sanitize
    - functionName:    mail_storage_list_remove_duplicate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          156
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - e_warning
        - event_send_abort
        - event_want_level
        - guid_128_to_string
        - mail_storage_set_critical
        - mailbox_list_get_last_internal_error
        - mailbox_list_index_sync_delete
        - mailbox_name_sanitize
        - p_strdup
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:208,6'
          Dst:             strcmp
        - Src:             'mail-storage-list-index-rebuild.c:216,7'
          Dst:             strlen
        - Src:             'mail-storage-list-index-rebuild.c:215,6'
          Dst:             strncmp
        - Src:             'mail-storage-list-index-rebuild.c:221,15'
          Dst:             p_strdup
        - Src:             'mail-storage-list-index-rebuild.c:224,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:224,2'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage-list-index-rebuild.c:224,2'
          Dst:             mailbox_name_sanitize
        - Src:             'mail-storage-list-index-rebuild.c:224,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:224,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:228,6'
          Dst:             mailbox_list_index_sync_delete
        - Src:             'mail-storage-list-index-rebuild.c:232,17'
          Dst:             mailbox_list_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:230,3'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:235,2'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:235,2'
          Dst:             e_warning
    - functionName:    mail_storage_list_index_find_indexed_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          228
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - guid_128_copy
        - guid_128_to_string
        - hash_table_insert
        - hash_table_lookup
        - mail_storage_list_remove_duplicate
        - mail_storage_set_critical
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_get_metadata
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:254,8'
          Dst:             mailbox_alloc
        - Src:             'mail-storage-list-index-rebuild.c:256,6'
          Dst:             mailbox_get_metadata
        - Src:             'mail-storage-list-index-rebuild.c:259,17'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:257,3'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:263,8'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:262,20'
          Dst:             t_strdup_printf
        - Src:             'mail-storage-list-index-rebuild.c:264,17'
          Dst:             hash_table_lookup
        - Src:             'mail-storage-list-index-rebuild.c:269,4'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:269,4'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:269,4'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:269,4'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:273,19'
          Dst:             p_strdup
        - Src:             'mail-storage-list-index-rebuild.c:274,18'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage-list-index-rebuild.c:274,18'
          Dst:             p_malloc
        - Src:             'mail-storage-list-index-rebuild.c:277,5'
          Dst:             p_strdup
        - Src:             'mail-storage-list-index-rebuild.c:278,4'
          Dst:             guid_128_copy
        - Src:             'mail-storage-list-index-rebuild.c:279,4'
          Dst:             hash_table_insert
        - Src:             'mail-storage-list-index-rebuild.c:282,5'
          Dst:             p_strdup
        - Src:             'mail-storage-list-index-rebuild.c:283,4'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:283,4'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:283,4'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:283,4'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:291,8'
          Dst:             mail_storage_list_remove_duplicate
        - Src:             'mail-storage-list-index-rebuild.c:296,2'
          Dst:             mailbox_free
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mail_storage_list_index_add_missing
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          373
      EdgeCount:       77
      CyclomaticComplexity: 18
      functionsReached:
        - e_debug
        - e_warning
        - event_send_abort
        - event_want_level
        - get_box_name
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - i_panic
        - mail_namespaces_get_root_sep
        - mail_storage_list_index_create
        - mail_storage_set_critical
        - mailbox_name_add_random_suffix
        - mailbox_tree_deinit
        - mailbox_tree_get
        - mailbox_tree_init_size
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
        - mailbox_tree_sort
        - strcmp
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:445,13'
          Dst:             mail_namespaces_get_root_sep
        - Src:             'mail-storage-list-index-rebuild.c:448,9'
          Dst:             hash_table_iterate_init
        - Src:             'mail-storage-list-index-rebuild.c:452,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:452,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:452,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:454,3'
          Dst:             mailbox_tree_init_size
        - Src:             'mail-storage-list-index-rebuild.c:456,9'
          Dst:             hash_table_iterate
        - Src:             'mail-storage-list-index-rebuild.c:456,63'
          Dst:             t_push
        - Src:             'mail-storage-list-index-rebuild.c:464,11'
          Dst:             get_box_name
        - Src:             'mail-storage-list-index-rebuild.c:471,17'
          Dst:             t_strconcat
        - Src:             'mail-storage-list-index-rebuild.c:473,5'
          Dst:             strcmp
        - Src:             'mail-storage-list-index-rebuild.c:476,17'
          Dst:             t_strconcat
        - Src:             'mail-storage-list-index-rebuild.c:480,12'
          Dst:             mailbox_tree_get
        - Src:             'mail-storage-list-index-rebuild.c:490,5'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:497,12'
          Dst:             mailbox_name_add_random_suffix
        - Src:             'mail-storage-list-index-rebuild.c:499,4'
          Dst:             t_pop
        - Src:             'mail-storage-list-index-rebuild.c:499,4'
          Dst:             i_panic
        - Src:             'mail-storage-list-index-rebuild.c:500,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'mail-storage-list-index-rebuild.c:504,2'
          Dst:             mailbox_tree_sort
        - Src:             'mail-storage-list-index-rebuild.c:507,3'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mail-storage-list-index-rebuild.c:509,2'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:509,2'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:509,2'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:510,18'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mail-storage-list-index-rebuild.c:519,8'
          Dst:             mail_storage_list_index_create
        - Src:             'mail-storage-list-index-rebuild.c:527,2'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mail-storage-list-index-rebuild.c:529,3'
          Dst:             e_warning
        - Src:             'mail-storage-list-index-rebuild.c:533,2'
          Dst:             mailbox_tree_deinit
    - functionName:    mail_storage_list_index_find_indexed_mailboxes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - mail_storage_list_index_find_indexed_mailbox
        - mail_storage_set_critical
        - mailbox_list_get_last_internal_error
        - mailbox_list_iter_deinit
        - mailbox_list_iter_init
        - mailbox_list_iter_next
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:308,9'
          Dst:             mailbox_list_iter_init
        - Src:             'mail-storage-list-index-rebuild.c:312,29'
          Dst:             mailbox_list_iter_next
        - Src:             'mail-storage-list-index-rebuild.c:312,68'
          Dst:             t_push
        - Src:             'mail-storage-list-index-rebuild.c:313,9'
          Dst:             mail_storage_list_index_find_indexed_mailbox
        - Src:             'mail-storage-list-index-rebuild.c:314,4'
          Dst:             t_pop
        - Src:             'mail-storage-list-index-rebuild.c:314,4'
          Dst:             i_panic
        - Src:             'mail-storage-list-index-rebuild.c:315,6'
          Dst:             mailbox_list_iter_deinit
        - Src:             'mail-storage-list-index-rebuild.c:318,4'
          Dst:             mailbox_list_get_last_internal_error
        - Src:             'mail-storage-list-index-rebuild.c:316,3'
          Dst:             mail_storage_set_critical
    - functionName:    mail_storage_list_index_fill_storage_mailboxes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          165
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - fs_iter_deinit
        - fs_iter_init_with_event
        - fs_iter_next
        - guid_128_copy
        - guid_128_from_string
        - guid_128_to_string
        - hash_table_update
        - i_panic
        - mail_storage_set_critical
        - mailbox_list_get_root_forced
        - malloc_multiply_check
        - p_malloc
        - p_strdup_printf
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:172,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mail-storage-list-index-rebuild.c:173,9'
          Dst:             fs_iter_init_with_event
        - Src:             'mail-storage-list-index-rebuild.c:176,18'
          Dst:             fs_iter_next
        - Src:             'mail-storage-list-index-rebuild.c:176,47'
          Dst:             t_push
        - Src:             'mail-storage-list-index-rebuild.c:177,7'
          Dst:             guid_128_from_string
        - Src:             'mail-storage-list-index-rebuild.c:178,10'
          Dst:             malloc_multiply_check
        - Src:             'mail-storage-list-index-rebuild.c:178,10'
          Dst:             p_malloc
        - Src:             'mail-storage-list-index-rebuild.c:179,4'
          Dst:             guid_128_copy
        - Src:             'mail-storage-list-index-rebuild.c:180,4'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:180,4'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:180,4'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:180,4'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:185,10'
          Dst:             guid_128_to_string
        - Src:             'mail-storage-list-index-rebuild.c:183,15'
          Dst:             p_strdup_printf
        - Src:             'mail-storage-list-index-rebuild.c:187,4'
          Dst:             hash_table_update
        - Src:             'mail-storage-list-index-rebuild.c:189,4'
          Dst:             t_pop
        - Src:             'mail-storage-list-index-rebuild.c:189,4'
          Dst:             i_panic
        - Src:             'mail-storage-list-index-rebuild.c:191,6'
          Dst:             fs_iter_deinit
        - Src:             'mail-storage-list-index-rebuild.c:192,3'
          Dst:             mail_storage_set_critical
    - functionName:    rebuild_ns_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:65,9'
          Dst:             strcmp
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:    mail_storage_list_index_rebuild_unlock_lists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_get_modifiable_data
        - mailbox_list_index_sync_end
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:94,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-storage-list-index-rebuild.c:96,10'
          Dst:             mailbox_list_index_sync_end
    - functionName:    mail_storage_list_index_rebuild_ctx
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_modifiable_data
        - e_debug
        - event_send_abort
        - event_want_level
        - mail_storage_list_index_add_missing
        - mail_storage_list_index_fill_storage_mailboxes
        - mail_storage_list_index_find_indexed_mailboxes
        - mail_storage_list_index_rebuild_unlock_lists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:541,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-storage-list-index-rebuild.c:542,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:542,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:542,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:545,7'
          Dst:             mail_storage_list_index_fill_storage_mailboxes
        - Src:             'mail-storage-list-index-rebuild.c:547,7'
          Dst:             mail_storage_list_index_find_indexed_mailboxes
        - Src:             'mail-storage-list-index-rebuild.c:555,2'
          Dst:             mail_storage_list_index_rebuild_unlock_lists
        - Src:             'mail-storage-list-index-rebuild.c:556,6'
          Dst:             mail_storage_list_index_add_missing
    - functionName:    mail_storage_list_index_rebuild_lock_lists
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_sort_i
        - buffer_get_modifiable_data
        - mail_storage_copy_list_error
        - mailbox_list_index_sync_begin
        - rebuild_ns_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:76,2'
          Dst:             array_sort_i
        - Src:             'mail-storage-list-index-rebuild.c:76,2'
          Dst:             rebuild_ns_cmp
        - Src:             'mail-storage-list-index-rebuild.c:78,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'mail-storage-list-index-rebuild.c:79,7'
          Dst:             mailbox_list_index_sync_begin
        - Src:             'mail-storage-list-index-rebuild.c:81,4'
          Dst:             mail_storage_copy_list_error
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mail_storage_list_index_rebuild_get_namespaces
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:45,2'
          Dst:             array_create_i
        - Src:             'mail-storage-list-index-rebuild.c:52,7'
          Dst:             strcmp
        - Src:             'mail-storage-list-index-rebuild.c:55,16'
          Dst:             array_append_space_i
        - Src:             'mail-storage-list-index-rebuild.c:59,9'
          Dst:             array_count_i
    - functionName:    mail_storage_list_index_rebuild
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - e_warning
        - event_send_abort
        - event_want_level
        - mail_storage_list_index_rebuild_int
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mail-storage-list-index-rebuild.c:642,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:644,3'
          Dst:             e_warning
        - Src:             'mail-storage-list-index-rebuild.c:648,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:648,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:648,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:652,3'
          Dst:             event_want_level
        - Src:             'mail-storage-list-index-rebuild.c:652,3'
          Dst:             e_debug
        - Src:             'mail-storage-list-index-rebuild.c:652,3'
          Dst:             event_send_abort
        - Src:             'mail-storage-list-index-rebuild.c:656,9'
          Dst:             mail_storage_list_index_rebuild_int
    - functionName:    mail_storage_list_index_rebuild_int
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          126
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - event_reason_begin
        - event_reason_end
        - hash_table_create
        - hash_table_destroy
        - mail_storage_list_index_rebuild_ctx
        - mail_storage_list_index_rebuild_get_namespaces
        - mail_storage_list_index_rebuild_lock_lists
        - mail_storage_list_index_rebuild_unlock_lists
        - mail_storage_set_critical
        - pool_alloconly_create
        - pool_unref
        - str_hash
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:568,3'
          Dst:             mail_storage_set_critical
        - Src:             'mail-storage-list-index-rebuild.c:580,13'
          Dst:             pool_alloconly_create
        - Src:             'mail-storage-list-index-rebuild.c:581,2'
          Dst:             hash_table_create
        - Src:             'mail-storage-list-index-rebuild.c:581,2'
          Dst:             str_hash
        - Src:             'mail-storage-list-index-rebuild.c:581,2'
          Dst:             strcmp
        - Src:             'mail-storage-list-index-rebuild.c:584,7'
          Dst:             mail_storage_list_index_rebuild_get_namespaces
        - Src:             'mail-storage-list-index-rebuild.c:585,3'
          Dst:             hash_table_destroy
        - Src:             'mail-storage-list-index-rebuild.c:586,3'
          Dst:             pool_unref
        - Src:             'mail-storage-list-index-rebuild.c:595,3'
          Dst:             event_reason_begin
        - Src:             'mail-storage-list-index-rebuild.c:596,13'
          Dst:             mail_storage_list_index_rebuild_lock_lists
        - Src:             'mail-storage-list-index-rebuild.c:597,9'
          Dst:             mail_storage_list_index_rebuild_ctx
        - Src:             'mail-storage-list-index-rebuild.c:598,2'
          Dst:             mail_storage_list_index_rebuild_unlock_lists
        - Src:             'mail-storage-list-index-rebuild.c:599,2'
          Dst:             event_reason_end
        - Src:             'mail-storage-list-index-rebuild.c:601,2'
          Dst:             hash_table_destroy
        - Src:             'mail-storage-list-index-rebuild.c:602,2'
          Dst:             pool_unref
    - functionName:    mail_storage_list_index_rebuild_and_set_uncorrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mail-storage-list-index-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - mail_storage_list_index_rebuild_int
        - mailbox_list_index_set_uncorrupted
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-storage-list-index-rebuild.c:622,6'
          Dst:             mail_storage_list_index_rebuild_int
        - Src:             'mail-storage-list-index-rebuild.c:627,7'
          Dst:             mailbox_list_index_set_uncorrupted
    - functionName:    mailbox_list_delete_symlink_default
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          105
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_panic
        - mailbox_list_get_path
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - t_strdup_printf
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:472,8'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:476,2'
          Dst:             i_panic
        - Src:             'mailbox-list-delete.c:478,6'
          Dst:             unlink
        - Src:             'mailbox-list-delete.c:481,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:483,4'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:483,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:482,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:484,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:484,13'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:485,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:488,3'
          Dst:             mailbox_list_set_critical
    - functionName:    mailbox_list_delete_finish_ret
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_delete_finish
        - mailbox_list_get_last_mail_error
        - mailbox_list_get_vname
        - mailbox_list_set_error
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:429,6'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-delete.c:432,21'
          Dst:             mailbox_list_delete_finish
        - Src:             'mailbox-list-delete.c:446,4'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:446,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:445,3'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_delete_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - mailbox_list_try_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:410,8'
          Dst:             mailbox_list_try_delete
        - Src:             'mailbox-list-delete.c:411,9'
          Dst:             mailbox_list_try_delete
        - Src:             'mailbox-list-delete.c:414,9'
          Dst:             mailbox_list_try_delete
        - Src:             'mailbox-list-delete.c:417,9'
          Dst:             mailbox_list_try_delete
    - functionName:    mailbox_list_try_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          206
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - mailbox_list_delete_mailbox_nonrecursive
        - mailbox_list_delete_trash
        - mailbox_list_delete_until_root
        - mailbox_list_get_last_mail_error
        - mailbox_list_get_path
        - mailbox_list_set_critical
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:352,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:354,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:355,6'
          Dst:             strcmp
        - Src:             'mailbox-list-delete.c:359,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:361,6'
          Dst:             strcmp
        - Src:             'mailbox-list-delete.c:376,7'
          Dst:             mailbox_list_delete_mailbox_nonrecursive
        - Src:             'mailbox-list-delete.c:381,5'
          Dst:             mailbox_list_get_last_mail_error
        - Src:             'mailbox-list-delete.c:388,7'
          Dst:             mailbox_list_delete_trash
        - Src:             'mailbox-list-delete.c:390,12'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:393,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:402,2'
          Dst:             mailbox_list_delete_until_root
    - functionName:    mailbox_list_delete_mailbox_nonrecursive
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          428
      EdgeCount:       107
      CyclomaticComplexity: 30
      functionsReached:
        - __errno_location
        - closedir
        - i_sleep_msecs
        - mailbox_list_check_root_delete
        - mailbox_list_delete_trash
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - mailbox_list_set_error_from_errno
        - opendir
        - readdir
        - rmdir
        - str_append
        - str_append_c
        - str_c
        - str_len
        - str_truncate
        - t_str_new
        - t_strdup_printf
        - unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:153,6'
          Dst:             mailbox_list_check_root_delete
        - Src:             'mailbox-list-delete.c:156,8'
          Dst:             opendir
        - Src:             'mailbox-list-delete.c:158,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:160,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:160,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:159,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:162,9'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-delete.c:163,5'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:170,14'
          Dst:             t_str_new
        - Src:             'mailbox-list-delete.c:171,2'
          Dst:             str_append
        - Src:             'mailbox-list-delete.c:172,2'
          Dst:             str_append_c
        - Src:             'mailbox-list-delete.c:173,12'
          Dst:             str_len
        - Src:             'mailbox-list-delete.c:175,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:175,23'
          Dst:             readdir
        - Src:             'mailbox-list-delete.c:187,3'
          Dst:             str_truncate
        - Src:             'mailbox-list-delete.c:188,3'
          Dst:             str_append
        - Src:             'mailbox-list-delete.c:191,34'
          Dst:             str_c
        - Src:             'mailbox-list-delete.c:191,8'
          Dst:             mailbox_list_delete_trash
        - Src:             'mailbox-list-delete.c:194,6'
          Dst:             str_c
        - Src:             'mailbox-list-delete.c:192,5'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:204,14'
          Dst:             str_c
        - Src:             'mailbox-list-delete.c:204,7'
          Dst:             unlink
        - Src:             'mailbox-list-delete.c:206,12'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:206,32'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:206,32'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:208,30'
          Dst:             str_c
        - Src:             'mailbox-list-delete.c:207,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:175,46'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:215,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:216,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:219,6'
          Dst:             closedir
        - Src:             'mailbox-list-delete.c:220,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:229,13'
          Dst:             rmdir
        - Src:             'mailbox-list-delete.c:230,21'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:236,4'
          Dst:             i_sleep_msecs
        - Src:             'mailbox-list-delete.c:237,10'
          Dst:             rmdir
        - Src:             'mailbox-list-delete.c:241,12'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:245,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:245,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:244,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:246,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:246,36'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:247,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:254,3'
          Dst:             mailbox_list_set_error
    - functionName:    mailbox_list_delete_trash
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - unlink
        - unlink_directory
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:453,6'
          Dst:             unlink_directory
        - Src:             'mailbox-list-delete.c:454,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:456,8'
          Dst:             unlink
        - Src:             'mailbox-list-delete.c:458,4'
          Dst:             __errno_location
    - functionName:    mailbox_list_delete_until_root
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          251
      EdgeCount:       68
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - mailbox_list_get_root_forced
        - mailbox_list_path_is_index
        - mailbox_list_set_critical
        - rmdir
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - strrchr
        - t_strdup_until
        - t_strndup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:283,6'
          Dst:             mailbox_list_path_is_index
        - Src:             'mailbox-list-delete.c:292,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-delete.c:293,7'
          Dst:             strlen
        - Src:             'mailbox-list-delete.c:293,7'
          Dst:             strncmp
        - Src:             'mailbox-list-delete.c:293,7'
          Dst:             str_begins_with
        - Src:             'mailbox-list-delete.c:297,9'
          Dst:             strlen
        - Src:             'mailbox-list-delete.c:308,14'
          Dst:             t_strndup
        - Src:             'mailbox-list-delete.c:310,9'
          Dst:             strcmp
        - Src:             'mailbox-list-delete.c:311,7'
          Dst:             rmdir
        - Src:             'mailbox-list-delete.c:311,26'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:312,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:312,30'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:315,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:319,7'
          Dst:             strrchr
        - Src:             'mailbox-list-delete.c:323,10'
          Dst:             t_strdup_until
    - functionName:    mailbox_list_path_is_index
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_root_forced
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:270,14'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-delete.c:271,15'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-delete.c:272,9'
          Dst:             strcmp
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mailbox_list_check_root_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mailbox_list_get_root_forced
        - mailbox_list_set_error
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:23,13'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-delete.c:24,6'
          Dst:             strcmp
        - Src:             'mailbox-list-delete.c:27,6'
          Dst:             strcmp
        - Src:             'mailbox-list-delete.c:29,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:33,2'
          Dst:             mailbox_list_set_error
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    mailbox_list_delete_mailbox_until_root
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_delete_until_root
        - mailbox_list_get_path
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:341,7'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:342,4'
          Dst:             mailbox_list_delete_until_root
    - functionName:    mailbox_list_delete_mailbox_file
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          89
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - mailbox_list_set_error_from_errno
        - t_strdup_printf
        - unlink
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:126,6'
          Dst:             unlink
        - Src:             'mailbox-list-delete.c:128,11'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:128,11'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:128,11'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:128,11'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:130,12'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:130,12'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:129,3'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:133,8'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-delete.c:134,4'
          Dst:             mailbox_list_set_critical
    - functionName:    unique_fname
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex
        - random_fill
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:42,2'
          Dst:             random_fill
        - Src:             'mailbox-list-delete.c:44,11'
          Dst:             binary_to_hex
        - Src:             'mailbox-list-delete.c:43,9'
          Dst:             t_strdup_printf
    - functionName:    mailbox_list_delete_maildir_via_trash
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-delete.c'
      linkageType:     externalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          267
      EdgeCount:       75
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - i_unreached
        - mailbox_list_check_root_delete
        - mailbox_list_delete_trash
        - mailbox_list_get_path
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - mailbox_list_set_error
        - mailbox_list_set_error_from_errno
        - rename
        - t_strconcat
        - t_strdup_printf
        - unique_fname
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-delete.c:55,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-delete.c:57,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-delete.c:58,6'
          Dst:             mailbox_list_check_root_delete
        - Src:             'mailbox-list-delete.c:64,9'
          Dst:             rename
        - Src:             'mailbox-list-delete.c:65,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:65,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:65,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:65,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:73,5'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-delete.c:73,5'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-delete.c:72,4'
          Dst:             mailbox_list_set_error
        - Src:             'mailbox-list-delete.c:76,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:80,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:80,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:80,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:81,8'
          Dst:             mailbox_list_set_error_from_errno
        - Src:             'mailbox-list-delete.c:83,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:101,8'
          Dst:             unique_fname
        - Src:             'mailbox-list-delete.c:100,17'
          Dst:             t_strconcat
        - Src:             'mailbox-list-delete.c:102,14'
          Dst:             mailbox_list_delete_trash
        - Src:             'mailbox-list-delete.c:103,8'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:104,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-delete.c:110,6'
          Dst:             mailbox_list_delete_trash
        - Src:             'mailbox-list-delete.c:111,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:111,28'
          Dst:             __errno_location
        - Src:             'mailbox-list-delete.c:112,3'
          Dst:             mailbox_list_set_critical
    - functionName:    is_inbox_file
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - mailbox_list_get_path
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-flags.c:103,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list-fs-flags.c:106,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs-flags.c:109,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs-flags.c:110,9'
          Dst:             strcmp
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    list_is_maildir_mailbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          257
      EdgeCount:       56
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - stat
        - str_begins_with
        - strncmp
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mailbox-list-fs-flags.c:23,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-fs-flags.c:36,9'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs-flags.c:37,6'
          Dst:             stat
        - Src:             'mailbox-list-fs-flags.c:38,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:50,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-flags.c:50,7'
          Dst:             str_begins_with
        - Src:             'mailbox-list-fs-flags.c:75,17'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs-flags.c:77,6'
          Dst:             stat
    - functionName:    fs_list_get_mailbox_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          437
      EdgeCount:       104
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - is_inbox_file
        - list_is_maildir_mailbox
        - mailbox_list_set_critical
        - stat
        - str_begins_with
        - strcmp
        - strncmp
        - t_strconcat
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-list-fs-flags.c:150,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-fs-flags.c:132,10'
          Dst:             list_is_maildir_mailbox
        - Src:             'mailbox-list-fs-flags.c:173,9'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs-flags.c:174,6'
          Dst:             stat
        - Src:             'mailbox-list-fs-flags.c:175,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:175,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:175,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:175,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:178,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:178,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:178,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-flags.c:185,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs-flags.c:192,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-flags.c:192,7'
          Dst:             str_begins_with
        - Src:             'mailbox-list-fs-flags.c:203,7'
          Dst:             is_inbox_file
        - Src:             'mailbox-list-fs-flags.c:204,7'
          Dst:             strcmp
    - functionName:    fs_list_iter_try_insert_unseen
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_insert
        - hash_table_lookup
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:862,6'
          Dst:             hash_table_lookup
        - Src:             'mailbox-list-fs-iter.c:864,23'
          Dst:             p_strdup
        - Src:             'mailbox-list-fs-iter.c:865,3'
          Dst:             hash_table_insert
    - functionName:    mail_namespace_is_inbox_noinferiors
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib-storage/mail-namespace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib-storage/mail-namespace.h:200,3'
          Dst:             strncmp
    - functionName:    mailbox_list_iter_try_delete_noselect
      functionSourceFile: '/src/dovecot/src/lib-storage/list/./mailbox-list-iter-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_delete_mailbox_until_root
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mailbox-list-iter-private.h:40,3'
          Dst:             mailbox_list_delete_mailbox_until_root
    - functionName:    inbox_flags_set
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_namespace_is_inbox_noinferiors
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:613,6'
          Dst:             mail_namespace_is_inbox_noinferiors
    - functionName:    list_file_is_any_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - fs_list_get_storage_path
        - i_unreached
        - mailbox_list_get_path
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:660,7'
          Dst:             fs_list_get_storage_path
        - Src:             'mailbox-list-fs-iter.c:663,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs-iter.c:665,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs-iter.c:666,9'
          Dst:             strcmp
    - functionName:    fs_list_get_storage_path
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - mailbox_list_get_root_path
        - mailbox_list_try_get_absolute_path
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:288,8'
          Dst:             mailbox_list_try_get_absolute_path
        - Src:             'mailbox-list-fs-iter.c:304,8'
          Dst:             mailbox_list_get_root_path
        - Src:             'mailbox-list-fs-iter.c:309,11'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs-iter.c:313,4'
          Dst:             t_strconcat
    - functionName:    list_file_unfound_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - fs_list_get_inbox_vname
        - inbox_flags_set
        - mailbox_list_mailbox
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:634,20'
          Dst:             fs_list_get_inbox_vname
        - Src:             'mailbox-list-fs-iter.c:636,6'
          Dst:             mailbox_list_mailbox
        - Src:             'mailbox-list-fs-iter.c:643,2'
          Dst:             inbox_flags_set
    - functionName:    fs_list_get_inbox_vname
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:627,10'
          Dst:             p_strconcat
    - functionName:    fs_list_entry
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          566
      EdgeCount:       112
      CyclomaticComplexity: 30
      functionsReached:
        - dir_get_storage_name
        - fs_list_read_dir
        - i_panic
        - imap_match
        - inbox_flags_set
        - list_file_is_any_inbox
        - mailbox_list_get_vname
        - mailbox_list_iter_try_delete_noselect
        - p_strdup
        - pool_unref
        - strcasecmp
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:679,17'
          Dst:             dir_get_storage_name
        - Src:             'mailbox-list-fs-iter.c:681,10'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-fs-iter.c:682,20'
          Dst:             p_strdup
        - Src:             'mailbox-list-fs-iter.c:685,10'
          Dst:             imap_match
        - Src:             'mailbox-list-fs-iter.c:687,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:690,20'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs-iter.c:693,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-fs-iter.c:695,20'
          Dst:             imap_match
        - Src:             'mailbox-list-fs-iter.c:711,12'
          Dst:             fs_list_read_dir
        - Src:             'mailbox-list-fs-iter.c:719,6'
          Dst:             strcasecmp
        - Src:             'mailbox-list-fs-iter.c:722,8'
          Dst:             list_file_is_any_inbox
        - Src:             'mailbox-list-fs-iter.c:727,9'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:735,6'
          Dst:             pool_unref
        - Src:             'mailbox-list-fs-iter.c:747,3'
          Dst:             inbox_flags_set
        - Src:             'mailbox-list-fs-iter.c:750,13'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:754,3'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:763,6'
          Dst:             list_file_is_any_inbox
        - Src:             'mailbox-list-fs-iter.c:780,6'
          Dst:             mailbox_list_iter_try_delete_noselect
    - functionName:    dir_get_storage_name
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:135,13'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:137,10'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs-iter.c:141,4'
          Dst:             t_strconcat
    - functionName:    fs_list_read_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - fs_list_dir_read
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:384,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-fs-iter.c:385,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-fs-iter.c:385,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-fs-iter.c:387,22'
          Dst:             p_strdup
        - Src:             'mailbox-list-fs-iter.c:389,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-fs-iter.c:391,6'
          Dst:             fs_list_dir_read
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../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:    fs_list_dir_read
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          244
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - closedir
        - dir_entry_get
        - fs_list_get_storage_path
        - i_panic
        - mailbox_list_set_critical
        - opendir
        - readdir
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:328,7'
          Dst:             fs_list_get_storage_path
        - Src:             'mailbox-list-fs-iter.c:336,10'
          Dst:             opendir
        - Src:             'mailbox-list-fs-iter.c:338,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:338,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:338,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:338,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:344,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:344,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:344,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:348,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs-iter.c:358,2'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:359,14'
          Dst:             readdir
        - Src:             'mailbox-list-fs-iter.c:359,39'
          Dst:             t_push
        - Src:             'mailbox-list-fs-iter.c:360,7'
          Dst:             dir_entry_get
        - Src:             'mailbox-list-fs-iter.c:362,3'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:363,4'
          Dst:             t_pop
        - Src:             'mailbox-list-fs-iter.c:363,4'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:364,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:365,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-fs-iter.c:369,6'
          Dst:             closedir
        - Src:             'mailbox-list-fs-iter.c:370,3'
          Dst:             mailbox_list_set_critical
    - functionName:    dir_entry_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          601
      EdgeCount:       122
      CyclomaticComplexity: 36
      functionsReached:
        - array_append_space_i
        - dir_get_storage_name
        - fs_get_existence_info_flag
        - fs_list_rename_invalid
        - imap_match
        - mailbox_list_dirent_is_alias_symlink
        - mailbox_list_get_file_type
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_root_forced
        - mailbox_list_get_storage_name
        - mailbox_list_get_vname
        - mailbox_list_try_migrate_legacy_escape
        - p_strdup
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strlen
        - strncmp
        - strrchr
        - uni_utf8_str_is_valid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:162,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:170,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:172,14'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-fs-iter.c:174,7'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:179,17'
          Dst:             dir_get_storage_name
        - Src:             'mailbox-list-fs-iter.c:180,10'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-fs-iter.c:181,7'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mailbox-list-fs-iter.c:182,3'
          Dst:             fs_list_rename_invalid
        - Src:             'mailbox-list-fs-iter.c:188,10'
          Dst:             imap_match
        - Src:             'mailbox-list-fs-iter.c:189,6'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:189,37'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:209,9'
          Dst:             mailbox_list_dirent_is_alias_symlink
        - Src:             'mailbox-list-fs-iter.c:216,7'
          Dst:             mailbox_list_get_file_type
        - Src:             'mailbox-list-fs-iter.c:222,7'
          Dst:             fs_get_existence_info_flag
        - Src:             'mailbox-list-fs-iter.c:250,4'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-fs-iter.c:252,4'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-fs-iter.c:253,19'
          Dst:             strrchr
        - Src:             'mailbox-list-fs-iter.c:261,5'
          Dst:             str_begins
        - Src:             'mailbox-list-fs-iter.c:261,5'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:261,5'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-iter.c:261,5'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:261,5'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list-fs-iter.c:265,8'
          Dst:             mailbox_list_try_migrate_legacy_escape
        - Src:             'mailbox-list-fs-iter.c:274,10'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-fs-iter.c:275,17'
          Dst:             p_strdup
    - functionName:    fs_list_rename_invalid
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          87
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - e_error
        - i_unreached
        - imap_utf8_to_utf7
        - mailbox_list_get_root_forced
        - rename
        - str_append
        - str_append_c
        - str_c
        - strlen
        - t_str_new
        - t_strconcat
        - uni_utf8_get_valid_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:108,23'
          Dst:             t_str_new
        - Src:             'mailbox-list-fs-iter.c:109,19'
          Dst:             t_str_new
        - Src:             'mailbox-list-fs-iter.c:112,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mailbox-list-fs-iter.c:114,8'
          Dst:             t_strconcat
        - Src:             'mailbox-list-fs-iter.c:117,9'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:116,6'
          Dst:             uni_utf8_get_valid_data
        - Src:             'mailbox-list-fs-iter.c:118,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-fs-iter.c:120,2'
          Dst:             str_append
        - Src:             'mailbox-list-fs-iter.c:121,2'
          Dst:             str_append_c
        - Src:             'mailbox-list-fs-iter.c:122,26'
          Dst:             str_c
        - Src:             'mailbox-list-fs-iter.c:122,8'
          Dst:             imap_utf8_to_utf7
        - Src:             'mailbox-list-fs-iter.c:124,18'
          Dst:             str_c
        - Src:             'mailbox-list-fs-iter.c:124,6'
          Dst:             rename
        - Src:             'mailbox-list-fs-iter.c:124,38'
          Dst:             __errno_location
        - Src:             'mailbox-list-fs-iter.c:125,3'
          Dst:             str_c
        - Src:             'mailbox-list-fs-iter.c:125,3'
          Dst:             e_error
    - functionName:    fs_get_existence_info_flag
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_alloc
        - mailbox_exists
        - mailbox_free
        - mailbox_list_set_internal_error
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mailbox-list-fs-iter.c:82,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:73,8'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-fs-iter.c:74,8'
          Dst:             mailbox_exists
        - Src:             'mailbox-list-fs-iter.c:75,2'
          Dst:             mailbox_free
        - Src:             'mailbox-list-fs-iter.c:79,3'
          Dst:             mailbox_list_set_internal_error
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    3
      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_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    fs_list_iter_reset
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - fs_list_next_root
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:848,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:854,2'
          Dst:             fs_list_next_root
    - functionName:    fs_list_next_root
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - fs_list_read_dir
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:540,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:542,10'
          Dst:             array_get_i
        - Src:             'mailbox-list-fs-iter.c:545,13'
          Dst:             fs_list_read_dir
    - functionName:    fs_list_iter_mkdir_missing
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          149
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - fs_list_iter_try_insert_unseen
        - mailbox_alloc
        - mailbox_free
        - mailbox_get_last_internal_error
        - mailbox_list_get_path
        - mailbox_mkdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:874,16'
          Dst:             fs_list_iter_try_insert_unseen
        - Src:             'mailbox-list-fs-iter.c:895,6'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-fs-iter.c:897,25'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-fs-iter.c:899,7'
          Dst:             mailbox_mkdir
        - Src:             'mailbox-list-fs-iter.c:900,4'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mailbox-list-fs-iter.c:900,4'
          Dst:             e_error
        - Src:             'mailbox-list-fs-iter.c:904,3'
          Dst:             mailbox_free
        - Src:             'mailbox-list-fs-iter.c:906,3'
          Dst:             e_error
    - functionName:    fs_list_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          267
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - array_get_i
        - fs_list_entry
        - fs_list_get_inbox_vname
        - fs_list_next_root
        - imap_match
        - list_file_unfound_inbox
        - p_strconcat
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:803,13'
          Dst:             array_get_i
        - Src:             'mailbox-list-fs-iter.c:805,10'
          Dst:             fs_list_entry
        - Src:             'mailbox-list-fs-iter.c:810,14'
          Dst:             array_get_i
        - Src:             'mailbox-list-fs-iter.c:815,3'
          Dst:             pool_unref
        - Src:             'mailbox-list-fs-iter.c:818,4'
          Dst:             fs_list_next_root
        - Src:             'mailbox-list-fs-iter.c:825,4'
          Dst:             p_strconcat
        - Src:             'mailbox-list-fs-iter.c:828,7'
          Dst:             imap_match
        - Src:             'mailbox-list-fs-iter.c:834,10'
          Dst:             fs_list_get_inbox_vname
        - Src:             'mailbox-list-fs-iter.c:833,6'
          Dst:             imap_match
        - Src:             'mailbox-list-fs-iter.c:838,10'
          Dst:             list_file_unfound_inbox
    - functionName:    fs_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          222
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - fs_list_iter_mkdir_missing
        - fs_list_iter_next
        - fs_list_iter_reset
        - fs_list_next
        - i_panic
        - mailbox_list_iter_default_next
        - strlen
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:919,2'
          Dst:             t_push
        - Src:             'mailbox-list-fs-iter.c:920,9'
          Dst:             fs_list_next
        - Src:             'mailbox-list-fs-iter.c:921,4'
          Dst:             t_pop
        - Src:             'mailbox-list-fs-iter.c:921,4'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:924,7'
          Dst:             fs_list_iter_mkdir_missing
        - Src:             'mailbox-list-fs-iter.c:925,11'
          Dst:             fs_list_iter_next
        - Src:             'mailbox-list-fs-iter.c:933,4'
          Dst:             fs_list_iter_reset
        - Src:             'mailbox-list-fs-iter.c:934,11'
          Dst:             fs_list_iter_next
        - Src:             'mailbox-list-fs-iter.c:936,10'
          Dst:             mailbox_list_iter_default_next
        - Src:             'mailbox-list-fs-iter.c:942,6'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:944,10'
          Dst:             fs_list_iter_next
        - Src:             'mailbox-list-fs-iter.c:947,2'
          Dst:             i_panic
    - functionName:    fs_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_destroy
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:600,3'
          Dst:             pool_unref
        - Src:             'mailbox-list-fs-iter.c:603,2'
          Dst:             hash_table_destroy
        - Src:             'mailbox-list-fs-iter.c:604,2'
          Dst:             pool_unref
    - functionName:    fs_list_get_roots
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         95
      ICount:          531
      EdgeCount:       124
      CyclomaticComplexity: 31
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_idx_i
        - array_sort_i
        - i_panic
        - i_strcmp_p
        - mail_namespace_get_sep
        - mailbox_list_get_storage_name
        - p_strdup
        - str_begins
        - str_begins_builtin_success
        - strcasecmp
        - strlen
        - strncasecmp
        - strncmp
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:444,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-fs-iter.c:451,2'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:454,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-fs-iter.c:458,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-iter.c:473,19'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-fs-iter.c:483,5'
          Dst:             strcasecmp
        - Src:             'mailbox-list-fs-iter.c:484,5'
          Dst:             strncasecmp
        - Src:             'mailbox-list-fs-iter.c:493,9'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-iter.c:503,11'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-fs-iter.c:509,4'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:513,4'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:517,10'
          Dst:             p_strdup
        - Src:             'mailbox-list-fs-iter.c:518,3'
          Dst:             array_append_i
        - Src:             'mailbox-list-fs-iter.c:521,2'
          Dst:             array_sort_i
        - Src:             'mailbox-list-fs-iter.c:521,2'
          Dst:             i_strcmp_p
        - Src:             'mailbox-list-fs-iter.c:523,18'
          Dst:             array_count_i
        - Src:             'mailbox-list-fs-iter.c:524,12'
          Dst:             array_idx_i
        - Src:             'mailbox-list-fs-iter.c:525,11'
          Dst:             array_idx_i
        - Src:             'mailbox-list-fs-iter.c:526,7'
          Dst:             str_begins
        - Src:             'mailbox-list-fs-iter.c:526,7'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:526,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-iter.c:526,7'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:526,7'
          Dst:             str_begins_builtin_success
        - Src:             'mailbox-list-fs-iter.c:529,4'
          Dst:             array_delete_i
    - functionName:    fs_list_get_valid_patterns
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          126
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - mailbox_list_get_storage_name
        - mailbox_list_is_valid_name
        - p_strdup
        - strlen
        - strncmp
        - uni_utf8_str_is_valid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:411,15'
          Dst:             strlen
        - Src:             'mailbox-list-fs-iter.c:412,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-fs-iter.c:419,7'
          Dst:             strncmp
        - Src:             'mailbox-list-fs-iter.c:421,8'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mailbox-list-fs-iter.c:428,4'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-fs-iter.c:429,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list-fs-iter.c:430,7'
          Dst:             mailbox_list_is_valid_name
        - Src:             'mailbox-list-fs-iter.c:431,14'
          Dst:             p_strdup
        - Src:             'mailbox-list-fs-iter.c:432,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-fs-iter.c:435,2'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-fs-iter.c:436,24'
          Dst:             array_idx_i
        - Src:             'mailbox-list-fs-iter.c:438,9'
          Dst:             array_count_i
    - functionName:    fs_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-fs-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          167
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - fs_list_get_roots
        - fs_list_get_valid_patterns
        - fs_list_next_root
        - hash_table_create
        - i_panic
        - imap_match_init
        - imap_match_init_multiple
        - mail_namespace_get_sep
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - str_hash
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-fs-iter.c:557,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-fs-iter.c:558,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-fs-iter.c:558,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-fs-iter.c:562,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-fs-iter.c:564,13'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-fs-iter.c:570,3'
          Dst:             i_panic
        - Src:             'mailbox-list-fs-iter.c:571,3'
          Dst:             hash_table_create
        - Src:             'mailbox-list-fs-iter.c:571,3'
          Dst:             str_hash
        - Src:             'mailbox-list-fs-iter.c:571,3'
          Dst:             strcmp
        - Src:             'mailbox-list-fs-iter.c:574,7'
          Dst:             fs_list_get_valid_patterns
        - Src:             'mailbox-list-fs-iter.c:576,3'
          Dst:             array_create_i
        - Src:             'mailbox-list-fs-iter.c:580,19'
          Dst:             imap_match_init
        - Src:             'mailbox-list-fs-iter.c:583,18'
          Dst:             imap_match_init_multiple
        - Src:             'mailbox-list-fs-iter.c:585,2'
          Dst:             fs_list_get_roots
        - Src:             'mailbox-list-fs-iter.c:586,2'
          Dst:             fs_list_next_root
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mail_namespace_is_inbox_noinferiors
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib-storage/mail-namespace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib-storage/mail-namespace.h:200,3'
          Dst:             strncmp
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - module_context_get_require
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:211,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-iter.c:219,2'
          Dst:             pool_unref
        - Src:             'mailbox-list-index-iter.c:220,2'
          Dst:             pool_unref
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    mailbox_list_index_update_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          213
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - mailbox_list_get_hierarchy_sep
        - str_c
        - str_len
        - str_truncate
        - strcmp
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:127,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index-iter.c:135,21'
          Dst:             str_len
        - Src:             'mailbox-list-index-iter.c:148,4'
          Dst:             str_truncate
        - Src:             'mailbox-list-index-iter.c:149,28'
          Dst:             str_c
        - Src:             'mailbox-list-index-iter.c:150,5'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-iter.c:149,20'
          Dst:             strrchr
        - Src:             'mailbox-list-index-iter.c:152,27'
          Dst:             str_c
        - Src:             'mailbox-list-index-iter.c:154,5'
          Dst:             i_panic
    - functionName:    mailbox_list_iter_try_delete_noselect
      functionSourceFile: '/src/dovecot/src/lib-storage/list/./mailbox-list-iter-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_delete_mailbox_until_root
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mailbox-list-iter-private.h:40,3'
          Dst:             mailbox_list_delete_mailbox_until_root
    - functionName:    mailbox_list_index_update_info
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          287
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - mail_namespace_is_inbox_noinferiors
        - mailbox_alloc
        - mailbox_free
        - mailbox_list_get_escaped_mailbox_name
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_get_vname
        - mailbox_list_index_status_set_info_flags
        - module_context_get_require
        - p_strconcat
        - p_strdup
        - str_append_c
        - str_c
        - str_truncate
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:66,3'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-iter.c:70,2'
          Dst:             str_truncate
        - Src:             'mailbox-list-index-iter.c:75,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-index-iter.c:75,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-index-iter.c:78,2'
          Dst:             mailbox_list_get_escaped_mailbox_name
        - Src:             'mailbox-list-index-iter.c:81,58'
          Dst:             str_c
        - Src:             'mailbox-list-index-iter.c:81,20'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-index-iter.c:84,6'
          Dst:             strcmp
        - Src:             'mailbox-list-index-iter.c:86,21'
          Dst:             p_strdup
        - Src:             'mailbox-list-index-iter.c:90,7'
          Dst:             mail_namespace_is_inbox_noinferiors
        - Src:             'mailbox-list-index-iter.c:97,21'
          Dst:             p_strconcat
        - Src:             'mailbox-list-index-iter.c:113,9'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-index-iter.c:114,3'
          Dst:             mailbox_list_index_status_set_info_flags
        - Src:             'mailbox-list-index-iter.c:116,3'
          Dst:             mailbox_free
    - functionName:    mailbox_list_index_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          147
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - imap_match
        - mailbox_list_index_refresh_later
        - mailbox_list_index_update_info
        - mailbox_list_index_update_next
        - mailbox_list_iter_default_next
        - mailbox_list_iter_try_delete_noselect
        - module_context_get_require
        - str_c
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:165,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-iter.c:178,3'
          Dst:             t_push
        - Src:             'mailbox-list-index-iter.c:179,4'
          Dst:             mailbox_list_index_update_info
        - Src:             'mailbox-list-index-iter.c:180,5'
          Dst:             t_pop
        - Src:             'mailbox-list-index-iter.c:180,5'
          Dst:             i_panic
        - Src:             'mailbox-list-index-iter.c:181,11'
          Dst:             imap_match
        - Src:             'mailbox-list-index-iter.c:194,11'
          Dst:             str_c
        - Src:             'mailbox-list-index-iter.c:193,8'
          Dst:             mailbox_list_iter_try_delete_noselect
        - Src:             'mailbox-list-index-iter.c:198,5'
          Dst:             mailbox_list_index_refresh_later
        - Src:             'mailbox-list-index-iter.c:200,5'
          Dst:             mailbox_list_index_update_next
        - Src:             'mailbox-list-index-iter.c:204,3'
          Dst:             mailbox_list_index_update_next
        - Src:             'mailbox-list-index-iter.c:206,9'
          Dst:             mailbox_list_iter_default_next
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    iter_use_index
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mailbox_list_index_refresh
        - module_context_get_require
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:14,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-iter.c:21,6'
          Dst:             mailbox_list_index_refresh
    - functionName:    mailbox_list_index_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          125
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - imap_match_init_multiple
        - iter_use_index
        - mail_namespace_get_sep
        - malloc_multiply_check
        - module_context_get_require
        - p_malloc
        - pool_alloconly_create
        - pool_ref
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-iter.c:34,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-iter.c:37,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-index-iter.c:39,7'
          Dst:             iter_use_index
        - Src:             'mailbox-list-index-iter.c:44,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index-iter.c:45,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-iter.c:45,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-iter.c:49,18'
          Dst:             imap_match_init_multiple
        - Src:             'mailbox-list-index-iter.c:50,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-iter.c:55,14'
          Dst:             str_new
        - Src:             'mailbox-list-index-iter.c:58,2'
          Dst:             pool_ref
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    mailbox_notify_node_update_status
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mailbox_list_index_get_changed_events
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    mailbox_list_index_notify_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          92
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_get_vname
        - mailbox_list_index_node_get_path
        - notify_lookup_guid
        - str_c
        - str_truncate
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:763,15'
          Dst:             notify_lookup_guid
        - Src:             'mailbox-list-index-notify.c:769,2'
          Dst:             str_truncate
        - Src:             'mailbox-list-index-notify.c:770,2'
          Dst:             mailbox_list_index_node_get_path
        - Src:             'mailbox-list-index-notify.c:772,17'
          Dst:             str_c
        - Src:             'mailbox-list-index-notify.c:775,15'
          Dst:             mailbox_list_get_vname
    - functionName:    notify_lookup_guid
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          133
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mail_index_lookup_seq
        - mailbox_list_index_lookup_uid
        - mailbox_list_index_parse
        - mailbox_list_index_parse_try
        - mailbox_list_index_status
        - module_context_get_require
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:240,3'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-notify.c:245,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-index-notify.c:248,15'
          Dst:             mailbox_list_index_lookup_uid
        - Src:             'mailbox-list-index-notify.c:253,10'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index-notify.c:255,14'
          Dst:             mailbox_list_index_parse_try
        - Src:             'mailbox-list-index-notify.c:261,10'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index-notify.c:265,16'
          Dst:             mailbox_list_index_lookup_uid
        - Src:             'mailbox-list-index-notify.c:273,8'
          Dst:             mailbox_list_index_status
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_notify_change
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mailbox_list_index_get_changed_events
        - mailbox_list_index_notify_lookup
        - mailbox_list_notify_tree_lookup
        - mailbox_notify_node_update_status
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:889,7'
          Dst:             mailbox_list_index_notify_lookup
        - Src:             'mailbox-list-index-notify.c:899,10'
          Dst:             mailbox_list_notify_tree_lookup
        - Src:             'mailbox-list-index-notify.c:906,17'
          Dst:             mailbox_list_index_get_changed_events
        - Src:             'mailbox-list-index-notify.c:908,2'
          Dst:             mailbox_notify_node_update_status
    - functionName:    mailbox_list_index_notify_unsubscribe
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_i
        - mailbox_list_get_storage_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:829,15'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:830,22'
          Dst:             mailbox_list_get_storage_name
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    6
      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-storage/list/../../../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:             '../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    mailbox_list_index_notify_subscribe
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_i
        - mailbox_list_get_storage_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:815,15'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:816,22'
          Dst:             mailbox_list_get_storage_name
    - functionName:    mailbox_list_index_notify_new
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - mailbox_list_index_notify_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:874,7'
          Dst:             mailbox_list_index_notify_lookup
        - Src:             'mailbox-list-index-notify.c:876,3'
          Dst:             i_unreached
    - functionName:    mailbox_list_index_notify_rename
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_i
        - mailbox_list_index_notify_lookup
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:790,11'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:793,7'
          Dst:             mailbox_list_index_notify_lookup
        - Src:             'mailbox-list-index-notify.c:796,14'
          Dst:             t_strdup
        - Src:             'mailbox-list-index-notify.c:799,7'
          Dst:             mailbox_list_index_notify_lookup
    - functionName:    mailbox_list_index_notify_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 848
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_notify_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:843,7'
          Dst:             mailbox_list_index_notify_lookup
    - functionName:    mailbox_list_index_notify_new_expunge
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_list_index_notify_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:859,7'
          Dst:             mailbox_list_index_notify_lookup
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    mailbox_list_inotify_entry_guid_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:528,8'
          Dst:             memcmp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    notify_ext_rec
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - seq_range_array_add
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mailbox-list-index-notify.c:340,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:342,3'
          Dst:             i_unreached
        - Src:             'mailbox-list-index-notify.c:363,2'
          Dst:             seq_range_array_add
    - functionName:    notify_add_extra_names
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - mailbox_list_index_name_iter_init
        - mailbox_list_index_name_iter_next
        - p_strdup
        - seq_range_array_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:382,2'
          Dst:             mailbox_list_index_name_iter_init
        - Src:             'mailbox-list-index-notify.c:383,9'
          Dst:             mailbox_list_index_name_iter_next
        - Src:             'mailbox-list-index-notify.c:385,7'
          Dst:             seq_range_array_add
        - Src:             'mailbox-list-index-notify.c:387,16'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-index-notify.c:389,22'
          Dst:             p_strdup
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_notify_find_subscribes
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          199
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - array_append_i
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_tree_deinit
        - mailbox_tree_dup
        - mailbox_tree_get_pool
        - mailbox_tree_iterate_deinit
        - mailbox_tree_iterate_init
        - mailbox_tree_iterate_next
        - mailbox_tree_sort
        - p_strdup
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:608,6'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mailbox-list-index-notify.c:610,2'
          Dst:             mailbox_tree_sort
        - Src:             'mailbox-list-index-notify.c:613,13'
          Dst:             mailbox_tree_dup
        - Src:             'mailbox-list-index-notify.c:621,13'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-index-notify.c:622,13'
          Dst:             mailbox_tree_iterate_init
        - Src:             'mailbox-list-index-notify.c:624,9'
          Dst:             mailbox_tree_get_pool
        - Src:             'mailbox-list-index-notify.c:627,8'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-index-notify.c:631,8'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-index-notify.c:642,10'
          Dst:             strcmp
        - Src:             'mailbox-list-index-notify.c:649,15'
          Dst:             p_strdup
        - Src:             'mailbox-list-index-notify.c:650,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-index-notify.c:654,15'
          Dst:             p_strdup
        - Src:             'mailbox-list-index-notify.c:655,4'
          Dst:             array_append_i
        - Src:             'mailbox-list-index-notify.c:660,2'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-index-notify.c:661,2'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-index-notify.c:663,2'
          Dst:             mailbox_tree_deinit
    - functionName:    mailbox_list_index_notify_find_renames
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          240
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_sort_i
        - guid_128_is_empty
        - i_memcpy
        - mailbox_list_index_parse
        - mailbox_list_inotify_entry_guid_cmp
        - memcmp
        - notify_lookup_guid
        - pool_datastack_create
        - seq_range_array_iter_nth
        - seq_range_array_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:552,2'
          Dst:             pool_datastack_create
        - Src:             'mailbox-list-index-notify.c:552,2'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:552,2'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:552,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:554,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:556,7'
          Dst:             notify_lookup_guid
        - Src:             'mailbox-list-index-notify.c:558,8'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-notify.c:559,12'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-index-notify.c:562,4'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-notify.c:566,8'
          Dst:             mailbox_list_index_parse
        - Src:             'mailbox-list-index-notify.c:568,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:570,7'
          Dst:             notify_lookup_guid
        - Src:             'mailbox-list-index-notify.c:572,8'
          Dst:             guid_128_is_empty
        - Src:             'mailbox-list-index-notify.c:573,12'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-index-notify.c:575,4'
          Dst:             i_memcpy
        - Src:             'mailbox-list-index-notify.c:581,2'
          Dst:             array_sort_i
        - Src:             'mailbox-list-index-notify.c:581,2'
          Dst:             mailbox_list_inotify_entry_guid_cmp
        - Src:             'mailbox-list-index-notify.c:583,6'
          Dst:             array_get_i
        - Src:             'mailbox-list-index-notify.c:586,7'
          Dst:             memcmp
        - Src:             'mailbox-list-index-notify.c:587,13'
          Dst:             array_append_space_i
        - Src:             'mailbox-list-index-notify.c:591,4'
          Dst:             seq_range_array_remove
        - Src:             'mailbox-list-index-notify.c:593,4'
          Dst:             seq_range_array_remove
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    10
      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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_notify_reset_iters
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_range_array_iter_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:670,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mailbox-list-index-notify.c:672,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mailbox-list-index-notify.c:674,2'
          Dst:             seq_range_array_iter_init
        - Src:             'mailbox-list-index-notify.c:676,2'
          Dst:             seq_range_array_iter_init
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    mailbox_list_index_notify_read_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         79
      ICount:          534
      EdgeCount:       103
      CyclomaticComplexity: 26
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - e_error
        - mail_index_map_lookup_ext
        - mail_transaction_log_view_next
        - module_context_get_require
        - notify_add_extra_names
        - notify_ext_rec
        - seq_range_array_add
        - t_strndup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mailbox-list-index-notify.c:411,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:397,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-index-notify.c:402,8'
          Dst:             mail_transaction_log_view_next
        - Src:             'mailbox-list-index-notify.c:422,4'
          Dst:             seq_range_array_add
        - Src:             'mailbox-list-index-notify.c:435,4'
          Dst:             seq_range_array_add
        - Src:             'mailbox-list-index-notify.c:445,8'
          Dst:             array_is_created_i
        - Src:             'mailbox-list-index-notify.c:452,21'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:454,10'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:457,11'
          Dst:             t_strndup
        - Src:             'mailbox-list-index-notify.c:458,8'
          Dst:             mail_index_map_lookup_ext
        - Src:             'mailbox-list-index-notify.c:459,11'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:480,3'
          Dst:             notify_add_extra_names
        - Src:             'mailbox-list-index-notify.c:489,3'
          Dst:             notify_add_extra_names
        - Src:             'mailbox-list-index-notify.c:498,4'
          Dst:             e_error
        - Src:             'mailbox-list-index-notify.c:505,9'
          Dst:             array_idx_i
        - Src:             'mailbox-list-index-notify.c:513,9'
          Dst:             notify_ext_rec
    - functionName:    mailbox_list_index_notify_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_dup_private
        - mail_index_view_sync_begin
        - mail_index_view_sync_commit
        - mail_index_view_sync_next
        - mail_transaction_log_view_mark
        - mail_transaction_log_view_rewind
        - notify_update_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:309,2'
          Dst:             notify_update_stat
        - Src:             'mailbox-list-index-notify.c:310,8'
          Dst:             mail_index_refresh
        - Src:             'mailbox-list-index-notify.c:317,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-notify.c:318,31'
          Dst:             mail_index_view_dup_private
        - Src:             'mailbox-list-index-notify.c:319,13'
          Dst:             mail_index_view_sync_begin
        - Src:             'mailbox-list-index-notify.c:322,9'
          Dst:             mail_index_view_sync_next
        - Src:             'mailbox-list-index-notify.c:323,8'
          Dst:             mail_index_view_sync_commit
        - Src:             'mailbox-list-index-notify.c:326,22'
          Dst:             mail_index_view_sync_begin
        - Src:             'mailbox-list-index-notify.c:327,2'
          Dst:             mail_transaction_log_view_mark
        - Src:             'mailbox-list-index-notify.c:328,9'
          Dst:             mail_index_view_sync_next
        - Src:             'mailbox-list-index-notify.c:329,2'
          Dst:             mail_transaction_log_view_rewind
    - functionName:    notify_update_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          133
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - e_error
        - mailbox_list_index_notify_wait
        - stat
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:284,6'
          Dst:             stat
        - Src:             'mailbox-list-index-notify.c:285,6'
          Dst:             __errno_location
        - Src:             'mailbox-list-index-notify.c:286,3'
          Dst:             e_error
        - Src:             'mailbox-list-index-notify.c:291,7'
          Dst:             stat
        - Src:             'mailbox-list-index-notify.c:292,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-index-notify.c:293,4'
          Dst:             e_error
        - Src:             'mailbox-list-index-notify.c:299,3'
          Dst:             mailbox_list_index_notify_wait
    - functionName:    mailbox_list_index_notify_wait
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     externalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          158
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - full_notify_callback
        - i_panic
        - inbox_notify_callback
        - io_add_notify
        - io_remove
        - list_notify_callback
        - notify_update_stat
        - timeout_add
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1078,3'
          Dst:             io_remove
        - Src:             'mailbox-list-index-notify.c:1079,3'
          Dst:             io_remove
        - Src:             'mailbox-list-index-notify.c:1080,3'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index-notify.c:1081,3'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index-notify.c:1083,9'
          Dst:             io_add_notify
        - Src:             'mailbox-list-index-notify.c:1083,9'
          Dst:             list_notify_callback
        - Src:             'mailbox-list-index-notify.c:1088,10'
          Dst:             io_add_notify
        - Src:             'mailbox-list-index-notify.c:1088,10'
          Dst:             inbox_notify_callback
        - Src:             'mailbox-list-index-notify.c:1095,3'
          Dst:             i_panic
        - Src:             'mailbox-list-index-notify.c:1096,22'
          Dst:             timeout_add
        - Src:             'mailbox-list-index-notify.c:1096,22'
          Dst:             full_notify_callback
        - Src:             'mailbox-list-index-notify.c:1098,3'
          Dst:             notify_update_stat
    - functionName:    list_notify_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - notify_now_callback
        - notify_update_stat
        - timeout_add_short
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1028,2'
          Dst:             notify_update_stat
        - Src:             'mailbox-list-index-notify.c:1033,4'
          Dst:             timeout_add_short
        - Src:             'mailbox-list-index-notify.c:1033,4'
          Dst:             notify_now_callback
    - functionName:    inbox_notify_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          139
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - notify_now_callback
        - notify_update_stat
        - timeout_add_short
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1048,2'
          Dst:             notify_update_stat
        - Src:             'mailbox-list-index-notify.c:1055,4'
          Dst:             timeout_add_short
        - Src:             'mailbox-list-index-notify.c:1055,4'
          Dst:             notify_now_callback
    - functionName:    full_notify_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inbox_notify_callback
        - list_notify_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1062,2'
          Dst:             list_notify_callback
        - Src:             'mailbox-list-index-notify.c:1063,2'
          Dst:             inbox_notify_callback
    - functionName:    notify_now_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1016
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1014,2'
          Dst:             timeout_remove
    - functionName:    mailbox_list_index_notify_flush
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     externalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - full_notify_callback
        - notify_now_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:1110,3'
          Dst:             full_notify_callback
        - Src:             'mailbox-list-index-notify.c:1113,3'
          Dst:             notify_now_callback
    - functionName:    mailbox_list_index_notify_read_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          60
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - mail_index_view_close
        - mail_index_view_dup_private
        - p_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:734,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-notify.c:735,22'
          Dst:             mail_index_view_dup_private
        - Src:             'mailbox-list-index-notify.c:737,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:738,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:739,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:740,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:741,2'
          Dst:             p_clear
        - Src:             'mailbox-list-index-notify.c:742,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:743,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:744,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:745,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:746,2'
          Dst:             array_clear_i
    - functionName:    mailbox_list_notify_inbox_get_events
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - mailbox_get_last_internal_error
        - mailbox_get_open_status
        - mailbox_list_index_get_changed_events
        - mailbox_notify_node_update_status
        - mailbox_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:965,2'
          Dst:             mailbox_get_open_status
        - Src:             'mailbox-list-index-notify.c:966,6'
          Dst:             mailbox_sync
        - Src:             'mailbox-list-index-notify.c:967,3'
          Dst:             mailbox_get_last_internal_error
        - Src:             'mailbox-list-index-notify.c:967,3'
          Dst:             e_error
        - Src:             'mailbox-list-index-notify.c:972,2'
          Dst:             mailbox_get_open_status
        - Src:             'mailbox-list-index-notify.c:974,2'
          Dst:             mailbox_notify_node_update_status
        - Src:             'mailbox-list-index-notify.c:975,9'
          Dst:             mailbox_list_index_get_changed_events
    - functionName:    mailbox_list_index_notify_try_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          158
      EdgeCount:       29
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - mailbox_list_index_notify_change
        - mailbox_list_index_notify_expunge
        - mailbox_list_index_notify_new
        - mailbox_list_index_notify_new_expunge
        - mailbox_list_index_notify_rename
        - mailbox_list_index_notify_subscribe
        - mailbox_list_index_notify_unsubscribe
        - seq_range_array_iter_nth
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:920,6'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:922,10'
          Dst:             mailbox_list_index_notify_new_expunge
        - Src:             'mailbox-list-index-notify.c:925,6'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:927,10'
          Dst:             mailbox_list_index_notify_expunge
        - Src:             'mailbox-list-index-notify.c:930,28'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:931,10'
          Dst:             mailbox_list_index_notify_rename
        - Src:             'mailbox-list-index-notify.c:936,6'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:938,10'
          Dst:             mailbox_list_index_notify_new
        - Src:             'mailbox-list-index-notify.c:941,34'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:942,10'
          Dst:             mailbox_list_index_notify_subscribe
        - Src:             'mailbox-list-index-notify.c:945,36'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:946,10'
          Dst:             mailbox_list_index_notify_unsubscribe
        - Src:             'mailbox-list-index-notify.c:951,9'
          Dst:             seq_range_array_iter_nth
        - Src:             'mailbox-list-index-notify.c:953,7'
          Dst:             mailbox_list_index_notify_change
    - functionName:    mailbox_list_index_notify_read_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          126
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_count_i
        - mail_index_view_sync_commit
        - mailbox_list_index_notify_find_renames
        - mailbox_list_index_notify_find_subscribes
        - mailbox_list_index_notify_read_next
        - mailbox_list_index_notify_reset_iters
        - mailbox_list_index_notify_sync_init
        - seq_range_array_intersect
        - seq_range_array_merge
        - seq_range_array_remove_seq_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:693,2'
          Dst:             mailbox_list_index_notify_sync_init
        - Src:             'mailbox-list-index-notify.c:696,16'
          Dst:             mailbox_list_index_notify_read_next
        - Src:             'mailbox-list-index-notify.c:699,8'
          Dst:             mail_index_view_sync_commit
        - Src:             'mailbox-list-index-notify.c:703,2'
          Dst:             array_clear_i
        - Src:             'mailbox-list-index-notify.c:704,2'
          Dst:             seq_range_array_merge
        - Src:             'mailbox-list-index-notify.c:706,2'
          Dst:             seq_range_array_intersect
        - Src:             'mailbox-list-index-notify.c:708,2'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'mailbox-list-index-notify.c:710,2'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'mailbox-list-index-notify.c:714,2'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'mailbox-list-index-notify.c:716,2'
          Dst:             seq_range_array_remove_seq_range
        - Src:             'mailbox-list-index-notify.c:718,2'
          Dst:             mailbox_list_index_notify_reset_iters
        - Src:             'mailbox-list-index-notify.c:719,6'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:720,6'
          Dst:             array_count_i
        - Src:             'mailbox-list-index-notify.c:721,3'
          Dst:             mailbox_list_index_notify_find_renames
        - Src:             'mailbox-list-index-notify.c:722,3'
          Dst:             mailbox_list_index_notify_reset_iters
        - Src:             'mailbox-list-index-notify.c:725,3'
          Dst:             mailbox_list_index_notify_find_subscribes
    - functionName:    mailbox_list_index_notify_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     externalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          132
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_index_handle_corruption
        - mailbox_list_index_notify_read_deinit
        - mailbox_list_index_notify_read_init
        - mailbox_list_index_notify_try_next
        - mailbox_list_notify_inbox_get_events
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:985,3'
          Dst:             mailbox_list_index_notify_read_init
        - Src:             'mailbox-list-index-notify.c:986,6'
          Dst:             mailbox_list_index_handle_corruption
        - Src:             'mailbox-list-index-notify.c:989,9'
          Dst:             mailbox_list_index_notify_try_next
        - Src:             'mailbox-list-index-notify.c:1003,4'
          Dst:             mailbox_list_notify_inbox_get_events
        - Src:             'mailbox-list-index-notify.c:1008,2'
          Dst:             mailbox_list_index_notify_read_deinit
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    mailbox_list_index_notify_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          151
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - io_remove
        - mail_index_view_close
        - mail_index_view_sync_commit
        - mailbox_free
        - mailbox_list_notify_tree_deinit
        - mailbox_tree_deinit
        - p_free_internal
        - pool_unref
        - str_free
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:204,3'
          Dst:             mailbox_free
        - Src:             'mailbox-list-index-notify.c:206,3'
          Dst:             mailbox_tree_deinit
        - Src:             'mailbox-list-index-notify.c:207,2'
          Dst:             io_remove
        - Src:             'mailbox-list-index-notify.c:208,2'
          Dst:             io_remove
        - Src:             'mailbox-list-index-notify.c:209,2'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index-notify.c:210,2'
          Dst:             timeout_remove
        - Src:             'mailbox-list-index-notify.c:212,9'
          Dst:             mail_index_view_sync_commit
        - Src:             'mailbox-list-index-notify.c:213,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-notify.c:214,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-notify.c:215,2'
          Dst:             mail_index_view_close
        - Src:             'mailbox-list-index-notify.c:216,2'
          Dst:             mailbox_list_notify_tree_deinit
        - Src:             'mailbox-list-index-notify.c:217,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:218,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:219,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:220,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:221,2'
          Dst:             pool_unref
        - Src:             'mailbox-list-index-notify.c:222,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:223,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:224,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:225,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:226,2'
          Dst:             array_free_i
        - Src:             'mailbox-list-index-notify.c:227,2'
          Dst:             str_free
        - Src:             'mailbox-list-index-notify.c:228,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list-index-notify.c:229,2'
          Dst:             p_free_internal
        - Src:             'mailbox-list-index-notify.c:230,2'
          Dst:             p_free_internal
    - functionName:    mailbox_list_index_notify_init_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strconcat
        - mailbox_alloc
        - mailbox_free
        - mailbox_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:128,19'
          Dst:             mailbox_alloc
        - Src:             'mailbox-list-index-notify.c:130,6'
          Dst:             mailbox_open
        - Src:             'mailbox-list-index-notify.c:131,3'
          Dst:             mailbox_free
        - Src:             'mailbox-list-index-notify.c:134,4'
          Dst:             i_strconcat
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_index_notify_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-index-notify.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          217
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - array_create_i
        - i_strdup
        - mail_index_view_dup_private
        - mail_index_view_open
        - mailbox_list_get_path
        - mailbox_list_index_notify_init_inbox
        - mailbox_list_index_refresh
        - mailbox_list_iter_subscriptions_refresh
        - mailbox_list_notify_tree_init
        - mailbox_tree_dup
        - mailbox_tree_sort
        - malloc_multiply_check
        - module_context_get
        - p_malloc
        - pool_alloconly_create
        - str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-index-notify.c:142,37'
          Dst:             module_context_get
        - Src:             'mailbox-list-index-notify.c:151,8'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-index-notify.c:153,12'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-index-notify.c:153,12'
          Dst:             p_malloc
        - Src:             'mailbox-list-index-notify.c:156,18'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-index-notify.c:157,22'
          Dst:             mail_index_view_dup_private
        - Src:             'mailbox-list-index-notify.c:158,18'
          Dst:             mailbox_list_notify_tree_init
        - Src:             'mailbox-list-index-notify.c:159,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:160,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:161,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:162,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:163,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:164,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:165,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:166,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:167,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-index-notify.c:169,3'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-index-notify.c:170,22'
          Dst:             str_new
        - Src:             'mailbox-list-index-notify.c:173,7'
          Dst:             mailbox_list_iter_subscriptions_refresh
        - Src:             'mailbox-list-index-notify.c:174,4'
          Dst:             mailbox_tree_sort
        - Src:             'mailbox-list-index-notify.c:176,5'
          Dst:             mailbox_tree_dup
        - Src:             'mailbox-list-index-notify.c:179,27'
          Dst:             i_strdup
        - Src:             'mailbox-list-index-notify.c:186,13'
          Dst:             mailbox_list_get_path
        - Src:             'mailbox-list-index-notify.c:190,3'
          Dst:             mailbox_list_index_notify_init_inbox
    - functionName:    maildir_set_children
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_namespace_get_sep
        - mailbox_tree_lookup
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:96,18'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-maildir-iter.c:99,14'
          Dst:             strrchr
        - Src:             'mailbox-list-maildir-iter.c:100,11'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-maildir-iter.c:102,10'
          Dst:             mailbox_tree_lookup
    - functionName:    node_fix_parents
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_fill_parents
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          196
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - imap_match
        - mail_namespace_get_sep
        - mailbox_tree_get
        - mailbox_tree_lookup
        - node_fix_parents
        - strlen
        - strncmp
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:54,21'
          Dst:             strlen
        - Src:             'mailbox-list-maildir-iter.c:56,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-maildir-iter.c:58,14'
          Dst:             strrchr
        - Src:             'mailbox-list-maildir-iter.c:59,11'
          Dst:             t_strdup_until
        - Src:             'mailbox-list-maildir-iter.c:60,7'
          Dst:             imap_match
        - Src:             'mailbox-list-maildir-iter.c:64,7'
          Dst:             strncmp
        - Src:             'mailbox-list-maildir-iter.c:72,4'
          Dst:             mailbox_tree_lookup
        - Src:             'mailbox-list-maildir-iter.c:73,4'
          Dst:             mailbox_tree_get
        - Src:             'mailbox-list-maildir-iter.c:84,4'
          Dst:             node_fix_parents
    - functionName:    maildir_delete_trash_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_delete_trash
        - stat
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:252,6'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir-iter.c:258,9'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir-iter.c:259,6'
          Dst:             stat
        - Src:             'mailbox-list-maildir-iter.c:261,9'
          Dst:             mailbox_list_delete_trash
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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-storage/list/../../../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:    maildir_fill_inbox
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          154
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - imap_match
        - mailbox_list_mailbox
        - mailbox_tree_get
        - mailbox_tree_lookup
        - maildir_fill_parents
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:127,9'
          Dst:             mailbox_list_mailbox
        - Src:             'mailbox-list-maildir-iter.c:135,10'
          Dst:             mailbox_tree_lookup
        - Src:             'mailbox-list-maildir-iter.c:142,10'
          Dst:             imap_match
        - Src:             'mailbox-list-maildir-iter.c:144,3'
          Dst:             maildir_fill_parents
        - Src:             'mailbox-list-maildir-iter.c:146,10'
          Dst:             mailbox_tree_get
    - functionName:    maildir_fill_readdir_entry
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          549
      EdgeCount:       112
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - e_error
        - i_panic
        - i_unreached
        - imap_match
        - imap_utf8_to_utf7
        - mailbox_list_dirent_is_alias_symlink
        - mailbox_list_get_file_type
        - mailbox_list_get_storage_name
        - mailbox_list_get_vname
        - mailbox_list_try_migrate_legacy_escape
        - mailbox_tree_get
        - mailbox_tree_lookup
        - maildir_delete_trash_dir
        - maildir_fill_parents
        - maildir_set_children
        - node_fix_parents
        - rename
        - str_append
        - str_append_c
        - str_c
        - strlen
        - t_pop
        - t_pop_pass_str
        - t_push
        - t_str_new
        - t_strdup_printf
        - uni_utf8_get_valid_data
        - uni_utf8_str_is_valid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:293,10'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir-iter.c:294,7'
          Dst:             uni_utf8_str_is_valid
        - Src:             'mailbox-list-maildir-iter.c:299,21'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir-iter.c:300,25'
          Dst:             t_str_new
        - Src:             'mailbox-list-maildir-iter.c:301,20'
          Dst:             t_str_new
        - Src:             'mailbox-list-maildir-iter.c:304,10'
          Dst:             strlen
        - Src:             'mailbox-list-maildir-iter.c:303,7'
          Dst:             uni_utf8_get_valid_data
        - Src:             'mailbox-list-maildir-iter.c:305,4'
          Dst:             i_unreached
        - Src:             'mailbox-list-maildir-iter.c:307,3'
          Dst:             str_append
        - Src:             'mailbox-list-maildir-iter.c:308,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-maildir-iter.c:309,27'
          Dst:             str_c
        - Src:             'mailbox-list-maildir-iter.c:309,9'
          Dst:             imap_utf8_to_utf7
        - Src:             'mailbox-list-maildir-iter.c:311,19'
          Dst:             str_c
        - Src:             'mailbox-list-maildir-iter.c:311,7'
          Dst:             rename
        - Src:             'mailbox-list-maildir-iter.c:311,39'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:312,4'
          Dst:             str_c
        - Src:             'mailbox-list-maildir-iter.c:312,4'
          Dst:             e_error
        - Src:             'mailbox-list-maildir-iter.c:320,10'
          Dst:             imap_match
        - Src:             'mailbox-list-maildir-iter.c:325,6'
          Dst:             maildir_delete_trash_dir
        - Src:             'mailbox-list-maildir-iter.c:329,9'
          Dst:             mailbox_list_dirent_is_alias_symlink
        - Src:             'mailbox-list-maildir-iter.c:333,2'
          Dst:             t_push
        - Src:             'mailbox-list-maildir-iter.c:335,5'
          Dst:             mailbox_list_get_file_type
        - Src:             'mailbox-list-maildir-iter.c:336,4'
          Dst:             t_pop
        - Src:             'mailbox-list-maildir-iter.c:336,4'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir-iter.c:346,67'
          Dst:             t_push
        - Src:             'mailbox-list-maildir-iter.c:348,4'
          Dst:             mailbox_list_get_storage_name
        - Src:             'mailbox-list-maildir-iter.c:350,4'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir-iter.c:353,9'
          Dst:             mailbox_list_try_migrate_legacy_escape
        - Src:             'mailbox-list-maildir-iter.c:357,4'
          Dst:             t_pop_pass_str
        - Src:             'mailbox-list-maildir-iter.c:357,4'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir-iter.c:366,3'
          Dst:             maildir_fill_parents
        - Src:             'mailbox-list-maildir-iter.c:370,4'
          Dst:             mailbox_tree_lookup
        - Src:             'mailbox-list-maildir-iter.c:371,4'
          Dst:             mailbox_tree_get
        - Src:             'mailbox-list-maildir-iter.c:381,4'
          Dst:             node_fix_parents
        - Src:             'mailbox-list-maildir-iter.c:383,4'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir-iter.c:384,4'
          Dst:             maildir_set_children
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mail_namespace_is_inbox_noinferiors
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib-storage/mail-namespace.h'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib-storage/mail-namespace.h:200,3'
          Dst:             strncmp
    - functionName:    maildir_list_iter_next
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          117
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_namespace_is_inbox_noinferiors
        - mailbox_list_iter_default_next
        - mailbox_tree_iterate_next
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:510,9'
          Dst:             mailbox_tree_iterate_next
        - Src:             'mailbox-list-maildir-iter.c:512,10'
          Dst:             mailbox_list_iter_default_next
        - Src:             'mailbox-list-maildir-iter.c:515,6'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir-iter.c:516,6'
          Dst:             mail_namespace_is_inbox_noinferiors
        - Src:             'mailbox-list-maildir-iter.c:517,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    maildir_list_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mailbox_tree_deinit
        - mailbox_tree_iterate_deinit
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:494,3'
          Dst:             mailbox_tree_iterate_deinit
        - Src:             'mailbox-list-maildir-iter.c:495,2'
          Dst:             mailbox_tree_deinit
        - Src:             'mailbox-list-maildir-iter.c:496,2'
          Dst:             pool_unref
    - functionName:    maildir_fill_readdir
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          216
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - closedir
        - i_panic
        - mail_error_eacces_msg
        - mailbox_list_get_vname
        - mailbox_list_set_critical
        - maildir_fill_inbox
        - maildir_fill_readdir_entry
        - opendir
        - readdir
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:401,9'
          Dst:             opendir
        - Src:             'mailbox-list-maildir-iter.c:403,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:403,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:403,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:405,5'
          Dst:             mail_error_eacces_msg
        - Src:             'mailbox-list-maildir-iter.c:404,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-maildir-iter.c:406,14'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:407,4'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-maildir-iter.c:414,14'
          Dst:             readdir
        - Src:             'mailbox-list-maildir-iter.c:415,3'
          Dst:             t_push
        - Src:             'mailbox-list-maildir-iter.c:416,10'
          Dst:             maildir_fill_readdir_entry
        - Src:             'mailbox-list-maildir-iter.c:418,5'
          Dst:             t_pop
        - Src:             'mailbox-list-maildir-iter.c:418,5'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir-iter.c:423,6'
          Dst:             closedir
        - Src:             'mailbox-list-maildir-iter.c:424,3'
          Dst:             mailbox_list_set_critical
        - Src:             'mailbox-list-maildir-iter.c:433,10'
          Dst:             maildir_fill_inbox
        - Src:             'mailbox-list-maildir-iter.c:436,11'
          Dst:             mailbox_list_get_vname
        - Src:             'mailbox-list-maildir-iter.c:437,10'
          Dst:             maildir_fill_inbox
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    maildir_list_iter_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          189
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - i_panic
        - imap_match_init_multiple
        - mail_namespace_get_sep
        - mailbox_tree_init
        - mailbox_tree_iterate_init
        - maildir_fill_readdir
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcmp
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:451,16'
          Dst:             mail_namespace_get_sep
        - Src:             'mailbox-list-maildir-iter.c:454,9'
          Dst:             pool_alloconly_create
        - Src:             'mailbox-list-maildir-iter.c:455,8'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-maildir-iter.c:455,8'
          Dst:             p_malloc
        - Src:             'mailbox-list-maildir-iter.c:459,18'
          Dst:             imap_match_init_multiple
        - Src:             'mailbox-list-maildir-iter.c:460,2'
          Dst:             array_create_i
        - Src:             'mailbox-list-maildir-iter.c:462,18'
          Dst:             mailbox_tree_init
        - Src:             'mailbox-list-maildir-iter.c:464,21'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir-iter.c:472,2'
          Dst:             t_push
        - Src:             'mailbox-list-maildir-iter.c:474,9'
          Dst:             maildir_fill_readdir
        - Src:             'mailbox-list-maildir-iter.c:475,4'
          Dst:             t_pop
        - Src:             'mailbox-list-maildir-iter.c:475,4'
          Dst:             i_panic
        - Src:             'mailbox-list-maildir-iter.c:482,19'
          Dst:             mailbox_tree_iterate_init
    - functionName:    maildir_get_type
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          121
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - stat
        - str_begins_with
        - strncmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:165,3'
          Dst:             t_strdup_printf
        - Src:             'mailbox-list-maildir-iter.c:166,6'
          Dst:             stat
        - Src:             'mailbox-list-maildir-iter.c:167,7'
          Dst:             __errno_location
        - Src:             'mailbox-list-maildir-iter.c:180,7'
          Dst:             strncmp
        - Src:             'mailbox-list-maildir-iter.c:180,7'
          Dst:             str_begins_with
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    maildir_list_get_mailbox_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-maildir-iter.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          214
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - i_unreached
        - maildir_get_type
        - str_begins_with
        - strcmp
        - strncmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mailbox-list-maildir-iter.c:195,2'
          Branch Sides:    []
        - Branch String:   'mailbox-list-maildir-iter.c:215,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mailbox-list-maildir-iter.c:204,7'
          Dst:             strcmp
        - Src:             'mailbox-list-maildir-iter.c:205,8'
          Dst:             strncmp
        - Src:             'mailbox-list-maildir-iter.c:205,8'
          Dst:             str_begins_with
        - Src:             'mailbox-list-maildir-iter.c:210,8'
          Dst:             maildir_get_type
        - Src:             'mailbox-list-maildir-iter.c:234,3'
          Dst:             i_unreached
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_notify_node_get_status
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_lookup_seq
        - mailbox_list_index_status
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:27,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mailbox-list-notify-tree.c:31,8'
          Dst:             mailbox_list_index_status
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    mailbox_list_notify_node_build
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          146
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_notify_node_build
        - mailbox_list_notify_node_get_status
        - mailbox_tree_get
        - str_append
        - str_append_c
        - str_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:52,2'
          Dst:             str_append
        - Src:             'mailbox-list-notify-tree.c:54,43'
          Dst:             str_c
        - Src:             'mailbox-list-notify-tree.c:54,9'
          Dst:             mailbox_tree_get
        - Src:             'mailbox-list-notify-tree.c:64,3'
          Dst:             mailbox_list_notify_node_get_status
        - Src:             'mailbox-list-notify-tree.c:70,3'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-notify-tree.c:70,3'
          Dst:             str_append_c
        - Src:             'mailbox-list-notify-tree.c:71,16'
          Dst:             str_len
        - Src:             'mailbox-list-notify-tree.c:74,4'
          Dst:             str_truncate
        - Src:             'mailbox-list-notify-tree.c:75,4'
          Dst:             mailbox_list_notify_node_build
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    mailbox_list_notify_tree_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_tree_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:129,9'
          Dst:             mailbox_tree_lookup
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_notify_tree_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_tree_deinit
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:119,2'
          Dst:             mailbox_tree_deinit
        - Src:             'mailbox-list-notify-tree.c:120,2'
          Dst:             p_free_internal
    - functionName:    mailbox_list_notify_tree_build
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_list_index_refresh
        - mailbox_list_notify_node_build
        - module_context_get_require
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:83,37'
          Dst:             module_context_get_require
        - Src:             'mailbox-list-notify-tree.c:85,19'
          Dst:             t_str_new
        - Src:             'mailbox-list-notify-tree.c:87,6'
          Dst:             mailbox_list_index_refresh
        - Src:             'mailbox-list-notify-tree.c:90,15'
          Dst:             mail_index_view_open
        - Src:             'mailbox-list-notify-tree.c:93,3'
          Dst:             str_truncate
        - Src:             'mailbox-list-notify-tree.c:94,3'
          Dst:             mailbox_list_notify_node_build
        - Src:             'mailbox-list-notify-tree.c:96,2'
          Dst:             mail_index_view_close
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/list/../../../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:    mailbox_list_notify_tree_init
      functionSourceFile: '/src/dovecot/src/lib-storage/list/mailbox-list-notify-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_list_get_hierarchy_sep
        - mailbox_list_notify_tree_build
        - mailbox_tree_init_size
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-list-notify-tree.c:104,9'
          Dst:             malloc_multiply_check
        - Src:             'mailbox-list-notify-tree.c:104,9'
          Dst:             p_malloc
        - Src:             'mailbox-list-notify-tree.c:107,26'
          Dst:             mailbox_list_get_hierarchy_sep
        - Src:             'mailbox-list-notify-tree.c:107,3'
          Dst:             mailbox_tree_init_size
        - Src:             'mailbox-list-notify-tree.c:109,2'
          Dst:             mailbox_list_notify_tree_build
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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_append
      functionSourceFile: '/src/dovecot/src/lib-storage/../../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:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    mailbox_uidvalidity_write
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-uidvalidity.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          154
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - e_error
        - eperm_error_get_chgrp
        - fchown
        - i_snprintf
        - i_unreached
        - mailbox_list_get_root_permissions
        - mailbox_list_get_user
        - open
        - pwrite_full
        - strlen
        - umask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-uidvalidity.c:40,27'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:46,2'
          Dst:             mailbox_list_get_root_permissions
        - Src:             'mailbox-uidvalidity.c:48,13'
          Dst:             umask
        - Src:             'mailbox-uidvalidity.c:49,7'
          Dst:             open
        - Src:             'mailbox-uidvalidity.c:50,2'
          Dst:             umask
        - Src:             'mailbox-uidvalidity.c:52,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:56,6'
          Dst:             fchown
        - Src:             'mailbox-uidvalidity.c:57,7'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:58,4'
          Dst:             eperm_error_get_chgrp
        - Src:             'mailbox-uidvalidity.c:58,4'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:63,4'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:63,4'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:69,6'
          Dst:             i_snprintf
        - Src:             'mailbox-uidvalidity.c:70,3'
          Dst:             i_unreached
        - Src:             'mailbox-uidvalidity.c:71,27'
          Dst:             strlen
        - Src:             'mailbox-uidvalidity.c:71,6'
          Dst:             pwrite_full
        - Src:             'mailbox-uidvalidity.c:72,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:73,6'
          Dst:             close
        - Src:             'mailbox-uidvalidity.c:74,3'
          Dst:             e_error
    - functionName:    mailbox_uidvalidity_next_fallback
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-uidvalidity.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - time_to_uint32
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-uidvalidity.c:28,21'
          Dst:             time_to_uint32
        - Src:             'mailbox-uidvalidity.c:29,18'
          Dst:             time_to_uint32
    - functionName:    mailbox_uidvalidity_rename
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-uidvalidity.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_error
        - mailbox_list_get_user
        - rename
        - str_append
        - str_c
        - str_len
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-uidvalidity.c:86,8'
          Dst:             t_str_new
        - Src:             'mailbox-uidvalidity.c:87,2'
          Dst:             str_append
        - Src:             'mailbox-uidvalidity.c:88,9'
          Dst:             t_str_new
        - Src:             'mailbox-uidvalidity.c:89,2'
          Dst:             str_append
        - Src:             'mailbox-uidvalidity.c:90,15'
          Dst:             str_len
        - Src:             'mailbox-uidvalidity.c:93,3'
          Dst:             str_truncate
        - Src:             'mailbox-uidvalidity.c:94,3'
          Dst:             str_truncate
        - Src:             'mailbox-uidvalidity.c:96,3'
          Dst:             str_printfa
        - Src:             'mailbox-uidvalidity.c:100,3'
          Dst:             str_printfa
        - Src:             'mailbox-uidvalidity.c:102,21'
          Dst:             str_c
        - Src:             'mailbox-uidvalidity.c:102,33'
          Dst:             str_c
        - Src:             'mailbox-uidvalidity.c:102,14'
          Dst:             rename
        - Src:             'mailbox-uidvalidity.c:103,7'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:108,18'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:109,3'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:109,3'
          Dst:             str_c
        - Src:             'mailbox-uidvalidity.c:109,3'
          Dst:             str_c
        - Src:             'mailbox-uidvalidity.c:109,3'
          Dst:             e_error
    - functionName:    mailbox_uidvalidity_next_rescan
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-uidvalidity.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          313
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - closedir
        - e_error
        - i_close_fd_path
        - i_unlink_if_exists
        - mailbox_list_get_user
        - mailbox_list_mkdir_root
        - mailbox_uidvalidity_next_fallback
        - mailbox_uidvalidity_rename
        - mailbox_uidvalidity_write
        - open
        - opendir
        - readdir
        - str_to_uint32_hex
        - strlen
        - strncmp
        - strrchr
        - t_strconcat
        - t_strdup_printf
        - t_strdup_until
        - umask
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-uidvalidity.c:126,10'
          Dst:             strrchr
        - Src:             'mailbox-uidvalidity.c:131,9'
          Dst:             t_strdup_until
        - Src:             'mailbox-uidvalidity.c:135,6'
          Dst:             opendir
        - Src:             'mailbox-uidvalidity.c:136,19'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:141,9'
          Dst:             mailbox_list_mkdir_root
        - Src:             'mailbox-uidvalidity.c:142,7'
          Dst:             opendir
        - Src:             'mailbox-uidvalidity.c:145,3'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:145,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:147,10'
          Dst:             mailbox_uidvalidity_next_fallback
        - Src:             'mailbox-uidvalidity.c:149,11'
          Dst:             t_strconcat
        - Src:             'mailbox-uidvalidity.c:150,15'
          Dst:             strlen
        - Src:             'mailbox-uidvalidity.c:156,15'
          Dst:             readdir
        - Src:             'mailbox-uidvalidity.c:157,7'
          Dst:             strncmp
        - Src:             'mailbox-uidvalidity.c:158,8'
          Dst:             str_to_uint32_hex
        - Src:             'mailbox-uidvalidity.c:166,6'
          Dst:             closedir
        - Src:             'mailbox-uidvalidity.c:167,3'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:167,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:173,16'
          Dst:             mailbox_uidvalidity_next_fallback
        - Src:             'mailbox-uidvalidity.c:174,10'
          Dst:             t_strdup_printf
        - Src:             'mailbox-uidvalidity.c:176,15'
          Dst:             umask
        - Src:             'mailbox-uidvalidity.c:177,9'
          Dst:             open
        - Src:             'mailbox-uidvalidity.c:178,4'
          Dst:             umask
        - Src:             'mailbox-uidvalidity.c:179,20'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:186,4'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:186,4'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:190,3'
          Dst:             i_close_fd_path
        - Src:             'mailbox-uidvalidity.c:191,3'
          Dst:             mailbox_uidvalidity_write
        - Src:             'mailbox-uidvalidity.c:196,9'
          Dst:             t_strdup_printf
        - Src:             'mailbox-uidvalidity.c:197,3'
          Dst:             i_unlink_if_exists
        - Src:             'mailbox-uidvalidity.c:201,6'
          Dst:             mailbox_uidvalidity_rename
        - Src:             'mailbox-uidvalidity.c:202,10'
          Dst:             mailbox_uidvalidity_next_fallback
        - Src:             'mailbox-uidvalidity.c:203,2'
          Dst:             mailbox_uidvalidity_write
    - functionName:    mailbox_uidvalidity_next
      functionSourceFile: '/src/dovecot/src/lib-storage/mailbox-uidvalidity.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          178
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - close
        - e_error
        - i_close_fd_path
        - i_snprintf
        - i_unreached
        - mailbox_list_get_user
        - mailbox_uidvalidity_next_rescan
        - mailbox_uidvalidity_rename
        - open
        - pwrite_full
        - read_full
        - str_to_uint32_hex
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mailbox-uidvalidity.c:209,27'
          Dst:             mailbox_list_get_user
        - Src:             'mailbox-uidvalidity.c:214,7'
          Dst:             open
        - Src:             'mailbox-uidvalidity.c:216,7'
          Dst:             __errno_location
        - Src:             'mailbox-uidvalidity.c:217,4'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:218,10'
          Dst:             mailbox_uidvalidity_next_rescan
        - Src:             'mailbox-uidvalidity.c:220,8'
          Dst:             read_full
        - Src:             'mailbox-uidvalidity.c:222,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:223,3'
          Dst:             i_close_fd_path
        - Src:             'mailbox-uidvalidity.c:224,10'
          Dst:             mailbox_uidvalidity_next_rescan
        - Src:             'mailbox-uidvalidity.c:227,18'
          Dst:             str_to_uint32_hex
        - Src:             'mailbox-uidvalidity.c:230,3'
          Dst:             i_close_fd_path
        - Src:             'mailbox-uidvalidity.c:231,10'
          Dst:             mailbox_uidvalidity_next_rescan
        - Src:             'mailbox-uidvalidity.c:235,6'
          Dst:             mailbox_uidvalidity_rename
        - Src:             'mailbox-uidvalidity.c:236,3'
          Dst:             i_close_fd_path
        - Src:             'mailbox-uidvalidity.c:237,10'
          Dst:             mailbox_uidvalidity_next_rescan
        - Src:             'mailbox-uidvalidity.c:242,6'
          Dst:             i_snprintf
        - Src:             'mailbox-uidvalidity.c:243,3'
          Dst:             i_unreached
        - Src:             'mailbox-uidvalidity.c:244,27'
          Dst:             strlen
        - Src:             'mailbox-uidvalidity.c:244,6'
          Dst:             pwrite_full
        - Src:             'mailbox-uidvalidity.c:245,3'
          Dst:             e_error
        - Src:             'mailbox-uidvalidity.c:246,6'
          Dst:             close
        - Src:             'mailbox-uidvalidity.c:247,3'
          Dst:             e_error
    - functionName:    do_hardlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       39
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - link
        - mail_storage_set_error
        - mailbox_set_critical
        - nfs_safe_link
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-copy.c:29,9'
          Dst:             nfs_safe_link
        - Src:             'maildir-copy.c:31,9'
          Dst:             link
        - Src:             'maildir-copy.c:33,7'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:36,7'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:37,4'
          Dst:             mail_storage_set_error
        - Src:             'maildir-copy.c:45,7'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,7'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,7'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,27'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,27'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,27'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:45,47'
          Dst:             __errno_location
        - Src:             'maildir-copy.c:48,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_copy_hardlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          235
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - do_hardlink
        - mail_get_physical_size
        - mail_get_special
        - mail_get_virtual_size
        - mailbox_get_path
        - maildir_file_do
        - maildir_filename_generate
        - maildir_save_add
        - maildir_save_finish_keywords
        - maildir_save_set_dest_basename
        - maildir_save_set_sizes
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-copy.c:68,6'
          Dst:             strcmp
        - Src:             'maildir-copy.c:70,11'
          Dst:             strcmp
        - Src:             'maildir-copy.c:80,15'
          Dst:             maildir_filename_generate
        - Src:             'maildir-copy.c:83,32'
          Dst:             mailbox_get_path
        - Src:             'maildir-copy.c:83,3'
          Dst:             t_strdup_printf
        - Src:             'maildir-copy.c:87,7'
          Dst:             maildir_file_do
        - Src:             'maildir-copy.c:87,7'
          Dst:             do_hardlink
        - Src:             'maildir-copy.c:92,7'
          Dst:             mail_get_special
        - Src:             'maildir-copy.c:95,7'
          Dst:             do_hardlink
        - Src:             'maildir-copy.c:105,7'
          Dst:             maildir_save_add
        - Src:             'maildir-copy.c:106,6'
          Dst:             mail_get_special
        - Src:             'maildir-copy.c:108,4'
          Dst:             maildir_save_set_dest_basename
        - Src:             'maildir-copy.c:112,2'
          Dst:             maildir_save_finish_keywords
        - Src:             'maildir-copy.c:117,6'
          Dst:             mail_get_physical_size
        - Src:             'maildir-copy.c:119,6'
          Dst:             mail_get_virtual_size
        - Src:             'maildir-copy.c:121,2'
          Dst:             maildir_save_set_sizes
    - functionName:    maildir_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - index_save_context_free
        - mail_storage_copy
        - mail_storage_copy_can_use_hardlink
        - maildir_copy_hardlink
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-copy.c:132,2'
          Dst:             i_panic
        - Src:             'maildir-copy.c:135,6'
          Dst:             mail_storage_copy_can_use_hardlink
        - Src:             'maildir-copy.c:136,3'
          Dst:             t_push
        - Src:             'maildir-copy.c:137,10'
          Dst:             maildir_copy_hardlink
        - Src:             'maildir-copy.c:138,5'
          Dst:             t_pop
        - Src:             'maildir-copy.c:138,5'
          Dst:             i_panic
        - Src:             'maildir-copy.c:141,4'
          Dst:             index_save_context_free
        - Src:             'maildir-copy.c:148,9'
          Dst:             mail_storage_copy
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    char_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_filename_append_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - char_cmp
        - maildir_keywords_idx_char
        - qsort
        - str_append_c
        - str_c_modifiable
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename-flags.c:77,17'
          Dst:             str_len
        - Src:             'maildir-filename-flags.c:80,12'
          Dst:             array_get_i
        - Src:             'maildir-filename-flags.c:82,9'
          Dst:             maildir_keywords_idx_char
        - Src:             'maildir-filename-flags.c:84,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:87,8'
          Dst:             str_c_modifiable
        - Src:             'maildir-filename-flags.c:87,41'
          Dst:             str_len
        - Src:             'maildir-filename-flags.c:87,2'
          Dst:             qsort
        - Src:             'maildir-filename-flags.c:87,2'
          Dst:             char_cmp
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    maildir_filename_flags_kw_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_filename_flags_full_set
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename-flags.c:184,9'
          Dst:             maildir_filename_flags_full_set
    - functionName:    maildir_filename_flags_full_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          435
      EdgeCount:       115
      CyclomaticComplexity: 33
      functionsReached:
        - array_is_created_i
        - maildir_filename_append_keywords
        - str_append
        - str_append_c
        - str_c
        - strrchr
        - t_str_new
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename-flags.c:102,9'
          Dst:             strrchr
        - Src:             'maildir-filename-flags.c:103,22'
          Dst:             strrchr
        - Src:             'maildir-filename-flags.c:108,11'
          Dst:             t_strdup_until
        - Src:             'maildir-filename-flags.c:115,14'
          Dst:             t_str_new
        - Src:             'maildir-filename-flags.c:116,2'
          Dst:             str_append
        - Src:             'maildir-filename-flags.c:117,2'
          Dst:             str_append
        - Src:             'maildir-filename-flags.c:132,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:136,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:140,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:144,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:148,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:152,27'
          Dst:             array_is_created_i
        - Src:             'maildir-filename-flags.c:154,4'
          Dst:             maildir_filename_append_keywords
        - Src:             'maildir-filename-flags.c:162,3'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:169,4'
          Dst:             str_append_c
        - Src:             'maildir-filename-flags.c:172,9'
          Dst:             str_c
    - functionName:    maildir_filename_flags_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_filename_flags_full_set
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename-flags.c:177,9'
          Dst:             maildir_filename_flags_full_set
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    maildir_filename_flags_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename-flags.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          181
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_clear_i
        - maildir_keywords_char_idx
        - strrchr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'maildir-filename-flags.c:25,3'
          Branch Sides:    []
      Callsites:
        - Src:             'maildir-filename-flags.c:17,2'
          Dst:             array_clear_i
        - Src:             'maildir-filename-flags.c:20,9'
          Dst:             strrchr
        - Src:             'maildir-filename-flags.c:46,11'
          Dst:             maildir_keywords_char_idx
        - Src:             'maildir-filename-flags.c:52,5'
          Dst:             array_append_i
    - functionName:    maildir_fname_get_usecs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maildir_filename_sort_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          159
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - maildir_filename_base_cmp
        - maildir_fname_get_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename.c:133,7'
          Dst:             maildir_fname_get_usecs
        - Src:             'maildir-filename.c:134,7'
          Dst:             maildir_fname_get_usecs
        - Src:             'maildir-filename.c:139,10'
          Dst:             maildir_filename_base_cmp
    - functionName:    maildir_filename_base_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          140
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename.c:85,3'
          Dst:             i_panic
    - functionName:    maildir_filename_base_hash
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename.c:68,3'
          Dst:             i_panic
    - functionName:    maildir_filename_get_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          189
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename.c:37,3'
          Dst:             i_panic
    - functionName:    maildir_filename_generate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-filename.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dec2str
        - t_strdup_printf
        - timeval_cmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-filename.c:16,6'
          Dst:             timeval_cmp
        - Src:             'maildir-filename.c:28,11'
          Dst:             dec2str
        - Src:             'maildir-filename.c:28,31'
          Dst:             dec2str
        - Src:             'maildir-filename.c:27,9'
          Dst:             t_strdup_printf
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    maildir_keywords_clear
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_clear_i
        - hash_table_clear
        - p_clear
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:105,2'
          Dst:             array_clear_i
        - Src:             'maildir-keywords.c:106,2'
          Dst:             hash_table_clear
        - Src:             'maildir-keywords.c:107,2'
          Dst:             p_clear
    - functionName:    maildir_keywords_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          270
      EdgeCount:       46
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - array_idx_get_space_i
        - close
        - hash_table_insert
        - hash_table_lookup
        - i_stream_create_fd
        - i_stream_destroy
        - i_stream_read_next_line
        - mailbox_set_critical
        - maildir_keywords_clear
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
        - open
        - p_strdup
        - str_to_uint
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:126,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'maildir-keywords.c:129,6'
          Dst:             nfs_safe_stat
        - Src:             'maildir-keywords.c:130,7'
          Dst:             __errno_location
        - Src:             'maildir-keywords.c:131,4'
          Dst:             maildir_keywords_clear
        - Src:             'maildir-keywords.c:135,17'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:147,7'
          Dst:             open
        - Src:             'maildir-keywords.c:149,7'
          Dst:             __errno_location
        - Src:             'maildir-keywords.c:150,4'
          Dst:             maildir_keywords_clear
        - Src:             'maildir-keywords.c:154,17'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:159,2'
          Dst:             maildir_keywords_clear
        - Src:             'maildir-keywords.c:160,10'
          Dst:             i_stream_create_fd
        - Src:             'maildir-keywords.c:161,17'
          Dst:             i_stream_read_next_line
        - Src:             'maildir-keywords.c:162,7'
          Dst:             strchr
        - Src:             'maildir-keywords.c:170,7'
          Dst:             str_to_uint
        - Src:             'maildir-keywords.c:172,7'
          Dst:             hash_table_lookup
        - Src:             'maildir-keywords.c:178,14'
          Dst:             p_strdup
        - Src:             'maildir-keywords.c:179,3'
          Dst:             hash_table_insert
        - Src:             'maildir-keywords.c:181,10'
          Dst:             array_idx_get_space_i
        - Src:             'maildir-keywords.c:184,2'
          Dst:             i_stream_destroy
        - Src:             'maildir-keywords.c:186,6'
          Dst:             close
        - Src:             'maildir-keywords.c:187,17'
          Dst:             mailbox_set_critical
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    maildir_keywords_write_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          272
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - array_get_i
        - eperm_error_get_chgrp
        - fchown
        - fstat
        - fsync
        - mailbox_get_permissions
        - mailbox_set_critical
        - str_data
        - str_len
        - str_printfa
        - t_str_new
        - utime
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:292,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-keywords.c:298,8'
          Dst:             t_str_new
        - Src:             'maildir-keywords.c:299,13'
          Dst:             array_get_i
        - Src:             'maildir-keywords.c:302,4'
          Dst:             str_printfa
        - Src:             'maildir-keywords.c:304,21'
          Dst:             str_data
        - Src:             'maildir-keywords.c:304,36'
          Dst:             str_len
        - Src:             'maildir-keywords.c:304,6'
          Dst:             write_full
        - Src:             'maildir-keywords.c:305,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:310,6'
          Dst:             fstat
        - Src:             'maildir-keywords.c:311,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:318,7'
          Dst:             fchown
        - Src:             'maildir-keywords.c:319,8'
          Dst:             __errno_location
        - Src:             'maildir-keywords.c:321,6'
          Dst:             eperm_error_get_chgrp
        - Src:             'maildir-keywords.c:320,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:325,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:339,7'
          Dst:             utime
        - Src:             'maildir-keywords.c:340,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:346,6'
          Dst:             fsync
        - Src:             'maildir-keywords.c:347,3'
          Dst:             mailbox_set_critical
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_keywords_lookup_or_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          117
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - maildir_keywords_create
        - maildir_keywords_lookup
        - maildir_uidlist_is_locked
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:246,13'
          Dst:             maildir_keywords_lookup
        - Src:             'maildir-keywords.c:250,13'
          Dst:             array_get_i
        - Src:             'maildir-keywords.c:259,7'
          Dst:             maildir_uidlist_is_locked
        - Src:             'maildir-keywords.c:262,2'
          Dst:             maildir_keywords_create
    - functionName:    maildir_keywords_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - hash_table_lookup
        - i_panic
        - maildir_keywords_sync
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:202,10'
          Dst:             hash_table_lookup
        - Src:             'maildir-keywords.c:207,7'
          Dst:             maildir_keywords_sync
        - Src:             'maildir-keywords.c:209,3'
          Dst:             i_panic
        - Src:             'maildir-keywords.c:211,11'
          Dst:             hash_table_lookup
    - functionName:    maildir_keywords_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_idx_get_space_i
        - hash_table_insert
        - i_panic
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:227,2'
          Dst:             i_panic
        - Src:             'maildir-keywords.c:229,13'
          Dst:             p_strdup
        - Src:             'maildir-keywords.c:230,2'
          Dst:             hash_table_insert
        - Src:             'maildir-keywords.c:232,9'
          Dst:             array_idx_get_space_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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-storage/index/maildir/../../../../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:    maildir_keywords_idx_char
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_get_space_i
        - array_idx_i
        - maildir_keywords_lookup
        - maildir_keywords_lookup_or_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:486,10'
          Dst:             array_idx_get_space_i
        - Src:             'maildir-keywords.c:490,9'
          Dst:             array_idx_i
        - Src:             'maildir-keywords.c:492,3'
          Dst:             maildir_keywords_lookup_or_create
        - Src:             'maildir-keywords.c:493,3'
          Dst:             maildir_keywords_lookup
    - functionName:    maildir_keywords_idx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
        - maildir_keywords_sync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:273,13'
          Dst:             array_get_i
        - Src:             'maildir-keywords.c:278,7'
          Dst:             maildir_keywords_sync
        - Src:             'maildir-keywords.c:280,3'
          Dst:             i_panic
        - Src:             'maildir-keywords.c:282,14'
          Dst:             array_get_i
    - functionName:    maildir_keywords_char_idx
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mail_index_keyword_lookup_or_create
        - maildir_keywords_create
        - maildir_keywords_idx
        - maildir_keywords_lookup
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:453,2'
          Dst:             i_panic
        - Src:             'maildir-keywords.c:461,9'
          Dst:             maildir_keywords_idx
        - Src:             'maildir-keywords.c:464,10'
          Dst:             t_strdup_printf
        - Src:             'maildir-keywords.c:465,10'
          Dst:             maildir_keywords_lookup
        - Src:             'maildir-keywords.c:468,11'
          Dst:             t_strconcat
        - Src:             'maildir-keywords.c:470,17'
          Dst:             maildir_keywords_create
        - Src:             'maildir-keywords.c:473,2'
          Dst:             mail_index_keyword_lookup_or_create
    - functionName:    maildir_keywords_commit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          172
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - file_dotlock_delete
        - file_dotlock_open
        - file_dotlock_replace
        - i_unlink_if_exists
        - mailbox_get_permissions
        - mailbox_set_critical
        - maildir_keywords_write_fd
        - maildir_set_deleted
        - t_strconcat
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:367,14'
          Dst:             t_strconcat
        - Src:             'maildir-keywords.c:368,2'
          Dst:             i_unlink_if_exists
        - Src:             'maildir-keywords.c:370,9'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-keywords.c:375,14'
          Dst:             umask
        - Src:             'maildir-keywords.c:376,8'
          Dst:             file_dotlock_open
        - Src:             'maildir-keywords.c:378,3'
          Dst:             umask
        - Src:             'maildir-keywords.c:382,7'
          Dst:             __errno_location
        - Src:             'maildir-keywords.c:383,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-keywords.c:389,8'
          Dst:             maildir_set_deleted
        - Src:             'maildir-keywords.c:393,6'
          Dst:             maildir_keywords_write_fd
        - Src:             'maildir-keywords.c:394,3'
          Dst:             file_dotlock_delete
        - Src:             'maildir-keywords.c:398,6'
          Dst:             file_dotlock_replace
        - Src:             'maildir-keywords.c:399,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_keywords_sync_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - i_panic
        - maildir_keywords_commit
        - p_free_internal
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:439,2'
          Dst:             t_push
        - Src:             'maildir-keywords.c:440,9'
          Dst:             maildir_keywords_commit
        - Src:             'maildir-keywords.c:441,4'
          Dst:             t_pop
        - Src:             'maildir-keywords.c:441,4'
          Dst:             i_panic
        - Src:             'maildir-keywords.c:443,2'
          Dst:             array_free_i
        - Src:             'maildir-keywords.c:444,2'
          Dst:             p_free_internal
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_keywords_sync_init_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_keywords_sync_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:428,8'
          Dst:             maildir_keywords_sync_init
    - functionName:    maildir_keywords_sync_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - mail_index_get_keywords
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:414,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-keywords.c:414,8'
          Dst:             p_malloc
        - Src:             'maildir-keywords.c:417,18'
          Dst:             mail_index_get_keywords
        - Src:             'maildir-keywords.c:418,2'
          Dst:             array_create_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_keywords_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash_table_destroy
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:96,2'
          Dst:             hash_table_destroy
        - Src:             'maildir-keywords.c:97,2'
          Dst:             array_free_i
        - Src:             'maildir-keywords.c:98,2'
          Dst:             pool_unref
        - Src:             'maildir-keywords.c:99,2'
          Dst:             p_free_internal
        - Src:             'maildir-keywords.c:100,2'
          Dst:             p_free_internal
    - functionName:    maildir_keywords_init_readonly
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          120
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - hash_table_create
        - i_strconcat
        - i_unreached
        - mail_storage_get_lock_timeout
        - mailbox_get_path_to
        - mailbox_list_get_temp_prefix
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - strcase_hash
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:68,6'
          Dst:             mailbox_get_path_to
        - Src:             'maildir-keywords.c:69,3'
          Dst:             i_unreached
        - Src:             'maildir-keywords.c:71,7'
          Dst:             malloc_multiply_check
        - Src:             'maildir-keywords.c:71,7'
          Dst:             p_malloc
        - Src:             'maildir-keywords.c:73,13'
          Dst:             i_strconcat
        - Src:             'maildir-keywords.c:74,13'
          Dst:             pool_alloconly_create
        - Src:             'maildir-keywords.c:75,2'
          Dst:             array_create_i
        - Src:             'maildir-keywords.c:76,2'
          Dst:             hash_table_create
        - Src:             'maildir-keywords.c:76,2'
          Dst:             strcase_hash
        - Src:             'maildir-keywords.c:76,2'
          Dst:             strcasecmp
        - Src:             'maildir-keywords.c:83,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'maildir-keywords.c:87,3'
          Dst:             mailbox_list_get_temp_prefix
    - functionName:    maildir_keywords_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-keywords.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_keywords_init_readonly
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-keywords.c:57,7'
          Dst:             maildir_keywords_init_readonly
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    do_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_strdup
        - mail_error_eacces_msg
        - mailbox_set_critical
        - nfs_safe_open
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:28,12'
          Dst:             nfs_safe_open
        - Src:             'maildir-mail.c:30,15'
          Dst:             i_strdup
        - Src:             'maildir-mail.c:33,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:36,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:36,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:36,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:38,4'
          Dst:             mail_error_eacces_msg
        - Src:             'maildir-mail.c:37,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-mail.c:40,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_open_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          177
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - do_open
        - i_panic
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_set_name
        - index_mail_set_read_buffer_size
        - mail_stream_access_start
        - maildir_file_do
        - maildir_lose_unexpected_dir
        - maildir_save_file_get_path
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:73,7'
          Dst:             mail_stream_access_start
        - Src:             'maildir-mail.c:81,7'
          Dst:             maildir_file_do
        - Src:             'maildir-mail.c:81,7'
          Dst:             do_open
        - Src:             'maildir-mail.c:84,10'
          Dst:             maildir_save_file_get_path
        - Src:             'maildir-mail.c:85,7'
          Dst:             do_open
        - Src:             'maildir-mail.c:91,3'
          Dst:             i_panic
        - Src:             'maildir-mail.c:95,10'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'maildir-mail.c:97,3'
          Dst:             i_stream_destroy
        - Src:             'maildir-mail.c:98,7'
          Dst:             maildir_lose_unexpected_dir
        - Src:             'maildir-mail.c:102,3'
          Dst:             i_stream_set_name
        - Src:             'maildir-mail.c:103,3'
          Dst:             index_mail_set_read_buffer_size
        - Src:             'maildir-mail.c:105,2'
          Dst:             p_free_internal
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    maildir_get_pop3_state
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          284
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - index_mail_get_vsize_extension
        - mail_cache_field_get_decision
        - mail_cache_register_get_list
        - module_context_get_require
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:229,39'
          Dst:             module_context_get_require
        - Src:             'maildir-mail.c:254,15'
          Dst:             mail_cache_field_get_decision
        - Src:             'maildir-mail.c:260,12'
          Dst:             mail_cache_register_get_list
        - Src:             'maildir-mail.c:270,3'
          Dst:             pool_unref
        - Src:             'maildir-mail.c:273,6'
          Dst:             index_mail_get_vsize_extension
    - functionName:    maildir_mail_get_fname
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_seq
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
        - mail_set_expunged
        - mail_storage_last_error_pop
        - mail_storage_last_error_push
        - maildir_storage_sync_force
        - maildir_sync_lookup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:197,8'
          Dst:             maildir_sync_lookup
        - Src:             'maildir-mail.c:202,2'
          Dst:             mail_set_expunged
        - Src:             'maildir-mail.c:206,2'
          Dst:             mail_storage_last_error_push
        - Src:             'maildir-mail.c:211,2'
          Dst:             mail_index_refresh
        - Src:             'maildir-mail.c:212,9'
          Dst:             mail_index_view_open
        - Src:             'maildir-mail.c:213,11'
          Dst:             mail_index_lookup_seq
        - Src:             'maildir-mail.c:214,2'
          Dst:             mail_index_view_close
        - Src:             'maildir-mail.c:220,9'
          Dst:             maildir_storage_sync_force
        - Src:             'maildir-mail.c:222,2'
          Dst:             mail_storage_last_error_pop
    - functionName:    maildir_handle_size_caching
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          220
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - dec2str
        - mail_set_mail_cache_corrupted
        - maildir_get_pop3_state
        - maildir_quick_size_lookup
        - maildir_uidlist_set_ext
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:351,21'
          Dst:             maildir_quick_size_lookup
        - Src:             'maildir-mail.c:356,4'
          Dst:             mail_set_mail_cache_corrupted
        - Src:             'maildir-mail.c:362,4'
          Dst:             mail_set_mail_cache_corrupted
        - Src:             'maildir-mail.c:373,15'
          Dst:             maildir_get_pop3_state
        - Src:             'maildir-mail.c:383,6'
          Dst:             dec2str
        - Src:             'maildir-mail.c:380,3'
          Dst:             maildir_uidlist_set_ext
    - functionName:    maildir_quick_size_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          196
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - maildir_filename_get_size
        - maildir_mail_get_fname
        - maildir_save_file_get_path
        - maildir_save_file_get_size
        - maildir_uidlist_lookup_ext
        - str_to_uoff
        - strrchr
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:304,7'
          Dst:             maildir_mail_get_fname
        - Src:             'maildir-mail.c:307,7'
          Dst:             maildir_save_file_get_size
        - Src:             'maildir-mail.c:311,10'
          Dst:             maildir_save_file_get_path
        - Src:             'maildir-mail.c:313,11'
          Dst:             strrchr
        - Src:             'maildir-mail.c:319,7'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-mail.c:329,11'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:331,24'
          Dst:             str_to_uoff
    - functionName:    do_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          83
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - mail_error_eacces_msg
        - mailbox_set_critical
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:49,6'
          Dst:             stat
        - Src:             'maildir-mail.c:51,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:54,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:54,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:54,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:56,4'
          Dst:             mail_error_eacces_msg
        - Src:             'maildir-mail.c:55,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-mail.c:58,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_mail_stat
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - do_stat
        - fstat
        - i_stream_get_fd
        - i_stream_get_name
        - mail_event
        - mail_get_stream
        - mail_metadata_access_start
        - mail_metadata_accessed_event
        - mail_set_critical
        - mail_set_expunged
        - maildir_file_do
        - maildir_save_file_get_path
        - stat
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:116,7'
          Dst:             mail_metadata_access_start
        - Src:             'maildir-mail.c:124,9'
          Dst:             mail_get_stream
        - Src:             'maildir-mail.c:126,32'
          Dst:             mail_event
        - Src:             'maildir-mail.c:126,3'
          Dst:             mail_metadata_accessed_event
        - Src:             'maildir-mail.c:129,12'
          Dst:             i_stream_get_fd
        - Src:             'maildir-mail.c:131,7'
          Dst:             fstat
        - Src:             'maildir-mail.c:133,5'
          Dst:             i_stream_get_name
        - Src:             'maildir-mail.c:132,4'
          Dst:             mail_set_critical
        - Src:             'maildir-mail.c:138,9'
          Dst:             maildir_file_do
        - Src:             'maildir-mail.c:138,9'
          Dst:             do_stat
        - Src:             'maildir-mail.c:141,5'
          Dst:             mail_set_expunged
        - Src:             'maildir-mail.c:146,10'
          Dst:             maildir_save_file_get_path
        - Src:             'maildir-mail.c:147,7'
          Dst:             stat
        - Src:             'maildir-mail.c:148,4'
          Dst:             mail_set_critical
    - functionName:    do_fix_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          177
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - i_panic
        - mailbox_set_critical
        - rename
        - stat
        - strchr
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:682,10'
          Dst:             strrchr
        - Src:             'maildir-mail.c:683,2'
          Dst:             i_panic
        - Src:             'maildir-mail.c:684,8'
          Dst:             t_strdup_until
        - Src:             'maildir-mail.c:686,10'
          Dst:             strchr
        - Src:             'maildir-mail.c:687,2'
          Dst:             i_panic
        - Src:             'maildir-mail.c:688,9'
          Dst:             strchr
        - Src:             'maildir-mail.c:692,7'
          Dst:             stat
        - Src:             'maildir-mail.c:693,8'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:695,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-mail.c:703,7'
          Dst:             t_strdup_until
        - Src:             'maildir-mail.c:702,12'
          Dst:             t_strdup_printf
        - Src:             'maildir-mail.c:706,6'
          Dst:             rename
        - Src:             'maildir-mail.c:707,3'
          Dst:             mailbox_set_critical
        - Src:             'maildir-mail.c:713,6'
          Dst:             __errno_location
        - Src:             'maildir-mail.c:716,2'
          Dst:             mailbox_set_critical
    - functionName:    maildir_mail_remove_sizes_from_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          155
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - do_fix_size
        - i_stream_stat
        - mail_get_stream
        - maildir_file_do
        - maildir_filename_get_size
        - maildir_sync_lookup
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:737,6'
          Dst:             maildir_sync_lookup
        - Src:             'maildir-mail.c:739,6'
          Dst:             strchr
        - Src:             'maildir-mail.c:745,6'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-mail.c:749,6'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-mail.c:763,7'
          Dst:             mail_get_stream
        - Src:             'maildir-mail.c:765,7'
          Dst:             i_stream_stat
        - Src:             'maildir-mail.c:770,8'
          Dst:             maildir_file_do
        - Src:             'maildir-mail.c:770,8'
          Dst:             do_fix_size
    - functionName:    maildir_mail_remove_sizes_from_uidlist
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - maildir_uidlist_lookup_ext
        - maildir_uidlist_unset_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:658,6'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:660,3'
          Dst:             maildir_uidlist_unset_ext
        - Src:             'maildir-mail.c:663,6'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:665,3'
          Dst:             maildir_uidlist_unset_ext
    - functionName:    maildir_mail_fix_corruption
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_mail_remove_sizes_from_filename
        - maildir_mail_remove_sizes_from_uidlist
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:782,2'
          Dst:             maildir_mail_remove_sizes_from_uidlist
        - Src:             'maildir-mail.c:783,2'
          Dst:             maildir_mail_remove_sizes_from_filename
    - functionName:    maildir_mail_set_cache_corrupted
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_set_cache_corrupted
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:796,2'
          Dst:             index_mail_set_cache_corrupted
    - functionName:    maildir_update_pop3_uidl
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - maildir_mail_get_special
        - maildir_uidlist_set_ext
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:642,6'
          Dst:             maildir_mail_get_special
        - Src:             'maildir-mail.c:644,6'
          Dst:             strcmp
        - Src:             'maildir-mail.c:650,2'
          Dst:             maildir_uidlist_set_ext
    - functionName:    maildir_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          422
      EdgeCount:       70
      CyclomaticComplexity: 17
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - index_mail_get_special
        - mail_set_critical
        - maildir_mail_get_fname
        - maildir_mail_get_special
        - maildir_mail_stat
        - maildir_save_file_get_path
        - maildir_uidlist_lookup_ext
        - maildir_uidlist_unset_ext
        - p_strdup
        - p_strdup_printf
        - p_strdup_until
        - strchr
        - strrchr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'maildir-mail.c:506,2'
          Branch Sides:    []
      Callsites:
        - Src:             'maildir-mail.c:509,3'
          Dst:             i_panic
        - Src:             'maildir-mail.c:517,7'
          Dst:             maildir_mail_get_fname
        - Src:             'maildir-mail.c:520,10'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:525,6'
          Dst:             p_strdup
        - Src:             'maildir-mail.c:529,4'
          Dst:             mail_set_critical
        - Src:             'maildir-mail.c:532,4'
          Dst:             maildir_uidlist_unset_ext
        - Src:             'maildir-mail.c:537,7'
          Dst:             maildir_mail_get_special
        - Src:             'maildir-mail.c:551,8'
          Dst:             maildir_mail_get_fname
        - Src:             'maildir-mail.c:554,11'
          Dst:             maildir_save_file_get_path
        - Src:             'maildir-mail.c:556,12'
          Dst:             strrchr
        - Src:             'maildir-mail.c:559,9'
          Dst:             strchr
        - Src:             'maildir-mail.c:561,4'
          Dst:             p_strdup
        - Src:             'maildir-mail.c:562,4'
          Dst:             p_strdup_until
        - Src:             'maildir-mail.c:566,10'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:573,11'
          Dst:             maildir_mail_get_special
        - Src:             'maildir-mail.c:576,15'
          Dst:             p_strdup
        - Src:             'maildir-mail.c:580,11'
          Dst:             maildir_uidlist_lookup_ext
        - Src:             'maildir-mail.c:585,15'
          Dst:             p_strdup
        - Src:             'maildir-mail.c:589,7'
          Dst:             maildir_mail_stat
        - Src:             'maildir-mail.c:591,14'
          Dst:             p_strdup_printf
        - Src:             'maildir-mail.c:595,7'
          Dst:             maildir_mail_stat
        - Src:             'maildir-mail.c:598,9'
          Dst:             gnu_dev_major
        - Src:             'maildir-mail.c:598,27'
          Dst:             gnu_dev_minor
        - Src:             'maildir-mail.c:597,14'
          Dst:             p_strdup_printf
        - Src:             'maildir-mail.c:602,10'
          Dst:             index_mail_get_special
    - functionName:    maildir_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_unref
        - index_mail_init_stream
        - mail_set_expunged
        - maildir_mail_fix_corruption
        - maildir_open_mail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:617,2'
          Dst:             maildir_mail_fix_corruption
        - Src:             'maildir-mail.c:619,18'
          Dst:             maildir_open_mail
        - Src:             'maildir-mail.c:622,5'
          Dst:             mail_set_expunged
        - Src:             'maildir-mail.c:628,5'
          Dst:             i_stream_unref
        - Src:             'maildir-mail.c:634,9'
          Dst:             index_mail_init_stream
    - functionName:    maildir_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          266
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - do_stat
        - i_panic
        - index_mail_get_physical_size
        - mail_get_stream
        - mail_set_critical
        - mail_set_expunged
        - maildir_file_do
        - maildir_handle_size_caching
        - maildir_quick_size_lookup
        - maildir_save_file_get_path
        - maildir_uidlist_is_read
        - stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:443,6'
          Dst:             maildir_uidlist_is_read
        - Src:             'maildir-mail.c:446,7'
          Dst:             maildir_quick_size_lookup
        - Src:             'maildir-mail.c:452,7'
          Dst:             index_mail_get_physical_size
        - Src:             'maildir-mail.c:453,4'
          Dst:             i_panic
        - Src:             'maildir-mail.c:454,4'
          Dst:             maildir_handle_size_caching
        - Src:             'maildir-mail.c:457,7'
          Dst:             maildir_quick_size_lookup
        - Src:             'maildir-mail.c:471,7'
          Dst:             mail_get_stream
        - Src:             'maildir-mail.c:475,9'
          Dst:             maildir_file_do
        - Src:             'maildir-mail.c:475,9'
          Dst:             do_stat
        - Src:             'maildir-mail.c:478,5'
          Dst:             mail_set_expunged
        - Src:             'maildir-mail.c:483,10'
          Dst:             maildir_save_file_get_path
        - Src:             'maildir-mail.c:485,7'
          Dst:             stat
        - Src:             'maildir-mail.c:486,4'
          Dst:             mail_set_critical
        - Src:             'maildir-mail.c:492,2'
          Dst:             maildir_handle_size_caching
    - functionName:    maildir_mail_get_virtual_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          204
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_stream_seek
        - index_mail_get_cached_virtual_size
        - mail_get_stream
        - maildir_handle_size_caching
        - maildir_quick_size_lookup
        - maildir_uidlist_is_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:396,6'
          Dst:             maildir_uidlist_is_read
        - Src:             'maildir-mail.c:400,7'
          Dst:             maildir_quick_size_lookup
        - Src:             'maildir-mail.c:406,7'
          Dst:             index_mail_get_cached_virtual_size
        - Src:             'maildir-mail.c:407,4'
          Dst:             i_panic
        - Src:             'maildir-mail.c:408,4'
          Dst:             maildir_handle_size_caching
        - Src:             'maildir-mail.c:411,7'
          Dst:             maildir_quick_size_lookup
        - Src:             'maildir-mail.c:423,6'
          Dst:             mail_get_stream
        - Src:             'maildir-mail.c:425,2'
          Dst:             i_stream_seek
        - Src:             'maildir-mail.c:427,2'
          Dst:             maildir_handle_size_caching
    - functionName:    maildir_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_get_save_date
        - maildir_mail_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:177,6'
          Dst:             index_mail_get_save_date
        - Src:             'maildir-mail.c:180,6'
          Dst:             maildir_mail_stat
    - functionName:    maildir_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_get_received_date
        - maildir_mail_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:161,6'
          Dst:             index_mail_get_received_date
        - Src:             'maildir-mail.c:164,6'
          Dst:             maildir_mail_stat
    - functionName:    maildir_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_close
        - maildir_mail_fix_corruption
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-mail.c:801,2'
          Dst:             maildir_mail_fix_corruption
        - Src:             'maildir-mail.c:802,2'
          Dst:             index_mail_close
    - functionName:    maildir_filename_has_conflict
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:805,6'
          Dst:             strcmp
        - Src:             'maildir-save.c:810,6'
          Dst:             strcmp
    - functionName:    maildir_transaction_fsync_dirs
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - fdatasync_path
        - mailbox_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:669,7'
          Dst:             fdatasync_path
        - Src:             'maildir-save.c:670,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-save.c:676,7'
          Dst:             fdatasync_path
        - Src:             'maildir-save.c:677,4'
          Dst:             mailbox_set_critical
    - functionName:    maildir_file_move
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          143
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_panic
        - mail_storage_set_error
        - mailbox_set_critical
        - rename
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:78,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:79,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:85,13'
          Dst:             t_strconcat
        - Src:             'maildir-save.c:87,3'
          Dst:             t_strconcat
        - Src:             'maildir-save.c:88,3'
          Dst:             t_strconcat
        - Src:             'maildir-save.c:100,6'
          Dst:             rename
        - Src:             'maildir-save.c:103,13'
          Dst:             __errno_location
        - Src:             'maildir-save.c:104,3'
          Dst:             mail_storage_set_error
        - Src:             'maildir-save.c:108,3'
          Dst:             mailbox_set_critical
    - functionName:    maildir_filename_check_conflicts
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          213
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - maildir_filename_generate
        - maildir_filename_get_size
        - maildir_filename_has_conflict
        - maildir_uidlist_get_full_filename
        - maildir_uidlist_refresh
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:825,9'
          Dst:             maildir_uidlist_refresh
        - Src:             'maildir-save.c:829,7'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-save.c:832,7'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-save.c:838,26'
          Dst:             maildir_filename_has_conflict
        - Src:             'maildir-save.c:839,6'
          Dst:             maildir_uidlist_get_full_filename
        - Src:             'maildir-save.c:853,11'
          Dst:             maildir_filename_generate
        - Src:             'maildir-save.c:852,23'
          Dst:             p_strdup
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    maildir_filename_dest_basename_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:862,9'
          Dst:             strcmp
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seq_range_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    maildir_save_set_recent_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          115
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_array_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_sort_i
        - mailbox_recent_flags_set_uid
        - pool_datastack_create
        - seq_range_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:704,10'
          Dst:             array_count_i
        - Src:             'maildir-save.c:708,2'
          Dst:             pool_datastack_create
        - Src:             'maildir-save.c:708,2'
          Dst:             array_create_i
        - Src:             'maildir-save.c:709,2'
          Dst:             array_append_array_i
        - Src:             'maildir-save.c:711,2'
          Dst:             array_sort_i
        - Src:             'maildir-save.c:711,2'
          Dst:             seq_range_cmp
        - Src:             'maildir-save.c:713,9'
          Dst:             array_get_i
        - Src:             'maildir-save.c:716,4'
          Dst:             mailbox_recent_flags_set_uid
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    4
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_save_remove_last_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - index_storage_save_abort_last
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:486,2'
          Dst:             index_storage_save_abort_last
        - Src:             'maildir-save.c:490,2'
          Dst:             i_panic
    - functionName:    maildir_save_finish_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - fstat
        - mail_set_critical
        - stat
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:456,7'
          Dst:             utime
        - Src:             'maildir-save.c:457,4'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:462,7'
          Dst:             fstat
        - Src:             'maildir-save.c:465,4'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:471,7'
          Dst:             stat
        - Src:             'maildir-save.c:474,4'
          Dst:             mail_set_critical
    - functionName:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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-storage/index/maildir/../../../../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:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_get_dest_filename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          189
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
        - maildir_filename_flags_kw_set
        - maildir_filename_flags_set
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:241,14'
          Dst:             t_strdup_printf
        - Src:             'maildir-save.c:246,14'
          Dst:             t_strdup_printf
        - Src:             'maildir-save.c:251,7'
          Dst:             array_is_created_i
        - Src:             'maildir-save.c:251,42'
          Dst:             array_count_i
        - Src:             'maildir-save.c:257,14'
          Dst:             maildir_filename_flags_set
        - Src:             'maildir-save.c:262,2'
          Dst:             array_is_created_i
        - Src:             'maildir-save.c:262,2'
          Dst:             array_count_i
        - Src:             'maildir-save.c:262,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:264,13'
          Dst:             maildir_filename_flags_kw_set
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:    maildir_transaction_save_commit_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_uidlist_unlock
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:1061,3'
          Dst:             maildir_uidlist_unlock
        - Src:             'maildir-save.c:1062,2'
          Dst:             pool_unref
    - functionName:    maildir_save_unlink_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_unlink
        - maildir_mf_get_path
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:654,51'
          Dst:             t_push
        - Src:             'maildir-save.c:655,3'
          Dst:             maildir_mf_get_path
        - Src:             'maildir-save.c:655,3'
          Dst:             i_unlink
        - Src:             'maildir-save.c:656,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:656,4'
          Dst:             i_panic
    - functionName:    maildir_mf_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - maildir_get_dest_filename
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:278,10'
          Dst:             t_strdup_printf
        - Src:             'maildir-save.c:282,8'
          Dst:             maildir_get_dest_filename
        - Src:             'maildir-save.c:284,9'
          Dst:             t_strdup_printf
    - functionName:    maildir_save_sync_uidlist
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          240
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - maildir_get_dest_filename
        - maildir_uidlist_sync_next_uid
        - maildir_uidlist_sync_set_ext
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:924,2'
          Dst:             seq_range_array_iter_init
        - Src:             'maildir-save.c:925,51'
          Dst:             t_push
        - Src:             'maildir-save.c:928,10'
          Dst:             seq_range_array_iter_nth
        - Src:             'maildir-save.c:929,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:931,12'
          Dst:             maildir_get_dest_filename
        - Src:             'maildir-save.c:935,9'
          Dst:             maildir_uidlist_sync_next_uid
        - Src:             'maildir-save.c:937,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:938,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:940,4'
          Dst:             maildir_uidlist_sync_set_ext
        - Src:             'maildir-save.c:944,4'
          Dst:             maildir_uidlist_sync_set_ext
        - Src:             'maildir-save.c:951,5'
          Dst:             t_strdup_printf
        - Src:             'maildir-save.c:949,4'
          Dst:             maildir_uidlist_sync_set_ext
        - Src:             'maildir-save.c:953,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:953,4'
          Dst:             i_panic
        - Src:             'maildir-save.c:954,2'
          Dst:             seq_range_array_iter_nth
        - Src:             'maildir-save.c:954,2'
          Dst:             i_panic
    - functionName:    maildir_save_move_files_to_newcur
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          218
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_sort_i
        - i_memcpy
        - i_panic
        - maildir_file_move
        - maildir_filename_check_conflicts
        - maildir_filename_dest_basename_cmp
        - maildir_get_dest_filename
        - maildir_sync_set_new_msgs_count
        - maildir_transaction_fsync_dirs
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:876,2'
          Dst:             array_create_i
        - Src:             'maildir-save.c:878,3'
          Dst:             array_append_i
        - Src:             'maildir-save.c:879,2'
          Dst:             array_sort_i
        - Src:             'maildir-save.c:879,2'
          Dst:             maildir_filename_dest_basename_cmp
        - Src:             'maildir-save.c:883,2'
          Dst:             i_memcpy
        - Src:             'maildir-save.c:884,3'
          Dst:             t_push
        - Src:             'maildir-save.c:888,5'
          Dst:             maildir_filename_check_conflicts
        - Src:             'maildir-save.c:892,13'
          Dst:             maildir_get_dest_filename
        - Src:             'maildir-save.c:897,10'
          Dst:             maildir_file_move
        - Src:             'maildir-save.c:898,5'
          Dst:             t_pop
        - Src:             'maildir-save.c:898,5'
          Dst:             i_panic
        - Src:             'maildir-save.c:905,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:907,7'
          Dst:             array_count_i
        - Src:             'maildir-save.c:906,3'
          Dst:             maildir_sync_set_new_msgs_count
        - Src:             'maildir-save.c:909,9'
          Dst:             maildir_transaction_fsync_dirs
    - functionName:    maildir_save_rollback_index_changes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mail_cache_transaction_reset
        - mail_index_expunge
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:797,3'
          Dst:             mail_index_expunge
        - Src:             'maildir-save.c:799,2'
          Dst:             mail_cache_transaction_reset
    - functionName:    maildir_transaction_save_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - maildir_save_cancel
        - maildir_save_unlink_files
        - maildir_sync_index_rollback
        - maildir_uidlist_sync_deinit
        - maildir_uidlist_unlock
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:1069,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:1072,3'
          Dst:             maildir_save_cancel
        - Src:             'maildir-save.c:1075,2'
          Dst:             maildir_save_unlink_files
        - Src:             'maildir-save.c:1078,9'
          Dst:             maildir_uidlist_sync_deinit
        - Src:             'maildir-save.c:1080,3'
          Dst:             maildir_sync_index_rollback
        - Src:             'maildir-save.c:1082,3'
          Dst:             maildir_uidlist_unlock
        - Src:             'maildir-save.c:1084,2'
          Dst:             pool_unref
    - functionName:    maildir_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_save_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:646,8'
          Dst:             maildir_save_finish
    - functionName:    maildir_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - index_save_context_free
        - maildir_save_finish_real
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:634,2'
          Dst:             t_push
        - Src:             'maildir-save.c:635,9'
          Dst:             maildir_save_finish_real
        - Src:             'maildir-save.c:636,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:636,4'
          Dst:             i_panic
        - Src:             'maildir-save.c:637,2'
          Dst:             index_save_context_free
    - functionName:    maildir_save_finish_real
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          512
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - close
        - fsync
        - i_stream_unref
        - i_unlink_if_exists
        - index_mail_cache_add
        - index_mail_cache_parse_deinit
        - lseek
        - mail_get_virtual_size
        - mail_set_critical
        - mail_storage_set_error
        - mail_storage_set_error_from_errno
        - maildir_filename_get_size
        - maildir_save_finish_keywords
        - maildir_save_finish_received_date
        - maildir_save_remove_last_filename
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - t_strconcat
        - t_strdup
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:532,9'
          Dst:             t_strconcat
        - Src:             'maildir-save.c:533,6'
          Dst:             o_stream_finish
        - Src:             'maildir-save.c:534,8'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'maildir-save.c:537,5'
          Dst:             o_stream_get_error
        - Src:             'maildir-save.c:535,4'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:545,16'
          Dst:             time_to_uint32_trunc
        - Src:             'maildir-save.c:547,3'
          Dst:             index_mail_cache_add
        - Src:             'maildir-save.c:550,7'
          Dst:             maildir_save_finish_received_date
        - Src:             'maildir-save.c:554,3'
          Dst:             index_mail_cache_parse_deinit
        - Src:             'maildir-save.c:558,2'
          Dst:             i_stream_unref
        - Src:             'maildir-save.c:563,6'
          Dst:             mail_get_virtual_size
        - Src:             'maildir-save.c:568,27'
          Dst:             o_stream_get_error
        - Src:             'maildir-save.c:568,18'
          Dst:             t_strdup
        - Src:             'maildir-save.c:569,2'
          Dst:             o_stream_destroy
        - Src:             'maildir-save.c:571,2'
          Dst:             maildir_save_finish_keywords
        - Src:             'maildir-save.c:575,7'
          Dst:             fsync
        - Src:             'maildir-save.c:576,9'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'maildir-save.c:577,5'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:583,14'
          Dst:             lseek
        - Src:             'maildir-save.c:585,3'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:587,8'
          Dst:             maildir_filename_get_size
        - Src:             'maildir-save.c:601,6'
          Dst:             close
        - Src:             'maildir-save.c:602,8'
          Dst:             mail_storage_set_error_from_errno
        - Src:             'maildir-save.c:603,4'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:612,3'
          Dst:             i_unlink_if_exists
        - Src:             'maildir-save.c:615,4'
          Dst:             mail_storage_set_error
        - Src:             'maildir-save.c:618,4'
          Dst:             mail_set_critical
        - Src:             'maildir-save.c:622,3'
          Dst:             maildir_save_remove_last_filename
    - functionName:    maildir_save_finish_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_copy
        - array_count_i
        - array_create_i
        - mail_index_lookup_keywords
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:503,2'
          Dst:             pool_datastack_create
        - Src:             'maildir-save.c:503,2'
          Dst:             array_create_i
        - Src:             'maildir-save.c:504,2'
          Dst:             mail_index_lookup_keywords
        - Src:             'maildir-save.c:507,6'
          Dst:             array_count_i
        - Src:             'maildir-save.c:509,3'
          Dst:             array_count_i
        - Src:             'maildir-save.c:509,3'
          Dst:             array_create_i
        - Src:             'maildir-save.c:512,7'
          Dst:             array_count_i
        - Src:             'maildir-save.c:511,3'
          Dst:             array_copy
    - functionName:    array_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:357,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:359,28'
          Dst:             malloc_multiply_check
        - Src:             '../../../../src/lib/array.h:360,20'
          Dst:             malloc_multiply_check
        - Src:             '../../../../src/lib/array.h:361,7'
          Dst:             malloc_multiply_check
        - Src:             '../../../../src/lib/array.h:359,2'
          Dst:             buffer_copy
    - functionName:    maildir_save_sync_index
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          251
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - mail_index_append_finish_uids
        - mail_index_update_header
        - maildir_save_set_recent_flags
        - maildir_storage_sync_force
        - maildir_sync_get_keywords_sync_ctx
        - maildir_sync_header_refresh
        - maildir_sync_index
        - maildir_sync_index_begin
        - maildir_uidlist_get_next_uid
        - maildir_uidlist_lock
        - maildir_uidlist_refresh_fast_init
        - seq_range_count
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:730,8'
          Dst:             maildir_uidlist_lock
        - Src:             'maildir-save.c:731,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:733,6'
          Dst:             maildir_sync_header_refresh
        - Src:             'maildir-save.c:735,13'
          Dst:             maildir_uidlist_refresh_fast_init
        - Src:             'maildir-save.c:741,9'
          Dst:             maildir_storage_sync_force
        - Src:             'maildir-save.c:744,6'
          Dst:             maildir_sync_index_begin
        - Src:             'maildir-save.c:747,3'
          Dst:             maildir_sync_get_keywords_sync_ctx
        - Src:             'maildir-save.c:753,6'
          Dst:             maildir_sync_index
        - Src:             'maildir-save.c:757,14'
          Dst:             maildir_uidlist_get_next_uid
        - Src:             'maildir-save.c:758,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:759,2'
          Dst:             mail_index_append_finish_uids
        - Src:             'maildir-save.c:761,2'
          Dst:             seq_range_count
        - Src:             'maildir-save.c:761,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:764,2'
          Dst:             t_push
        - Src:             'maildir-save.c:765,14'
          Dst:             maildir_save_set_recent_flags
        - Src:             'maildir-save.c:766,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:766,4'
          Dst:             i_panic
        - Src:             'maildir-save.c:779,3'
          Dst:             mail_index_update_header
    - functionName:    maildir_transaction_save_commit_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          379
      EdgeCount:       83
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - maildir_keywords_sync_deinit
        - maildir_keywords_sync_init
        - maildir_save_move_files_to_newcur
        - maildir_save_rollback_index_changes
        - maildir_save_sync_index
        - maildir_save_sync_uidlist
        - maildir_save_unlink_files
        - maildir_sync_index_commit
        - maildir_sync_index_rollback
        - maildir_transaction_save_rollback
        - maildir_uidlist_get_uid_validity
        - maildir_uidlist_sync_deinit
        - maildir_uidlist_sync_init
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:964,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:965,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:986,8'
          Dst:             maildir_uidlist_sync_init
        - Src:             'maildir-save.c:990,7'
          Dst:             maildir_save_sync_index
        - Src:             'maildir-save.c:991,4'
          Dst:             maildir_transaction_save_rollback
        - Src:             'maildir-save.c:997,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:1000,3'
          Dst:             maildir_save_rollback_index_changes
        - Src:             'maildir-save.c:1002,3'
          Dst:             maildir_transaction_save_rollback
        - Src:             'maildir-save.c:1006,2'
          Dst:             t_push
        - Src:             'maildir-save.c:1007,9'
          Dst:             maildir_save_move_files_to_newcur
        - Src:             'maildir-save.c:1008,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:1008,4'
          Dst:             i_panic
        - Src:             'maildir-save.c:1012,4'
          Dst:             maildir_save_sync_uidlist
        - Src:             'maildir-save.c:1015,7'
          Dst:             maildir_uidlist_sync_deinit
        - Src:             'maildir-save.c:1021,3'
          Dst:             maildir_uidlist_get_uid_validity
        - Src:             'maildir-save.c:1027,4'
          Dst:             maildir_sync_index_rollback
        - Src:             'maildir-save.c:1029,10'
          Dst:             maildir_sync_index_commit
        - Src:             'maildir-save.c:1034,4'
          Dst:             maildir_keywords_sync_init
        - Src:             'maildir-save.c:1042,3'
          Dst:             maildir_save_unlink_files
        - Src:             'maildir-save.c:1045,4'
          Dst:             maildir_keywords_sync_deinit
        - Src:             'maildir-save.c:1047,3'
          Dst:             maildir_transaction_save_rollback
    - functionName:    maildir_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - index_storage_save_continue
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:437,6'
          Dst:             index_storage_save_continue
    - functionName:    maildir_create_tmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          168
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - mail_storage_set_error
        - mailbox_get_permissions
        - mailbox_set_critical
        - maildir_filename_generate
        - open
        - str_append
        - str_append_c
        - str_c
        - str_len
        - str_truncate
        - t_str_new
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:328,43'
          Dst:             mailbox_get_permissions
        - Src:             'maildir-save.c:335,9'
          Dst:             t_str_new
        - Src:             'maildir-save.c:336,2'
          Dst:             str_append
        - Src:             'maildir-save.c:337,2'
          Dst:             str_append_c
        - Src:             'maildir-save.c:338,15'
          Dst:             str_len
        - Src:             'maildir-save.c:341,15'
          Dst:             maildir_filename_generate
        - Src:             'maildir-save.c:342,3'
          Dst:             str_truncate
        - Src:             'maildir-save.c:343,3'
          Dst:             str_append
        - Src:             'maildir-save.c:349,14'
          Dst:             umask
        - Src:             'maildir-save.c:350,13'
          Dst:             str_c
        - Src:             'maildir-save.c:350,8'
          Dst:             open
        - Src:             'maildir-save.c:352,3'
          Dst:             umask
        - Src:             'maildir-save.c:353,23'
          Dst:             __errno_location
        - Src:             'maildir-save.c:357,7'
          Dst:             __errno_location
        - Src:             'maildir-save.c:358,4'
          Dst:             mail_storage_set_error
        - Src:             'maildir-save.c:362,28'
          Dst:             str_c
        - Src:             'maildir-save.c:361,4'
          Dst:             mailbox_set_critical
        - Src:             'maildir-save.c:365,7'
          Dst:             fchown
        - Src:             'maildir-save.c:366,8'
          Dst:             __errno_location
        - Src:             'maildir-save.c:369,7'
          Dst:             str_c
        - Src:             'maildir-save.c:368,6'
          Dst:             eperm_error_get_chgrp
        - Src:             'maildir-save.c:367,5'
          Dst:             mailbox_set_critical
        - Src:             'maildir-save.c:374,31'
          Dst:             str_c
        - Src:             'maildir-save.c:373,5'
          Dst:             mailbox_set_critical
    - functionName:    maildir_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          186
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_create_crlf
        - i_stream_create_lf
        - maildir_create_tmp
        - maildir_save_add
        - maildir_save_set_dest_basename
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_set_name
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:400,2'
          Dst:             t_push
        - Src:             'maildir-save.c:404,13'
          Dst:             maildir_create_tmp
        - Src:             'maildir-save.c:409,18'
          Dst:             i_stream_create_crlf
        - Src:             'maildir-save.c:411,18'
          Dst:             i_stream_create_lf
        - Src:             'maildir-save.c:412,9'
          Dst:             maildir_save_add
        - Src:             'maildir-save.c:414,5'
          Dst:             maildir_save_set_dest_basename
        - Src:             'maildir-save.c:418,4'
          Dst:             t_pop
        - Src:             'maildir-save.c:418,4'
          Dst:             i_panic
        - Src:             'maildir-save.c:421,23'
          Dst:             o_stream_create_fd_file
        - Src:             'maildir-save.c:422,40'
          Dst:             t_strdup_printf
        - Src:             'maildir-save.c:422,3'
          Dst:             o_stream_set_name
        - Src:             'maildir-save.c:424,3'
          Dst:             o_stream_cork
    - functionName:    maildir_save_add
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          368
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_unref
        - index_copy_cache_fields
        - index_mail_cache_parse_init
        - mail_index_append
        - mail_index_update_flags
        - mail_index_update_keywords
        - mail_index_update_modseq
        - mail_set_seq_saving
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:150,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:163,7'
          Dst:             malloc_multiply_check
        - Src:             'maildir-save.c:163,7'
          Dst:             p_malloc
        - Src:             'maildir-save.c:164,37'
          Dst:             p_strdup
        - Src:             'maildir-save.c:170,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:176,19'
          Dst:             p_strdup
        - Src:             'maildir-save.c:180,2'
          Dst:             mail_index_append
        - Src:             'maildir-save.c:181,2'
          Dst:             mail_index_update_flags
        - Src:             'maildir-save.c:185,3'
          Dst:             mail_index_update_keywords
        - Src:             'maildir-save.c:189,3'
          Dst:             mail_index_update_modseq
        - Src:             'maildir-save.c:195,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:198,2'
          Dst:             mail_set_seq_saving
        - Src:             'maildir-save.c:202,3'
          Dst:             i_panic
        - Src:             'maildir-save.c:203,3'
          Dst:             index_copy_cache_fields
        - Src:             'maildir-save.c:206,11'
          Dst:             index_mail_cache_parse_init
        - Src:             'maildir-save.c:208,3'
          Dst:             i_stream_unref
    - functionName:    maildir_save_set_dest_basename
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:222,22'
          Dst:             p_strdup
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    maildir_save_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          87
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mailbox_get_path
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:123,9'
          Dst:             pool_alloconly_create
        - Src:             'maildir-save.c:124,8'
          Dst:             malloc_multiply_check
        - Src:             'maildir-save.c:124,8'
          Dst:             p_malloc
        - Src:             'maildir-save.c:132,9'
          Dst:             mailbox_get_path
        - Src:             'maildir-save.c:133,16'
          Dst:             p_strconcat
        - Src:             'maildir-save.c:134,16'
          Dst:             p_strconcat
        - Src:             'maildir-save.c:135,16'
          Dst:             p_strconcat
    - functionName:    maildir_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - maildir_save_transaction_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:385,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:388,17'
          Dst:             maildir_save_transaction_init
    - functionName:    maildir_save_file_get_path
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - maildir_mf_get_path
        - maildir_save_get_mf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:319,32'
          Dst:             maildir_save_get_mf
        - Src:             'maildir-save.c:321,9'
          Dst:             maildir_mf_get_path
    - functionName:    maildir_save_get_mf
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:294,2'
          Dst:             i_panic
        - Src:             'maildir-save.c:300,3'
          Dst:             i_panic
    - functionName:    maildir_save_file_get_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - maildir_save_get_mf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'maildir-save.c:309,32'
          Dst:             maildir_save_get_mf
    - functionName:    maildir_save_set_sizes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/maildir/maildir-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mbox_file_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          158
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - dec2str
        - i_panic
        - istream_raw_mbox_seek
        - mail_storage_set_error
        - mailbox_set_critical
        - mbox_file_lookup_offset
        - mbox_sync_parse_match_mail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:170,8'
          Dst:             mbox_file_lookup_offset
        - Src:             'mbox-file.c:177,6'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-file.c:180,4'
          Dst:             mail_storage_set_error
        - Src:             'mbox-file.c:191,4'
          Dst:             dec2str
        - Src:             'mbox-file.c:189,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-file.c:199,8'
          Dst:             mbox_sync_parse_match_mail
        - Src:             'mbox-file.c:202,9'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-file.c:203,3'
          Dst:             i_panic
    - functionName:    mbox_file_lookup_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mail_index_lookup_ext
        - mailbox_set_critical
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:148,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-file.c:153,3'
          Dst:             mailbox_set_critical
    - functionName:    mbox_file_fix_atime
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          137
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - fstat
        - mailbox_get_path
        - mbox_is_backend_readonly
        - mbox_set_syscall_error
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:105,30'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-file.c:109,7'
          Dst:             fstat
        - Src:             'mbox-file.c:110,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-file.c:117,14'
          Dst:             mailbox_get_path
        - Src:             'mbox-file.c:117,8'
          Dst:             utime
        - Src:             'mbox-file.c:118,9'
          Dst:             __errno_location
        - Src:             'mbox-file.c:118,9'
          Dst:             __errno_location
        - Src:             'mbox-file.c:118,9'
          Dst:             __errno_location
        - Src:             'mbox-file.c:119,5'
          Dst:             mbox_set_syscall_error
    - functionName:    mbox_file_open_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_create_fd
        - i_stream_create_from_data
        - i_stream_create_raw_mbox
        - i_stream_set_init_buffer_size
        - i_stream_set_name
        - istream_raw_mbox_set_locked
        - mailbox_get_path
        - mbox_file_open
        - mbox_is_backend_readonly
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:71,3'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-file.c:71,3'
          Dst:             i_panic
        - Src:             'mbox-file.c:74,8'
          Dst:             mbox_file_open
        - Src:             'mbox-file.c:80,5'
          Dst:             i_stream_create_from_data
        - Src:             'mbox-file.c:83,5'
          Dst:             i_stream_create_fd
        - Src:             'mbox-file.c:85,4'
          Dst:             i_stream_set_init_buffer_size
        - Src:             'mbox-file.c:89,7'
          Dst:             mailbox_get_path
        - Src:             'mbox-file.c:88,3'
          Dst:             i_stream_set_name
        - Src:             'mbox-file.c:92,22'
          Dst:             i_stream_create_raw_mbox
        - Src:             'mbox-file.c:94,3'
          Dst:             istream_raw_mbox_set_locked
    - functionName:    mbox_file_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          188
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fstat
        - i_close_fd_path
        - i_panic
        - mailbox_get_path
        - mbox_is_backend_readonly
        - mbox_set_syscall_error
        - open
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:20,2'
          Dst:             i_panic
        - Src:             'mbox-file.c:24,3'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-file.c:24,3'
          Dst:             i_panic
        - Src:             'mbox-file.c:28,12'
          Dst:             mailbox_get_path
        - Src:             'mbox-file.c:29,5'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-file.c:28,7'
          Dst:             open
        - Src:             'mbox-file.c:30,18'
          Dst:             __errno_location
        - Src:             'mbox-file.c:30,18'
          Dst:             __errno_location
        - Src:             'mbox-file.c:30,18'
          Dst:             __errno_location
        - Src:             'mbox-file.c:32,13'
          Dst:             mailbox_get_path
        - Src:             'mbox-file.c:32,8'
          Dst:             open
        - Src:             'mbox-file.c:36,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-file.c:40,6'
          Dst:             fstat
        - Src:             'mbox-file.c:41,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-file.c:42,3'
          Dst:             i_close_fd_path
    - functionName:    mbox_file_close_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_destroy
        - i_stream_seek
        - mbox_file_fix_atime
        - mbox_is_backend_readonly
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:126,2'
          Dst:             mbox_file_fix_atime
        - Src:             'mbox-file.c:128,2'
          Dst:             i_stream_destroy
        - Src:             'mbox-file.c:133,4'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-file.c:133,4'
          Dst:             i_panic
        - Src:             'mbox-file.c:134,4'
          Dst:             i_stream_seek
        - Src:             'mbox-file.c:136,4'
          Dst:             i_stream_destroy
    - functionName:    mbox_file_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - mbox_file_close_stream
        - mbox_set_syscall_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-file.c:55,2'
          Dst:             mbox_file_close_stream
        - Src:             'mbox-file.c:58,7'
          Dst:             close
        - Src:             'mbox-file.c:59,4'
          Dst:             mbox_set_syscall_error
    - functionName:    mbox_file_open_latest
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          156
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - gnu_dev_major
        - gnu_dev_minor
        - mailbox_get_path
        - mailbox_set_deleted
        - mbox_file_close
        - mbox_file_open
        - mbox_set_syscall_error
        - nfs_safe_stat
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:175,21'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:175,7'
          Dst:             nfs_safe_stat
        - Src:             'mbox-lock.c:176,8'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:177,5'
          Dst:             mailbox_set_deleted
        - Src:             'mbox-lock.c:179,5'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:184,8'
          Dst:             gnu_dev_major
        - Src:             'mbox-lock.c:184,8'
          Dst:             gnu_dev_major
        - Src:             'mbox-lock.c:184,8'
          Dst:             gnu_dev_minor
        - Src:             'mbox-lock.c:184,8'
          Dst:             gnu_dev_minor
        - Src:             'mbox-lock.c:185,4'
          Dst:             mbox_file_close
        - Src:             'mbox-lock.c:189,7'
          Dst:             mbox_file_open
    - functionName:    mbox_dotlock_log_eacces_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          168
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dec2str
        - eacces_error_get_creating
        - i_getgrgid
        - mailbox_list_get_root_forced
        - mailbox_set_critical
        - stat
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:344,19'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:346,11'
          Dst:             eacces_error_get_creating
        - Src:             'mbox-lock.c:347,8'
          Dst:             strrchr
        - Src:             'mbox-lock.c:348,28'
          Dst:             t_strdup_until
        - Src:             'mbox-lock.c:353,30'
          Dst:             strcmp
        - Src:             'mbox-lock.c:354,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:357,9'
          Dst:             mailbox_list_get_root_forced
        - Src:             'mbox-lock.c:359,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:362,13'
          Dst:             stat
        - Src:             'mbox-lock.c:365,7'
          Dst:             i_getgrgid
        - Src:             'mbox-lock.c:366,11'
          Dst:             dec2str
        - Src:             'mbox-lock.c:369,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:372,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:375,2'
          Dst:             __errno_location
    - functionName:    dotlock_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          236
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - index_storage_lock_notify
        - mbox_lock_list
        - restrict_access_drop_priv_gid
        - restrict_access_use_priv_gid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:204,3'
          Dst:             restrict_access_drop_priv_gid
        - Src:             'mbox-lock.c:223,8'
          Dst:             mbox_lock_list
        - Src:             'mbox-lock.c:229,4'
          Dst:             mbox_lock_list
        - Src:             'mbox-lock.c:234,2'
          Dst:             index_storage_lock_notify
        - Src:             'mbox-lock.c:239,7'
          Dst:             restrict_access_use_priv_gid
    - functionName:    mbox_lock_list
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          161
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mbox_lock_dotlock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mbox_lock_dotlock_int
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:452,9'
          Dst:             mbox_lock_dotlock_int
    - functionName:    mbox_lock_dotlock_try
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mbox_lock_dotlock_int
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:458,9'
          Dst:             mbox_lock_dotlock_int
    - functionName:    mbox_lock_fcntl
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          266
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - alarm
        - fcntl
        - index_storage_lock_notify
        - mailbox_get_path
        - mailbox_set_critical
        - mbox_file_open_latest
        - mbox_set_syscall_error
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:596,6'
          Dst:             mbox_file_open_latest
        - Src:             'mbox-lock.c:614,9'
          Dst:             time
        - Src:             'mbox-lock.c:616,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:618,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:621,9'
          Dst:             fcntl
        - Src:             'mbox-lock.c:622,7'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:623,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:623,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:623,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:623,29'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:628,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:629,8'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:630,5'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:636,5'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:633,4'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:640,9'
          Dst:             time
        - Src:             'mbox-lock.c:642,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:651,3'
          Dst:             alarm
        - Src:             'mbox-lock.c:653,3'
          Dst:             index_storage_lock_notify
        - Src:             'mbox-lock.c:658,2'
          Dst:             alarm
    - functionName:    mbox_lock_flock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          221
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - alarm
        - flock
        - index_storage_lock_notify
        - mbox_file_open_latest
        - mbox_set_syscall_error
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:468,6'
          Dst:             mbox_file_open_latest
        - Src:             'mbox-lock.c:486,9'
          Dst:             time
        - Src:             'mbox-lock.c:488,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:490,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:493,9'
          Dst:             flock
        - Src:             'mbox-lock.c:494,7'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:495,8'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:499,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:500,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:504,9'
          Dst:             time
        - Src:             'mbox-lock.c:506,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:515,3'
          Dst:             alarm
        - Src:             'mbox-lock.c:517,3'
          Dst:             index_storage_lock_notify
        - Src:             'mbox-lock.c:522,2'
          Dst:             alarm
    - functionName:    mbox_lock_lockf
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          237
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - alarm
        - index_storage_lock_notify
        - lockf
        - mbox_file_open_latest
        - mbox_set_syscall_error
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:533,6'
          Dst:             mbox_file_open_latest
        - Src:             'mbox-lock.c:546,9'
          Dst:             time
        - Src:             'mbox-lock.c:548,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:550,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:554,9'
          Dst:             lockf
        - Src:             'mbox-lock.c:555,7'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:556,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:556,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:556,9'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:556,29'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:561,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:562,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:566,9'
          Dst:             time
        - Src:             'mbox-lock.c:568,4'
          Dst:             alarm
        - Src:             'mbox-lock.c:577,3'
          Dst:             alarm
        - Src:             'mbox-lock.c:579,3'
          Dst:             index_storage_lock_notify
        - Src:             'mbox-lock.c:584,2'
          Dst:             alarm
    - functionName:    alarm
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lockf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flock
      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:    mbox_lock_dotlock_int
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          384
      EdgeCount:       83
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - file_dotlock_create
        - file_dotlock_delete
        - mail_storage_get_lock_timeout
        - mail_storage_set_error
        - mailbox_get_path
        - mbox_dotlock_log_eacces_error
        - mbox_dotlock_privileged_op
        - mbox_file_open_latest
        - mbox_set_syscall_error
        - restrict_access_have_priv_gid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:390,8'
          Dst:             file_dotlock_delete
        - Src:             'mbox-lock.c:391,5'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:396,4'
          Dst:             mbox_dotlock_privileged_op
        - Src:             'mbox-lock.c:412,16'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'mbox-lock.c:418,34'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:418,8'
          Dst:             file_dotlock_create
        - Src:             'mbox-lock.c:422,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:422,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:422,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:422,33'
          Dst:             restrict_access_have_priv_gid
        - Src:             'mbox-lock.c:425,9'
          Dst:             mbox_dotlock_privileged_op
        - Src:             'mbox-lock.c:427,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:427,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:427,13'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:428,39'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:428,3'
          Dst:             mbox_dotlock_log_eacces_error
        - Src:             'mbox-lock.c:430,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:433,8'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:433,8'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:433,27'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:433,27'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:433,27'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:438,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-lock.c:444,6'
          Dst:             mbox_file_open_latest
    - functionName:    mbox_dotlock_privileged_op
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          272
      EdgeCount:       59
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - chdir
        - eacces_error_get_creating
        - fchdir
        - file_dotlock_create
        - file_dotlock_delete
        - file_dotlock_touch
        - i_close_fd_path
        - i_faccessat2
        - mailbox_get_path
        - mailbox_set_critical
        - mbox_set_syscall_error
        - open
        - restrict_access_drop_priv_gid
        - restrict_access_use_priv_gid
        - strrchr
        - t_strdup_until
      functionUses:    3
      BranchProfiles:
        - Branch String:   'mbox-lock.c:298,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mbox-lock.c:255,16'
          Dst:             open
        - Src:             'mbox-lock.c:257,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:269,13'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:270,10'
          Dst:             strrchr
        - Src:             'mbox-lock.c:275,9'
          Dst:             t_strdup_until
        - Src:             'mbox-lock.c:276,7'
          Dst:             chdir
        - Src:             'mbox-lock.c:277,4'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:279,4'
          Dst:             i_close_fd_path
        - Src:             'mbox-lock.c:285,7'
          Dst:             i_faccessat2
        - Src:             'mbox-lock.c:286,4'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:288,4'
          Dst:             i_close_fd_path
        - Src:             'mbox-lock.c:293,6'
          Dst:             restrict_access_use_priv_gid
        - Src:             'mbox-lock.c:294,3'
          Dst:             i_close_fd_path
        - Src:             'mbox-lock.c:301,9'
          Dst:             file_dotlock_create
        - Src:             'mbox-lock.c:304,23'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:304,23'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:304,23'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:306,5'
          Dst:             eacces_error_get_creating
        - Src:             'mbox-lock.c:308,4'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:310,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:315,9'
          Dst:             file_dotlock_delete
        - Src:             'mbox-lock.c:317,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:321,9'
          Dst:             file_dotlock_touch
        - Src:             'mbox-lock.c:323,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-lock.c:327,15'
          Dst:             __errno_location
        - Src:             'mbox-lock.c:328,2'
          Dst:             restrict_access_drop_priv_gid
        - Src:             'mbox-lock.c:330,6'
          Dst:             fchdir
        - Src:             'mbox-lock.c:331,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-lock.c:333,2'
          Dst:             i_close_fd_path
        - Src:             'mbox-lock.c:334,2'
          Dst:             __errno_location
    - functionName:    fchdir
      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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    mbox_read_lock_methods
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          158
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - i_fatal
        - settings_boollist_get
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:98,14'
          Dst:             settings_boollist_get
        - Src:             'mbox-lock.c:100,8'
          Dst:             strcasecmp
        - Src:             'mbox-lock.c:106,4'
          Dst:             i_fatal
        - Src:             'mbox-lock.c:108,4'
          Dst:             i_fatal
        - Src:             'mbox-lock.c:114,5'
          Dst:             i_fatal
    - functionName:    mbox_init_lock_settings
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          135
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_fatal
        - i_memcpy
        - malloc_multiply_check
        - mbox_read_lock_methods
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:129,2'
          Dst:             mbox_read_lock_methods
        - Src:             'mbox-lock.c:131,2'
          Dst:             mbox_read_lock_methods
        - Src:             'mbox-lock.c:143,3'
          Dst:             i_fatal
        - Src:             'mbox-lock.c:149,24'
          Dst:             malloc_multiply_check
        - Src:             'mbox-lock.c:149,24'
          Dst:             p_malloc
        - Src:             'mbox-lock.c:151,2'
          Dst:             i_memcpy
        - Src:             'mbox-lock.c:154,25'
          Dst:             malloc_multiply_check
        - Src:             'mbox-lock.c:154,25'
          Dst:             p_malloc
        - Src:             'mbox-lock.c:156,2'
          Dst:             i_memcpy
    - functionName:    mbox_dotlock_touch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_touch
        - mbox_dotlock_privileged_op
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:890,9'
          Dst:             file_dotlock_touch
        - Src:             'mbox-lock.c:892,3'
          Dst:             mbox_dotlock_privileged_op
    - functionName:    mbox_get_cur_lock_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 881
      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:    mbox_unlock_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mbox_lock_list
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:827,6'
          Dst:             mbox_lock_list
    - functionName:    mbox_unlock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          196
      EdgeCount:       44
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - istream_raw_mbox_set_unlocked
        - mbox_unlock_files
        - mbox_update_locking
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:841,2'
          Dst:             i_panic
        - Src:             'mbox-lock.c:845,3'
          Dst:             i_panic
        - Src:             'mbox-lock.c:850,8'
          Dst:             mbox_update_locking
        - Src:             'mbox-lock.c:857,3'
          Dst:             i_panic
        - Src:             'mbox-lock.c:867,3'
          Dst:             istream_raw_mbox_set_unlocked
        - Src:             'mbox-lock.c:875,9'
          Dst:             mbox_unlock_files
    - functionName:    mbox_update_locking
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          323
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - index_storage_lock_notify_reset
        - mail_storage_get_lock_timeout
        - mail_storage_set_error
        - mbox_init_lock_settings
        - mbox_is_backend_readonly
        - mbox_lock_list
        - mbox_unlock_files
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:703,2'
          Dst:             index_storage_lock_notify_reset
        - Src:             'mbox-lock.c:706,3'
          Dst:             mbox_init_lock_settings
        - Src:             'mbox-lock.c:710,3'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-lock.c:710,3'
          Dst:             i_panic
        - Src:             'mbox-lock.c:715,18'
          Dst:             time
        - Src:             'mbox-lock.c:716,3'
          Dst:             mail_storage_get_lock_timeout
        - Src:             'mbox-lock.c:738,8'
          Dst:             mbox_lock_list
        - Src:             'mbox-lock.c:741,4'
          Dst:             mbox_unlock_files
        - Src:             'mbox-lock.c:743,4'
          Dst:             mail_storage_set_error
        - Src:             'mbox-lock.c:764,3'
          Dst:             mbox_lock_list
    - functionName:    mbox_lock
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          245
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - istream_raw_mbox_set_locked
        - mailbox_get_path
        - mbox_update_locking
        - nfs_flush_attr_cache_fd_locked
        - nfs_flush_attr_cache_unlocked
        - nfs_flush_read_cache_locked
        - nfs_flush_read_cache_unlocked
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-lock.c:775,21'
          Dst:             mailbox_get_path
        - Src:             'mbox-lock.c:790,2'
          Dst:             i_panic
        - Src:             'mbox-lock.c:791,2'
          Dst:             i_panic
        - Src:             'mbox-lock.c:794,9'
          Dst:             mbox_update_locking
        - Src:             'mbox-lock.c:800,5'
          Dst:             nfs_flush_attr_cache_fd_locked
        - Src:             'mbox-lock.c:801,5'
          Dst:             nfs_flush_read_cache_locked
        - Src:             'mbox-lock.c:803,5'
          Dst:             nfs_flush_attr_cache_unlocked
        - Src:             'mbox-lock.c:804,5'
          Dst:             nfs_flush_read_cache_unlocked
        - Src:             'mbox-lock.c:819,3'
          Dst:             istream_raw_mbox_set_locked
    - functionName:    mbox_mail_get_md5_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          119
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - binary_to_hex
        - mail_index_is_expunged
        - mail_index_lookup_ext
        - mail_set_expunged
        - memcmp
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:160,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-mail.c:162,26'
          Dst:             memcmp
        - Src:             'mbox-mail.c:164,9'
          Dst:             binary_to_hex
        - Src:             'mbox-mail.c:163,21'
          Dst:             p_strdup
        - Src:             'mbox-mail.c:167,13'
          Dst:             mail_index_is_expunged
        - Src:             'mbox-mail.c:168,3'
          Dst:             mail_set_expunged
    - functionName:    mbox_mail_init_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - e_warning
        - i_stream_create_header_filter
        - i_stream_create_limit
        - i_stream_seek
        - i_stream_unref
        - istream_raw_mbox_get_header_offset
        - istream_raw_mbox_set_next_offset
        - mail_event
        - mail_set_critical
        - mbox_mail_get_next_offset
        - mbox_mail_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:333,6'
          Dst:             mbox_mail_seek
        - Src:             'mbox-mail.c:336,8'
          Dst:             mbox_mail_get_next_offset
        - Src:             'mbox-mail.c:338,7'
          Dst:             mbox_mail_seek
        - Src:             'mbox-mail.c:340,9'
          Dst:             mbox_mail_get_next_offset
        - Src:             'mbox-mail.c:342,4'
          Dst:             mail_event
        - Src:             'mbox-mail.c:342,4'
          Dst:             e_warning
        - Src:             'mbox-mail.c:347,6'
          Dst:             istream_raw_mbox_get_header_offset
        - Src:             'mbox-mail.c:348,3'
          Dst:             mail_set_critical
        - Src:             'mbox-mail.c:352,2'
          Dst:             i_stream_seek
        - Src:             'mbox-mail.c:355,3'
          Dst:             istream_raw_mbox_set_next_offset
        - Src:             'mbox-mail.c:357,15'
          Dst:             i_stream_create_limit
        - Src:             'mbox-mail.c:359,3'
          Dst:             i_stream_create_header_filter
        - Src:             'mbox-mail.c:363,2'
          Dst:             i_stream_unref
    - functionName:    mbox_mail_seek
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          327
      EdgeCount:       76
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - i_unreached
        - istream_raw_mbox_is_corrupted
        - mail_index_refresh
        - mail_set_critical
        - mail_set_expunged
        - mail_stream_access_start
        - mailbox_set_index_error
        - mbox_file_open_stream
        - mbox_file_seek
        - mbox_get_cur_lock_id
        - mbox_lock
        - mbox_prepare_resync
        - mbox_sync
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:44,7'
          Dst:             mail_stream_access_start
        - Src:             'mbox-mail.c:48,6'
          Dst:             istream_raw_mbox_is_corrupted
        - Src:             'mbox-mail.c:56,4'
          Dst:             mbox_prepare_resync
        - Src:             'mbox-mail.c:59,4'
          Dst:             i_panic
        - Src:             'mbox-mail.c:61,8'
          Dst:             mbox_sync
        - Src:             'mbox-mail.c:63,22'
          Dst:             mbox_get_cur_lock_id
        - Src:             'mbox-mail.c:64,4'
          Dst:             i_panic
        - Src:             'mbox-mail.c:68,8'
          Dst:             mail_index_refresh
        - Src:             'mbox-mail.c:69,5'
          Dst:             mailbox_set_index_error
        - Src:             'mbox-mail.c:73,4'
          Dst:             i_panic
        - Src:             'mbox-mail.c:78,8'
          Dst:             mbox_lock
        - Src:             'mbox-mail.c:80,5'
          Dst:             i_unreached
        - Src:             'mbox-mail.c:83,7'
          Dst:             mbox_file_open_stream
        - Src:             'mbox-mail.c:86,9'
          Dst:             mbox_file_seek
        - Src:             'mbox-mail.c:94,5'
          Dst:             mail_set_expunged
        - Src:             'mbox-mail.c:102,3'
          Dst:             mail_set_critical
    - functionName:    mbox_mail_get_next_offset
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          183
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - mail_index_get_header
        - mail_index_lookup_seq
        - mail_index_view_close
        - mail_index_view_open
        - mbox_file_lookup_offset
        - mbox_sync_header_refresh
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:245,8'
          Dst:             mail_index_get_header
        - Src:             'mbox-mail.c:255,2'
          Dst:             i_panic
        - Src:             'mbox-mail.c:256,6'
          Dst:             mbox_sync_header_refresh
        - Src:             'mbox-mail.c:259,9'
          Dst:             mail_index_view_open
        - Src:             'mbox-mail.c:260,8'
          Dst:             mail_index_get_header
        - Src:             'mbox-mail.c:261,7'
          Dst:             mail_index_lookup_seq
        - Src:             'mbox-mail.c:262,3'
          Dst:             i_panic
        - Src:             'mbox-mail.c:265,7'
          Dst:             mbox_file_lookup_offset
        - Src:             'mbox-mail.c:278,2'
          Dst:             mail_index_view_close
    - functionName:    mbox_prepare_resync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mbox_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:27,3'
          Dst:             mbox_unlock
        - Src:             'mbox-mail.c:28,3'
          Dst:             i_panic
    - functionName:    mbox_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          198
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - index_mail_get_special
        - istream_raw_mbox_get_sender
        - istream_raw_mbox_get_start_offset
        - istream_raw_mbox_seek
        - mbox_mail_get_md5_header
        - mbox_mail_seek
        - mbox_sync
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mbox-mail.c:186,2'
          Branch Sides:    []
      Callsites:
        - Src:             'mbox-mail.c:188,7'
          Dst:             mbox_mail_seek
        - Src:             'mbox-mail.c:191,14'
          Dst:             istream_raw_mbox_get_sender
        - Src:             'mbox-mail.c:195,14'
          Dst:             mbox_mail_get_md5_header
        - Src:             'mbox-mail.c:206,13'
          Dst:             istream_raw_mbox_get_start_offset
        - Src:             'mbox-mail.c:210,7'
          Dst:             mbox_sync
        - Src:             'mbox-mail.c:214,8'
          Dst:             istream_raw_mbox_seek
        - Src:             'mbox-mail.c:216,5'
          Dst:             e_error
        - Src:             'mbox-mail.c:221,14'
          Dst:             mbox_mail_get_md5_header
        - Src:             'mbox-mail.c:222,4'
          Dst:             e_error
        - Src:             'mbox-mail.c:230,9'
          Dst:             index_mail_get_special
    - functionName:    mbox_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - index_mail_init_stream
        - mbox_mail_init_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:375,7'
          Dst:             mbox_mail_init_stream
        - Src:             'mbox-mail.c:379,9'
          Dst:             index_mail_init_stream
    - functionName:    mbox_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          147
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_seek
        - index_mail_get_physical_size
        - istream_raw_mbox_get_body_offset
        - istream_raw_mbox_get_body_size
        - mail_get_stream
        - mail_set_critical
        - mbox_mail_get_next_offset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:291,6'
          Dst:             index_mail_get_physical_size
        - Src:             'mbox-mail.c:296,6'
          Dst:             mail_get_stream
        - Src:             'mbox-mail.c:300,6'
          Dst:             istream_raw_mbox_get_body_offset
        - Src:             'mbox-mail.c:301,3'
          Dst:             mail_set_critical
        - Src:             'mbox-mail.c:307,6'
          Dst:             mbox_mail_get_next_offset
        - Src:             'mbox-mail.c:313,6'
          Dst:             istream_raw_mbox_get_body_size
        - Src:             'mbox-mail.c:315,3'
          Dst:             mail_set_critical
        - Src:             'mbox-mail.c:322,2'
          Dst:             i_stream_seek
    - functionName:    mbox_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_get_save_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:135,6'
          Dst:             index_mail_get_save_date
    - functionName:    mbox_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - index_mail_get_received_date
        - istream_raw_mbox_get_received_time
        - mbox_mail_seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:113,6'
          Dst:             index_mail_get_received_date
        - Src:             'mbox-mail.c:116,6'
          Dst:             mbox_mail_seek
        - Src:             'mbox-mail.c:119,3'
          Dst:             istream_raw_mbox_get_received_time
    - functionName:    mbox_mail_set_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_set_uid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:395,8'
          Dst:             index_mail_set_uid
    - functionName:    mbox_mail_set_seq
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_set_seq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-mail.c:386,2'
          Dst:             index_mail_set_seq
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_md5_all_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-all.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - md5_final
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-all.c:31,2'
          Dst:             md5_final
        - Src:             'mbox-md5-all.c:32,2'
          Dst:             p_free_internal
    - functionName:    mbox_md5_all_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-all.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-all.c:25,2'
          Dst:             md5_update
    - functionName:    mbox_md5_all_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-all.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - md5_init
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-all.c:17,8'
          Dst:             malloc_multiply_check
        - Src:             'mbox-md5-all.c:17,8'
          Dst:             p_malloc
        - Src:             'mbox-md5-all.c:18,2'
          Dst:             md5_init
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    parse_x_delivery_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:66,2'
          Dst:             md5_update
    - functionName:    parse_received
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:53,3'
          Dst:             md5_update
    - functionName:    parse_message_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:43,3'
          Dst:             md5_update
    - functionName:    parse_delivered_to
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:33,2'
          Dst:             md5_update
    - functionName:    parse_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:25,3'
          Dst:             md5_update
    - functionName:    bsearch_header_func_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:84,9'
          Dst:             strcasecmp
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_md5_apop3d_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - md5_final
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:111,2'
          Dst:             md5_final
        - Src:             'mbox-md5-apop3d.c:112,2'
          Dst:             p_free_internal
    - functionName:    mbox_md5_apop3d_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - bsearch_header_func_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:101,9'
          Dst:             bsearch
        - Src:             'mbox-md5-apop3d.c:101,9'
          Dst:             bsearch_header_func_cmp
    - functionName:    mbox_md5_apop3d_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-md5-apop3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - md5_init
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-md5-apop3d.c:91,8'
          Dst:             malloc_multiply_check
        - Src:             'mbox-md5-apop3d.c:91,8'
          Dst:             p_malloc
        - Src:             'mbox-md5-apop3d.c:92,2'
          Dst:             md5_init
    - functionName:    lseek_stream_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ostream_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:73,2'
          Dst:             ostream_error
    - functionName:    ostream_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mbox_ostream_set_syscall_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:62,2'
          Dst:             mbox_ostream_set_syscall_error
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    mbox_save_x_delivery_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode
        - buffer_append
        - buffer_append_space_unsafe
        - buffer_create_dynamic
        - i_strdup
        - md5_get_digest
        - pool_datastack_create
        - random_fill
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:360,8'
          Dst:             pool_datastack_create
        - Src:             'mbox-save.c:360,8'
          Dst:             buffer_create_dynamic
        - Src:             'mbox-save.c:361,2'
          Dst:             buffer_append
        - Src:             'mbox-save.c:362,2'
          Dst:             buffer_append
        - Src:             'mbox-save.c:365,12'
          Dst:             buffer_append_space_unsafe
        - Src:             'mbox-save.c:366,2'
          Dst:             random_fill
        - Src:             'mbox-save.c:368,2'
          Dst:             md5_get_digest
        - Src:             'mbox-save.c:370,8'
          Dst:             t_str_new
        - Src:             'mbox-save.c:371,2'
          Dst:             str_append
        - Src:             'mbox-save.c:372,2'
          Dst:             base64_encode
        - Src:             'mbox-save.c:373,2'
          Dst:             str_append_c
        - Src:             'mbox-save.c:375,39'
          Dst:             str_c
        - Src:             'mbox-save.c:375,30'
          Dst:             i_strdup
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    save_header_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          93
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - str_begins_with
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:340,7'
          Dst:             strncmp
        - Src:             'mbox-save.c:340,7'
          Dst:             str_begins_with
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    status_flags_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:234,4'
          Dst:             str_append_c
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_seek_to_end
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          138
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - fstat
        - lseek
        - mbox_set_syscall_error
        - read
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:88,6'
          Dst:             fstat
        - Src:             'mbox-save.c:89,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:99,6'
          Dst:             lseek
        - Src:             'mbox-save.c:100,17'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:104,6'
          Dst:             read
        - Src:             'mbox-save.c:105,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:110,7'
          Dst:             write_full
        - Src:             'mbox-save.c:111,4'
          Dst:             mbox_set_syscall_error
    - functionName:    mbox_save_init_sync
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          62
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mail_index_get_header
        - mail_index_refresh
        - mail_index_view_close
        - mail_index_view_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:215,2'
          Dst:             mail_index_refresh
        - Src:             'mbox-save.c:216,9'
          Dst:             mail_index_view_open
        - Src:             'mbox-save.c:217,8'
          Dst:             mail_index_get_header
        - Src:             'mbox-save.c:223,2'
          Dst:             mail_index_view_close
    - functionName:    mbox_transaction_save_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - mbox_save_cancel
        - mbox_save_truncate
        - mbox_transaction_save_deinit
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:829,3'
          Dst:             mbox_save_cancel
        - Src:             'mbox-save.c:831,2'
          Dst:             mbox_save_truncate
        - Src:             'mbox-save.c:832,2'
          Dst:             mbox_transaction_save_deinit
        - Src:             'mbox-save.c:833,2'
          Dst:             p_free_internal
    - functionName:    mbox_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mbox_save_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:715,8'
          Dst:             mbox_save_finish
    - functionName:    mbox_save_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - ftruncate
        - i_panic
        - mbox_set_syscall_error
        - o_stream_flush
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:729,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:734,9'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:736,6'
          Dst:             ftruncate
        - Src:             'mbox-save.c:737,3'
          Dst:             mbox_set_syscall_error
    - functionName:    mbox_transaction_save_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_destroy
        - str_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:720,2'
          Dst:             o_stream_destroy
        - Src:             'mbox-save.c:721,2'
          Dst:             str_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          312
      EdgeCount:       66
      CyclomaticComplexity: 15
      functionsReached:
        - ftruncate
        - i_panic
        - i_stream_destroy
        - index_mail_cache_parse_deinit
        - index_save_context_free
        - index_storage_save_abort_last
        - mbox_append_lf
        - mbox_save_finish_headers
        - mbox_set_syscall_error
        - mbox_write_content_length
        - o_stream_flush
        - o_stream_seek
        - t_pop
        - t_push
        - write_stream_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:669,9'
          Dst:             mbox_save_finish_headers
        - Src:             'mbox-save.c:673,7'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:674,4'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:679,3'
          Dst:             i_panic
        - Src:             'mbox-save.c:680,3'
          Dst:             t_push
        - Src:             'mbox-save.c:681,8'
          Dst:             mbox_write_content_length
        - Src:             'mbox-save.c:682,8'
          Dst:             mbox_append_lf
        - Src:             'mbox-save.c:684,5'
          Dst:             t_pop
        - Src:             'mbox-save.c:684,5'
          Dst:             i_panic
        - Src:             'mbox-save.c:687,2'
          Dst:             index_mail_cache_parse_deinit
        - Src:             'mbox-save.c:691,3'
          Dst:             i_stream_destroy
        - Src:             'mbox-save.c:695,3'
          Dst:             i_panic
        - Src:             'mbox-save.c:696,9'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:697,7'
          Dst:             ftruncate
        - Src:             'mbox-save.c:698,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:699,9'
          Dst:             o_stream_seek
        - Src:             'mbox-save.c:704,3'
          Dst:             index_storage_save_abort_last
        - Src:             'mbox-save.c:706,2'
          Dst:             index_save_context_free
    - functionName:    mbox_save_finish_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - o_stream_send
        - str_data
        - str_len
        - write_stream_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:560,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:564,33'
          Dst:             str_data
        - Src:             'mbox-save.c:565,6'
          Dst:             str_len
        - Src:             'mbox-save.c:564,6'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:566,3'
          Dst:             write_stream_error
    - functionName:    write_stream_error
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ostream_error
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:68,2'
          Dst:             ostream_error
    - functionName:    mbox_write_content_length
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          151
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - dec2str
        - i_panic
        - lseek_stream_error
        - o_stream_flush
        - o_stream_seek
        - o_stream_send
        - strlen
        - t_strdup_printf
        - write_stream_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:167,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:178,10'
          Dst:             dec2str
        - Src:             'mbox-save.c:177,8'
          Dst:             t_strdup_printf
        - Src:             'mbox-save.c:179,8'
          Dst:             strlen
        - Src:             'mbox-save.c:183,6'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:184,3'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:187,6'
          Dst:             o_stream_seek
        - Src:             'mbox-save.c:189,3'
          Dst:             lseek_stream_error
        - Src:             'mbox-save.c:193,6'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:194,6'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:195,3'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:199,6'
          Dst:             o_stream_seek
        - Src:             'mbox-save.c:200,3'
          Dst:             lseek_stream_error
    - functionName:    mbox_append_lf
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_send
        - write_stream_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:122,6'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:123,3'
          Dst:             write_stream_error
    - functionName:    mbox_transaction_save_commit_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - mbox_sync
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:813,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:818,9'
          Dst:             mbox_sync
        - Src:             'mbox-save.c:821,2'
          Dst:             p_free_internal
    - functionName:    mbox_transaction_save_commit_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          336
      EdgeCount:       71
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - fdatasync
        - fstat
        - i_panic
        - mail_index_append_finish_uids
        - mail_index_update_header
        - mail_index_update_header_ext
        - mailbox_get_path
        - mbox_save_truncate
        - mbox_set_syscall_error
        - mbox_transaction_save_deinit
        - o_stream_flush
        - p_free_internal
        - utime
        - write_stream_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:748,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:749,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:751,6'
          Dst:             fstat
        - Src:             'mbox-save.c:752,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:758,3'
          Dst:             mail_index_append_finish_uids
        - Src:             'mbox-save.c:761,3'
          Dst:             mail_index_update_header
        - Src:             'mbox-save.c:768,4'
          Dst:             mail_index_update_header_ext
        - Src:             'mbox-save.c:783,13'
          Dst:             mailbox_get_path
        - Src:             'mbox-save.c:783,7'
          Dst:             utime
        - Src:             'mbox-save.c:784,8'
          Dst:             __errno_location
        - Src:             'mbox-save.c:784,8'
          Dst:             __errno_location
        - Src:             'mbox-save.c:784,8'
          Dst:             __errno_location
        - Src:             'mbox-save.c:785,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:790,7'
          Dst:             o_stream_flush
        - Src:             'mbox-save.c:791,4'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:795,7'
          Dst:             fdatasync
        - Src:             'mbox-save.c:796,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-save.c:797,4'
          Dst:             mbox_save_truncate
        - Src:             'mbox-save.c:802,2'
          Dst:             mbox_transaction_save_deinit
        - Src:             'mbox-save.c:804,3'
          Dst:             p_free_internal
    - functionName:    mbox_save_body_input
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_data
        - i_stream_skip
        - o_stream_send
        - write_stream_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:528,9'
          Dst:             i_stream_get_data
        - Src:             'mbox-save.c:530,7'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:531,4'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:535,3'
          Dst:             i_stream_skip
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    mbox_save_body
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_read
        - index_mail_cache_parse_continue
        - mbox_save_body_input
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:544,16'
          Dst:             i_stream_read
        - Src:             'mbox-save.c:545,7'
          Dst:             mbox_save_body_input
        - Src:             'mbox-save.c:549,3'
          Dst:             index_mail_cache_parse_continue
        - Src:             'mbox-save.c:554,2'
          Dst:             i_panic
    - functionName:    mbox_save_continue
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          435
      EdgeCount:       80
      CyclomaticComplexity: 21
      functionsReached:
        - e_error
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_more
        - i_stream_skip
        - index_mail_cache_parse_continue
        - mail_index_update_ext
        - mbox_save_body
        - mbox_save_body_input
        - mbox_save_finish_headers
        - o_stream_send
        - strlen
        - write_stream_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:586,10'
          Dst:             mbox_save_body
        - Src:             'mbox-save.c:589,16'
          Dst:             i_stream_read_more
        - Src:             'mbox-save.c:602,8'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:603,5'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:607,4'
          Dst:             i_stream_skip
        - Src:             'mbox-save.c:611,7'
          Dst:             o_stream_send
        - Src:             'mbox-save.c:612,4'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:615,3'
          Dst:             i_panic
        - Src:             'mbox-save.c:617,3'
          Dst:             i_stream_skip
        - Src:             'mbox-save.c:618,3'
          Dst:             index_mail_cache_parse_continue
        - Src:             'mbox-save.c:623,3'
          Dst:             i_stream_get_name
        - Src:             'mbox-save.c:623,3'
          Dst:             i_stream_get_error
        - Src:             'mbox-save.c:623,3'
          Dst:             e_error
        - Src:             'mbox-save.c:630,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:646,20'
          Dst:             strlen
        - Src:             'mbox-save.c:650,3'
          Dst:             mail_index_update_ext
        - Src:             'mbox-save.c:655,6'
          Dst:             mbox_save_finish_headers
        - Src:             'mbox-save.c:659,6'
          Dst:             mbox_save_body_input
        - Src:             'mbox-save.c:661,31'
          Dst:             mbox_save_body
    - functionName:    mbox_save_get_input_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          127
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_create_concat
        - i_stream_create_crlf
        - i_stream_create_from_data
        - i_stream_create_header_filter
        - i_stream_create_lf
        - i_stream_unref
        - index_mail_cache_parse_init
        - mbox_save_x_delivery_id
        - save_header_callback
        - strlen
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:384,11'
          Dst:             i_stream_create_header_filter
        - Src:             'mbox-save.c:384,11'
          Dst:             save_header_callback
        - Src:             'mbox-save.c:400,3'
          Dst:             t_push
        - Src:             'mbox-save.c:401,4'
          Dst:             mbox_save_x_delivery_id
        - Src:             'mbox-save.c:402,5'
          Dst:             t_pop
        - Src:             'mbox-save.c:402,5'
          Dst:             i_panic
        - Src:             'mbox-save.c:405,47'
          Dst:             strlen
        - Src:             'mbox-save.c:405,16'
          Dst:             i_stream_create_from_data
        - Src:             'mbox-save.c:408,9'
          Dst:             i_stream_create_concat
        - Src:             'mbox-save.c:409,3'
          Dst:             i_stream_unref
        - Src:             'mbox-save.c:415,3'
          Dst:             i_stream_create_crlf
        - Src:             'mbox-save.c:415,34'
          Dst:             i_stream_create_lf
        - Src:             'mbox-save.c:416,2'
          Dst:             i_stream_unref
        - Src:             'mbox-save.c:419,16'
          Dst:             index_mail_cache_parse_init
        - Src:             'mbox-save.c:420,2'
          Dst:             i_stream_unref
    - functionName:    write_from_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - mbox_from_create
        - my_hostdomain
        - o_stream_send_str
        - strchr
        - t_pop
        - t_push
        - t_strconcat
        - write_stream_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:135,2'
          Dst:             t_push
        - Src:             'mbox-save.c:143,5'
          Dst:             strchr
        - Src:             'mbox-save.c:146,15'
          Dst:             my_hostdomain
        - Src:             'mbox-save.c:145,5'
          Dst:             t_strconcat
        - Src:             'mbox-save.c:153,10'
          Dst:             mbox_from_create
        - Src:             'mbox-save.c:155,14'
          Dst:             o_stream_send_str
        - Src:             'mbox-save.c:156,4'
          Dst:             write_stream_error
        - Src:             'mbox-save.c:157,4'
          Dst:             t_pop
        - Src:             'mbox-save.c:157,4'
          Dst:             i_panic
    - functionName:    mbox_save_append_keyword_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          129
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - mail_index_get_keywords
        - str_append
        - str_append_c
        - str_append_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:262,23'
          Dst:             mail_index_get_keywords
        - Src:             'mbox-save.c:263,18'
          Dst:             array_get_i
        - Src:             'mbox-save.c:265,2'
          Dst:             str_append
        - Src:             'mbox-save.c:268,3'
          Dst:             i_panic
        - Src:             'mbox-save.c:270,3'
          Dst:             str_append_c
        - Src:             'mbox-save.c:271,3'
          Dst:             str_append
        - Src:             'mbox-save.c:275,2'
          Dst:             str_append_data
        - Src:             'mbox-save.c:276,23'
          Dst:             str_len
        - Src:             'mbox-save.c:277,2'
          Dst:             str_append_c
    - functionName:    mbox_save_append_flag_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - status_flags_append
        - str_append
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:241,2'
          Dst:             str_append
        - Src:             'mbox-save.c:242,2'
          Dst:             status_flags_append
        - Src:             'mbox-save.c:243,2'
          Dst:             str_append_c
        - Src:             'mbox-save.c:246,3'
          Dst:             str_append
        - Src:             'mbox-save.c:247,3'
          Dst:             status_flags_append
        - Src:             'mbox-save.c:248,3'
          Dst:             str_append_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    mbox_save_init_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          208
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mail_storage_set_error
        - mbox_file_open
        - mbox_is_backend_readonly
        - mbox_lock
        - mbox_save_init_sync
        - mbox_seek_to_end
        - mbox_sync
        - mbox_sync_has_changed
        - o_stream_cork
        - o_stream_create_fd_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:289,6'
          Dst:             mbox_is_backend_readonly
        - Src:             'mbox-save.c:290,3'
          Dst:             mail_storage_set_error
        - Src:             'mbox-save.c:298,8'
          Dst:             mbox_lock
        - Src:             'mbox-save.c:303,8'
          Dst:             mbox_file_open
        - Src:             'mbox-save.c:308,9'
          Dst:             mbox_sync_has_changed
        - Src:             'mbox-save.c:315,7'
          Dst:             mbox_sync
        - Src:             'mbox-save.c:317,3'
          Dst:             mbox_save_init_sync
        - Src:             'mbox-save.c:322,7'
          Dst:             mbox_seek_to_end
        - Src:             'mbox-save.c:325,3'
          Dst:             i_panic
        - Src:             'mbox-save.c:326,17'
          Dst:             o_stream_create_fd_file
        - Src:             'mbox-save.c:329,3'
          Dst:             o_stream_cork
    - functionName:    mbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          403
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - mail_index_append
        - mail_index_update_ext
        - mail_index_update_flags
        - mail_index_update_keywords
        - mail_index_update_modseq
        - mail_set_seq_saving
        - mbox_save_append_flag_headers
        - mbox_save_append_keyword_headers
        - mbox_save_get_input_stream
        - mbox_save_init_file
        - str_append_c
        - str_printfa
        - str_truncate
        - write_from_line
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:461,6'
          Dst:             mbox_save_init_file
        - Src:             'mbox-save.c:469,2'
          Dst:             str_truncate
        - Src:             'mbox-save.c:479,4'
          Dst:             str_printfa
        - Src:             'mbox-save.c:482,3'
          Dst:             str_printfa
        - Src:             'mbox-save.c:484,3'
          Dst:             mail_index_append
        - Src:             'mbox-save.c:485,3'
          Dst:             mail_index_update_flags
        - Src:             'mbox-save.c:488,4'
          Dst:             mail_index_update_keywords
        - Src:             'mbox-save.c:493,4'
          Dst:             mail_index_update_modseq
        - Src:             'mbox-save.c:499,3'
          Dst:             mail_index_update_ext
        - Src:             'mbox-save.c:504,3'
          Dst:             mail_set_seq_saving
        - Src:             'mbox-save.c:506,2'
          Dst:             mbox_save_append_flag_headers
        - Src:             'mbox-save.c:507,2'
          Dst:             mbox_save_append_keyword_headers
        - Src:             'mbox-save.c:508,2'
          Dst:             str_append_c
        - Src:             'mbox-save.c:510,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:516,6'
          Dst:             write_from_line
        - Src:             'mbox-save.c:519,16'
          Dst:             mbox_save_get_input_stream
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-save.c:431,2'
          Dst:             i_panic
        - Src:             'mbox-save.c:434,9'
          Dst:             malloc_multiply_check
        - Src:             'mbox-save.c:434,9'
          Dst:             p_malloc
        - Src:             'mbox-save.c:439,18'
          Dst:             str_new
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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-storage/index/mbox/../../../../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_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    parse_x_keywords_real
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          279
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_array_i
        - array_append_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_is_created_i
        - mail_index_keyword_lookup
        - parse_trailing_whitespace
        - pool_datastack_create
        - str_append_data
        - str_c
        - str_len
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:266,6'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-parse.c:270,12'
          Dst:             t_str_new
        - Src:             'mbox-sync-parse.c:271,2'
          Dst:             pool_datastack_create
        - Src:             'mbox-sync-parse.c:271,2'
          Dst:             array_create_i
        - Src:             'mbox-sync-parse.c:286,3'
          Dst:             str_truncate
        - Src:             'mbox-sync-parse.c:287,3'
          Dst:             str_append_data
        - Src:             'mbox-sync-parse.c:289,46'
          Dst:             str_c
        - Src:             'mbox-sync-parse.c:289,8'
          Dst:             mail_index_keyword_lookup
        - Src:             'mbox-sync-parse.c:298,10'
          Dst:             array_get_i
        - Src:             'mbox-sync-parse.c:305,4'
          Dst:             array_append_i
        - Src:             'mbox-sync-parse.c:310,6'
          Dst:             array_count_i
        - Src:             'mbox-sync-parse.c:311,3'
          Dst:             array_count_i
        - Src:             'mbox-sync-parse.c:311,3'
          Dst:             array_create_i
        - Src:             'mbox-sync-parse.c:314,3'
          Dst:             array_append_array_i
        - Src:             'mbox-sync-parse.c:317,38'
          Dst:             str_len
        - Src:             'mbox-sync-parse.c:318,2'
          Dst:             parse_trailing_whitespace
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    parse_trailing_whitespace
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          128
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - str_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:63,3'
          Dst:             i_panic
        - Src:             'mbox-sync-parse.c:64,40'
          Dst:             str_len
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    parse_imap_keywords_list
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          219
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - array_count_i
        - mail_index_keyword_lookup_or_create
        - mailbox_keyword_is_valid
        - module_context_get_require
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:124,39'
          Dst:             module_context_get_require
        - Src:             'mbox-sync-parse.c:144,13'
          Dst:             t_strndup
        - Src:             'mbox-sync-parse.c:146,7'
          Dst:             mailbox_keyword_is_valid
        - Src:             'mbox-sync-parse.c:148,4'
          Dst:             mail_index_keyword_lookup_or_create
        - Src:             'mbox-sync-parse.c:154,15'
          Dst:             array_count_i
    - functionName:    mbox_flag_find
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_status_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          96
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mbox_flag_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:91,10'
          Dst:             mbox_flag_find
    - functionName:    parse_x_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_status_flags
        - str_len
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:113,6'
          Dst:             parse_status_flags
        - Src:             'mbox-sync-parse.c:115,36'
          Dst:             str_len
    - functionName:    parse_x_keywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - parse_x_keywords_real
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:327,2'
          Dst:             t_push
        - Src:             'mbox-sync-parse.c:328,9'
          Dst:             parse_x_keywords_real
        - Src:             'mbox-sync-parse.c:329,4'
          Dst:             t_pop
        - Src:             'mbox-sync-parse.c:329,4'
          Dst:             i_panic
    - functionName:    parse_x_imap_base
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         76
      ICount:          518
      EdgeCount:       98
      CyclomaticComplexity: 24
      functionsReached:
        - i_panic
        - parse_imap_keywords_list
        - parse_trailing_whitespace
        - str_len
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:204,50'
          Dst:             str_len
        - Src:             'mbox-sync-parse.c:230,3'
          Dst:             i_panic
        - Src:             'mbox-sync-parse.c:233,38'
          Dst:             str_len
        - Src:             'mbox-sync-parse.c:236,2'
          Dst:             t_push
        - Src:             'mbox-sync-parse.c:237,3'
          Dst:             parse_imap_keywords_list
        - Src:             'mbox-sync-parse.c:238,4'
          Dst:             t_pop
        - Src:             'mbox-sync-parse.c:238,4'
          Dst:             i_panic
        - Src:             'mbox-sync-parse.c:239,2'
          Dst:             parse_trailing_whitespace
    - functionName:    parse_x_imap
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_x_imap_base
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:246,7'
          Dst:             parse_x_imap_base
    - functionName:    parse_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_status_flags
        - str_len
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:104,6'
          Dst:             parse_status_flags
        - Src:             'mbox-sync-parse.c:106,34'
          Dst:             str_len
    - functionName:    parse_content_length
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          159
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_x_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          320
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - parse_trailing_whitespace
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:403,33'
          Dst:             str_len
        - Src:             'mbox-sync-parse.c:405,2'
          Dst:             parse_trailing_whitespace
    - functionName:    mbox_sync_parse_match_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          209
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - bsearch
        - i_panic
        - mail_index_lookup_ext
        - mail_index_lookup_uid
        - mbox_sync_bsearch_header_func_cmp
        - memcmp
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - parse_x_uid
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:574,2'
          Dst:             mail_index_lookup_uid
        - Src:             'mbox-sync-parse.c:578,12'
          Dst:             message_parse_header_init
        - Src:             'mbox-sync-parse.c:579,16'
          Dst:             message_parse_header_next
        - Src:             'mbox-sync-parse.c:583,10'
          Dst:             bsearch
        - Src:             'mbox-sync-parse.c:583,10'
          Dst:             mbox_sync_bsearch_header_func_cmp
        - Src:             'mbox-sync-parse.c:587,8'
          Dst:             strcasecmp
        - Src:             'mbox-sync-parse.c:592,11'
          Dst:             parse_x_uid
        - Src:             'mbox-sync-parse.c:601,2'
          Dst:             i_panic
        - Src:             'mbox-sync-parse.c:602,2'
          Dst:             message_parse_header_deinit
        - Src:             'mbox-sync-parse.c:612,2'
          Dst:             mail_index_lookup_ext
        - Src:             'mbox-sync-parse.c:615,3'
          Dst:             memcmp
    - functionName:    mbox_sync_bsearch_header_func_cmp
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:452,9'
          Dst:             strcasecmp
    - functionName:    time_to_uint32
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/lib.h:145,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/lib.h:147,2'
          Dst:             i_panic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_sync_parse_next_mail
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         62
      ICount:          477
      EdgeCount:       81
      CyclomaticComplexity: 21
      functionsReached:
        - bsearch
        - buffer_append
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - mbox_sync_bsearch_header_func_cmp
        - mbox_sync_set_critical
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - str_append
        - str_append_c
        - str_append_data
        - str_len
        - str_truncate
        - time_to_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-parse.c:476,2'
          Dst:             str_truncate
        - Src:             'mbox-sync-parse.c:481,12'
          Dst:             message_parse_header_init
        - Src:             'mbox-sync-parse.c:482,16'
          Dst:             message_parse_header_next
        - Src:             'mbox-sync-parse.c:489,21'
          Dst:             str_len
        - Src:             'mbox-sync-parse.c:490,4'
          Dst:             str_append
        - Src:             'mbox-sync-parse.c:491,4'
          Dst:             str_append_data
        - Src:             'mbox-sync-parse.c:494,10'
          Dst:             bsearch
        - Src:             'mbox-sync-parse.c:494,10'
          Dst:             mbox_sync_bsearch_header_func_cmp
        - Src:             'mbox-sync-parse.c:507,5'
          Dst:             str_truncate
        - Src:             'mbox-sync-parse.c:514,4'
          Dst:             buffer_append
        - Src:             'mbox-sync-parse.c:518,4'
          Dst:             buffer_append
        - Src:             'mbox-sync-parse.c:523,5'
          Dst:             str_append_c
        - Src:             'mbox-sync-parse.c:524,4'
          Dst:             str_append_c
        - Src:             'mbox-sync-parse.c:527,2'
          Dst:             i_panic
        - Src:             'mbox-sync-parse.c:528,2'
          Dst:             message_parse_header_deinit
        - Src:             'mbox-sync-parse.c:542,5'
          Dst:             time_to_uint32
        - Src:             'mbox-sync-parse.c:542,5'
          Dst:             time_to_uint32
        - Src:             'mbox-sync-parse.c:549,4'
          Dst:             i_stream_get_name
        - Src:             'mbox-sync-parse.c:549,30'
          Dst:             i_stream_get_error
        - Src:             'mbox-sync-parse.c:548,3'
          Dst:             mbox_sync_set_critical
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_sync_read_next
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          309
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - istream_raw_mbox_get_header_offset
        - mbox_sync_headers_remove_space
        - mbox_sync_parse_next_mail
        - mbox_sync_set_critical
        - mbox_sync_update_header_from
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:338,6'
          Dst:             istream_raw_mbox_get_header_offset
        - Src:             'mbox-sync-rewrite.c:340,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync-rewrite.c:355,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:371,6'
          Dst:             mbox_sync_parse_next_mail
        - Src:             'mbox-sync-rewrite.c:373,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:383,4'
          Dst:             mbox_sync_headers_remove_space
        - Src:             'mbox-sync-rewrite.c:385,3'
          Dst:             mbox_sync_update_header_from
        - Src:             'mbox-sync-rewrite.c:390,4'
          Dst:             str_append_c
    - functionName:    mbox_sync_headers_remove_space
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mbox_sync_header_remove_space
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:219,4'
          Dst:             mbox_sync_header_remove_space
    - functionName:    mbox_sync_header_remove_space
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          294
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - mbox_sync_move_buffer
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:151,9'
          Dst:             str_data
        - Src:             'mbox-sync-rewrite.c:152,14'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:177,3'
          Dst:             mbox_sync_move_buffer
        - Src:             'mbox-sync-rewrite.c:185,2'
          Dst:             mbox_sync_move_buffer
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    mbox_fill_space
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mbox_set_syscall_error
        - mbox_sync_file_updated
        - pwrite_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:72,7'
          Dst:             pwrite_full
        - Src:             'mbox-sync-rewrite.c:74,4'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync-rewrite.c:80,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync-rewrite.c:81,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync-rewrite.c:84,2'
          Dst:             mbox_sync_file_updated
    - functionName:    mbox_sync_read_and_move
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          503
      EdgeCount:       73
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - i_stream_seek
        - mbox_move
        - mbox_set_syscall_error
        - mbox_sync_file_update_ext_modified
        - mbox_sync_file_updated
        - mbox_sync_first_mail_written
        - mbox_sync_headers_add_space
        - mbox_sync_headers_remove_space
        - mbox_sync_read_next
        - mbox_sync_seek
        - mbox_sync_set_critical
        - pwrite_full
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:407,7'
          Dst:             mbox_sync_seek
        - Src:             'mbox-sync-rewrite.c:410,7'
          Dst:             mbox_sync_read_next
        - Src:             'mbox-sync-rewrite.c:415,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:418,3'
          Dst:             i_stream_seek
        - Src:             'mbox-sync-rewrite.c:422,16'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:427,4'
          Dst:             mbox_sync_file_update_ext_modified
        - Src:             'mbox-sync-rewrite.c:429,4'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync-rewrite.c:442,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:443,7'
          Dst:             mbox_move
        - Src:             'mbox-sync-rewrite.c:452,3'
          Dst:             mbox_sync_headers_remove_space
        - Src:             'mbox-sync-rewrite.c:455,3'
          Dst:             mbox_sync_headers_add_space
        - Src:             'mbox-sync-rewrite.c:463,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:464,6'
          Dst:             mbox_move
        - Src:             'mbox-sync-rewrite.c:469,2'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:469,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:470,17'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:471,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:472,38'
          Dst:             str_data
        - Src:             'mbox-sync-rewrite.c:473,4'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:472,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync-rewrite.c:474,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync-rewrite.c:477,2'
          Dst:             mbox_sync_file_updated
        - Src:             'mbox-sync-rewrite.c:480,3'
          Dst:             mbox_sync_first_mail_written
    - functionName:    mbox_move
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          193
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_create_limit
        - i_stream_seek
        - i_stream_sync
        - i_stream_unref
        - mailbox_set_critical
        - mbox_ostream_set_syscall_error
        - mbox_sync_file_updated
        - mbox_sync_set_critical
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_flush
        - o_stream_get_error
        - o_stream_nsend_istream
        - o_stream_seek
        - o_stream_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:23,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:24,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:29,2'
          Dst:             i_stream_sync
        - Src:             'mbox-sync-rewrite.c:31,11'
          Dst:             o_stream_create_fd_file
        - Src:             'mbox-sync-rewrite.c:32,2'
          Dst:             i_stream_seek
        - Src:             'mbox-sync-rewrite.c:33,6'
          Dst:             o_stream_seek
        - Src:             'mbox-sync-rewrite.c:34,3'
          Dst:             mbox_ostream_set_syscall_error
        - Src:             'mbox-sync-rewrite.c:36,3'
          Dst:             o_stream_unref
        - Src:             'mbox-sync-rewrite.c:42,10'
          Dst:             i_stream_create_limit
        - Src:             'mbox-sync-rewrite.c:43,2'
          Dst:             o_stream_nsend_istream
        - Src:             'mbox-sync-rewrite.c:44,6'
          Dst:             o_stream_flush
        - Src:             'mbox-sync-rewrite.c:47,4'
          Dst:             o_stream_get_error
        - Src:             'mbox-sync-rewrite.c:45,3'
          Dst:             mailbox_set_critical
        - Src:             'mbox-sync-rewrite.c:50,3'
          Dst:             mbox_sync_set_critical
        - Src:             'mbox-sync-rewrite.c:58,2'
          Dst:             i_stream_unref
        - Src:             'mbox-sync-rewrite.c:60,2'
          Dst:             mbox_sync_file_updated
        - Src:             'mbox-sync-rewrite.c:61,2'
          Dst:             o_stream_destroy
    - functionName:    mbox_sync_headers_add_space
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          320
      EdgeCount:       62
      CyclomaticComplexity: 15
      functionsReached:
        - buffer_get_space_unsafe
        - i_panic
        - mbox_sync_move_buffer
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:95,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:112,9'
          Dst:             str_data
        - Src:             'mbox-sync-rewrite.c:113,14'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:114,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:129,2'
          Dst:             mbox_sync_move_buffer
        - Src:             'mbox-sync-rewrite.c:131,6'
          Dst:             buffer_get_space_unsafe
    - functionName:    mbox_sync_first_mail_written
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:232,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:233,2'
          Dst:             i_panic
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    mbox_sync_rewrite
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     externalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          564
      EdgeCount:       87
      CyclomaticComplexity: 13
      functionsReached:
        - array_get_modifiable_i
        - i_panic
        - mbox_fill_space
        - mbox_move
        - mbox_sync_file_updated
        - mbox_sync_read_and_move
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:503,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:504,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:506,10'
          Dst:             array_get_modifiable_i
        - Src:             'mbox-sync-rewrite.c:507,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:522,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:527,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:551,8'
          Dst:             mbox_sync_read_and_move
        - Src:             'mbox-sync-rewrite.c:572,4'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:573,8'
          Dst:             mbox_move
        - Src:             'mbox-sync-rewrite.c:584,9'
          Dst:             mbox_fill_space
        - Src:             'mbox-sync-rewrite.c:595,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:596,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:603,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:604,3'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:607,2'
          Dst:             mbox_sync_file_updated
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    mbox_sync_try_rewrite
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c'
      linkageType:     externalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          409
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - mbox_set_syscall_error
        - mbox_sync_file_updated
        - mbox_sync_first_mail_written
        - mbox_sync_headers_add_space
        - mbox_sync_headers_remove_space
        - pwrite_full
        - str_data
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-rewrite.c:251,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:254,17'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:259,3'
          Dst:             mbox_sync_headers_add_space
        - Src:             'mbox-sync-rewrite.c:262,3'
          Dst:             mbox_sync_headers_remove_space
        - Src:             'mbox-sync-rewrite.c:264,18'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:268,4'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:273,4'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:274,4'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:279,4'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:286,2'
          Dst:             i_panic
        - Src:             'mbox-sync-rewrite.c:302,3'
          Dst:             str_truncate
        - Src:             'mbox-sync-rewrite.c:305,4'
          Dst:             str_data
        - Src:             'mbox-sync-rewrite.c:306,4'
          Dst:             str_len
        - Src:             'mbox-sync-rewrite.c:304,6'
          Dst:             pwrite_full
        - Src:             'mbox-sync-rewrite.c:309,3'
          Dst:             mbox_set_syscall_error
        - Src:             'mbox-sync-rewrite.c:317,3'
          Dst:             mbox_sync_first_mail_written
        - Src:             'mbox-sync-rewrite.c:320,2'
          Dst:             mbox_sync_file_updated
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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-storage/index/mbox/../../../../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_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    status_flags_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:25,4'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    keywords_append_all
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - module_context_get_require
        - str_append
        - str_append_c
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:158,3'
          Dst:             module_context_get_require
        - Src:             'mbox-sync-update.c:164,6'
          Dst:             str_data
        - Src:             'mbox-sync-update.c:165,6'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:169,21'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:175,10'
          Dst:             array_get_i
        - Src:             'mbox-sync-update.c:178,7'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:179,4'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:181,4'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:182,17'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:184,3'
          Dst:             str_append
    - functionName:    module_context_get_require
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - module_context_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:101,14'
          Dst:             module_context_get
        - Src:             '../../../../src/lib/module-context.h:103,3'
          Dst:             i_panic
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    module_context_get
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_modifiable_i
        - module_get_context_id
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/module-context.h:87,27'
          Dst:             module_get_context_id
        - Src:             '../../../../src/lib/module-context.h:88,19'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/module-context.h:90,24'
          Dst:             array_idx_modifiable_i
    - functionName:    module_get_context_id
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../src/lib/module-context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mbox_sync_update_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          172
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - buffer_copy
        - mbox_sync_move_buffer
        - str_c
        - str_len
        - strchr
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:299,12'
          Dst:             str_c
        - Src:             'mbox-sync-update.c:301,7'
          Dst:             strchr
        - Src:             'mbox-sync-update.c:304,14'
          Dst:             strlen
        - Src:             'mbox-sync-update.c:320,34'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:320,2'
          Dst:             mbox_sync_move_buffer
        - Src:             'mbox-sync-update.c:321,2'
          Dst:             buffer_copy
    - functionName:    mbox_sync_move_buffer
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          272
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_copy
        - i_panic
        - str_delete
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:35,2'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:54,4'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:64,4'
          Dst:             str_delete
        - Src:             'mbox-sync-update.c:67,4'
          Dst:             buffer_copy
    - functionName:    str_delete
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    keywords_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          124
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - i_panic
        - module_context_get_require
        - str_append
        - str_append_c
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:128,3'
          Dst:             module_context_get_require
        - Src:             'mbox-sync-update.c:134,18'
          Dst:             array_get_i
        - Src:             'mbox-sync-update.c:136,20'
          Dst:             array_get_i
        - Src:             'mbox-sync-update.c:138,27'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:139,3'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:142,7'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:144,5'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:146,4'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:147,17'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:149,3'
          Dst:             str_append
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/../../../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    status_flags_replace
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          304
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - buffer_get_modifiable_data
        - buffer_get_space_unsafe
        - mbox_sync_move_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:92,9'
          Dst:             buffer_get_modifiable_data
        - Src:             'mbox-sync-update.c:111,9'
          Dst:             mbox_sync_move_buffer
        - Src:             'mbox-sync-update.c:114,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    mbox_sync_add_missing_headers
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          472
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
        - keywords_append
        - keywords_append_all
        - status_flags_append
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_printfa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:192,17'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:194,6'
          Dst:             str_data
        - Src:             'mbox-sync-update.c:196,3'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:201,3'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:203,3'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:204,39'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:207,14'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:208,3'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:212,35'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:215,3'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:217,3'
          Dst:             keywords_append_all
        - Src:             'mbox-sync-update.c:218,3'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:222,3'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:223,34'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:224,3'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:231,3'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:232,35'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:233,3'
          Dst:             status_flags_append
        - Src:             'mbox-sync-update.c:234,3'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:239,3'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:240,37'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:241,3'
          Dst:             status_flags_append
        - Src:             'mbox-sync-update.c:242,3'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:248,6'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-update.c:249,6'
          Dst:             array_count_i
        - Src:             'mbox-sync-update.c:250,3'
          Dst:             str_append
        - Src:             'mbox-sync-update.c:251,39'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:252,3'
          Dst:             keywords_append
        - Src:             'mbox-sync-update.c:254,3'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:259,3'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:263,6'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:270,3'
          Dst:             str_append_c
    - functionName:    mbox_sync_update_x_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mbox_sync_update_line
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:378,8'
          Dst:             t_str_new
        - Src:             'mbox-sync-update.c:379,2'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:380,2'
          Dst:             mbox_sync_update_line
    - functionName:    mbox_sync_update_x_imap_base
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - keywords_append_all
        - mbox_sync_update_line
        - str_append_c
        - str_len
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:343,2'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:356,8'
          Dst:             t_str_new
        - Src:             'mbox-sync-update.c:357,2'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:360,34'
          Dst:             str_len
        - Src:             'mbox-sync-update.c:362,2'
          Dst:             str_printfa
        - Src:             'mbox-sync-update.c:364,2'
          Dst:             keywords_append_all
        - Src:             'mbox-sync-update.c:365,2'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:367,9'
          Dst:             mbox_sync_update_line
    - functionName:    mbox_sync_update_xkeywords
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - keywords_append
        - mbox_sync_update_line
        - str_append_c
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:331,8'
          Dst:             t_str_new
        - Src:             'mbox-sync-update.c:332,6'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-update.c:333,3'
          Dst:             keywords_append
        - Src:             'mbox-sync-update.c:334,2'
          Dst:             str_append_c
        - Src:             'mbox-sync-update.c:335,2'
          Dst:             mbox_sync_update_line
    - functionName:    mbox_sync_update_xstatus
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - status_flags_replace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:284,3'
          Dst:             status_flags_replace
    - functionName:    mbox_sync_update_status
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - status_flags_replace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:276,3'
          Dst:             status_flags_replace
    - functionName:    mbox_sync_update_header_from_real
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          310
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - array_cmp_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - mbox_sync_add_missing_headers
        - mbox_sync_update_status
        - mbox_sync_update_x_imap_base
        - mbox_sync_update_x_uid
        - mbox_sync_update_xkeywords
        - mbox_sync_update_xstatus
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:420,3'
          Dst:             mbox_sync_update_status
        - Src:             'mbox-sync-update.c:427,3'
          Dst:             mbox_sync_update_xstatus
        - Src:             'mbox-sync-update.c:429,7'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-update.c:430,6'
          Dst:             array_count_i
        - Src:             'mbox-sync-update.c:432,7'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-update.c:433,4'
          Dst:             array_clear_i
        - Src:             'mbox-sync-update.c:434,4'
          Dst:             mbox_sync_update_xkeywords
        - Src:             'mbox-sync-update.c:436,14'
          Dst:             array_is_created_i
        - Src:             'mbox-sync-update.c:438,3'
          Dst:             array_count_i
        - Src:             'mbox-sync-update.c:438,3'
          Dst:             array_create_i
        - Src:             'mbox-sync-update.c:441,3'
          Dst:             array_append_array_i
        - Src:             'mbox-sync-update.c:443,3'
          Dst:             mbox_sync_update_xkeywords
        - Src:             'mbox-sync-update.c:444,14'
          Dst:             array_cmp_i
        - Src:             'mbox-sync-update.c:446,3'
          Dst:             array_clear_i
        - Src:             'mbox-sync-update.c:447,3'
          Dst:             array_append_array_i
        - Src:             'mbox-sync-update.c:449,3'
          Dst:             mbox_sync_update_xkeywords
        - Src:             'mbox-sync-update.c:452,2'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:455,2'
          Dst:             mbox_sync_update_x_imap_base
        - Src:             'mbox-sync-update.c:456,2'
          Dst:             mbox_sync_update_x_uid
        - Src:             'mbox-sync-update.c:457,2'
          Dst:             mbox_sync_add_missing_headers
    - functionName:    mbox_sync_update_header_from
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mbox_sync_update_header_from_real
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:463,2'
          Dst:             t_push
        - Src:             'mbox-sync-update.c:464,3'
          Dst:             mbox_sync_update_header_from_real
        - Src:             'mbox-sync-update.c:465,4'
          Dst:             t_pop
        - Src:             'mbox-sync-update.c:465,4'
          Dst:             i_panic
    - functionName:    mbox_sync_update_header_real
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - mbox_sync_add_missing_headers
        - mbox_sync_update_status
        - mbox_sync_update_x_imap_base
        - mbox_sync_update_x_uid
        - mbox_sync_update_xkeywords
        - mbox_sync_update_xstatus
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:385,2'
          Dst:             i_panic
        - Src:             'mbox-sync-update.c:390,2'
          Dst:             mbox_sync_update_status
        - Src:             'mbox-sync-update.c:391,2'
          Dst:             mbox_sync_update_xstatus
        - Src:             'mbox-sync-update.c:392,2'
          Dst:             mbox_sync_update_xkeywords
        - Src:             'mbox-sync-update.c:394,2'
          Dst:             mbox_sync_update_x_imap_base
        - Src:             'mbox-sync-update.c:395,2'
          Dst:             mbox_sync_update_x_uid
        - Src:             'mbox-sync-update.c:397,2'
          Dst:             mbox_sync_add_missing_headers
    - functionName:    mbox_sync_update_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - mbox_sync_update_header_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-sync-update.c:403,2'
          Dst:             t_push
        - Src:             'mbox-sync-update.c:404,3'
          Dst:             mbox_sync_update_header_real
        - Src:             'mbox-sync-update.c:405,4'
          Dst:             t_pop
        - Src:             'mbox-sync-update.c:405,4'
          Dst:             i_panic
    - functionName:    pop3c_client_ssl_handshaked
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - ssl_iostream_check_cert_validity
        - ssl_iostream_get_allow_invalid_cert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:534,3'
          Dst:             ssl_iostream_check_cert_validity
        - Src:             'pop3c-client.c:538,3'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:538,3'
          Dst:             e_debug
        - Src:             'pop3c-client.c:538,3'
          Dst:             event_send_abort
        - Src:             'pop3c-client.c:539,11'
          Dst:             ssl_iostream_get_allow_invalid_cert
        - Src:             'pop3c-client.c:540,3'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:540,3'
          Dst:             e_debug
        - Src:             'pop3c-client.c:540,3'
          Dst:             event_send_abort
    - functionName:    pop3c_client_input_next_reply
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          169
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - array_count_i
        - e_error
        - i_stream_read_next_line
        - pop3c_client_async_callback
        - str_begins_builtin_success
        - str_begins_icase
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:738,9'
          Dst:             i_stream_read_next_line
        - Src:             'pop3c-client.c:742,6'
          Dst:             str_begins_icase
        - Src:             'pop3c-client.c:742,6'
          Dst:             strncasecmp
        - Src:             'pop3c-client.c:742,6'
          Dst:             str_begins_builtin_success
        - Src:             'pop3c-client.c:744,11'
          Dst:             str_begins_icase
        - Src:             'pop3c-client.c:744,11'
          Dst:             strncasecmp
        - Src:             'pop3c-client.c:744,11'
          Dst:             str_begins_builtin_success
        - Src:             'pop3c-client.c:747,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:753,6'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:754,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:757,3'
          Dst:             pop3c_client_async_callback
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop3c_client_async_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          186
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_modifiable_i
        - i_panic
        - i_stream_chain_append
        - i_stream_seek
        - i_stream_unref
        - io_loop_stop
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:157,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:158,2'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:158,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:160,8'
          Dst:             array_idx_modifiable_i
        - Src:             'pop3c-client.c:165,3'
          Dst:             i_panic
        - Src:             'pop3c-client.c:166,3'
          Dst:             i_stream_chain_append
        - Src:             'pop3c-client.c:172,2'
          Dst:             array_delete_i
        - Src:             'pop3c-client.c:175,3'
          Dst:             i_stream_seek
        - Src:             'pop3c-client.c:176,3'
          Dst:             i_stream_unref
        - Src:             'pop3c-client.c:181,3'
          Dst:             io_loop_stop
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_client_dot_input
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read
        - i_stream_skip
        - pop3c_client_async_callback
        - pop3c_client_async_callback_disconnected
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:708,16'
          Dst:             i_stream_read
        - Src:             'pop3c-client.c:710,10'
          Dst:             i_stream_get_data_size
        - Src:             'pop3c-client.c:709,3'
          Dst:             i_stream_skip
        - Src:             'pop3c-client.c:714,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:724,3'
          Dst:             pop3c_client_async_callback
        - Src:             'pop3c-client.c:727,3'
          Dst:             pop3c_client_async_callback_disconnected
    - functionName:    pop3c_client_async_callback_disconnected
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pop3c_client_async_callback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:187,2'
          Dst:             pop3c_client_async_callback
    - functionName:    pop3c_client_input
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          84
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - pop3c_client_disconnect
        - pop3c_client_dot_input
        - pop3c_client_input_next_reply
        - timeout_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:767,3'
          Dst:             timeout_reset
        - Src:             'pop3c-client.c:771,15'
          Dst:             pop3c_client_dot_input
        - Src:             'pop3c-client.c:774,10'
          Dst:             pop3c_client_input_next_reply
        - Src:             'pop3c-client.c:779,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:780,3'
          Dst:             pop3c_client_disconnect
    - functionName:    pop3c_client_disconnect
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - client_login_callback
        - dns_lookup_abort
        - i_close_fd_path
        - i_stream_destroy
        - io_loop_stop
        - io_remove
        - o_stream_destroy
        - pop3c_client_async_callback_disconnected
        - ssl_iostream_destroy
        - timeout_remove
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:196,3'
          Dst:             io_loop_stop
        - Src:             'pop3c-client.c:199,3'
          Dst:             dns_lookup_abort
        - Src:             'pop3c-client.c:200,2'
          Dst:             timeout_remove
        - Src:             'pop3c-client.c:201,2'
          Dst:             io_remove
        - Src:             'pop3c-client.c:202,2'
          Dst:             i_stream_destroy
        - Src:             'pop3c-client.c:203,2'
          Dst:             o_stream_destroy
        - Src:             'pop3c-client.c:204,2'
          Dst:             ssl_iostream_destroy
        - Src:             'pop3c-client.c:205,2'
          Dst:             i_close_fd_path
        - Src:             'pop3c-client.c:206,9'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:207,3'
          Dst:             pop3c_client_async_callback_disconnected
        - Src:             'pop3c-client.c:208,2'
          Dst:             client_login_callback
    - functionName:    client_login_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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_data
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    pop3c_client_login_finished
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_add_istream
        - io_loop_stop
        - io_remove
        - pop3c_client_input
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:386,2'
          Dst:             io_remove
        - Src:             'pop3c-client.c:387,15'
          Dst:             io_add_istream
        - Src:             'pop3c-client.c:387,15'
          Dst:             pop3c_client_input
        - Src:             'pop3c-client.c:390,2'
          Dst:             timeout_remove
        - Src:             'pop3c-client.c:394,3'
          Dst:             io_loop_stop
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    pop3c_client_get_sasl_plain_request
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - base64_encode
        - str_append
        - str_append_c
        - str_c
        - str_data
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:366,7'
          Dst:             t_str_new
        - Src:             'pop3c-client.c:368,3'
          Dst:             str_append
        - Src:             'pop3c-client.c:369,3'
          Dst:             str_append_c
        - Src:             'pop3c-client.c:370,3'
          Dst:             str_append
        - Src:             'pop3c-client.c:372,3'
          Dst:             str_append_c
        - Src:             'pop3c-client.c:373,3'
          Dst:             str_append
        - Src:             'pop3c-client.c:375,2'
          Dst:             str_append_c
        - Src:             'pop3c-client.c:376,2'
          Dst:             str_append
        - Src:             'pop3c-client.c:378,8'
          Dst:             t_str_new
        - Src:             'pop3c-client.c:379,16'
          Dst:             str_data
        - Src:             'pop3c-client.c:379,30'
          Dst:             str_len
        - Src:             'pop3c-client.c:379,2'
          Dst:             base64_encode
        - Src:             'pop3c-client.c:380,2'
          Dst:             str_append
        - Src:             'pop3c-client.c:381,9'
          Dst:             str_c
    - functionName:    pop3c_client_authenticate1
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - o_stream_nsend_str
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:340,3'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:340,3'
          Dst:             e_debug
        - Src:             'pop3c-client.c:340,3'
          Dst:             event_send_abort
        - Src:             'pop3c-client.c:344,3'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:344,3'
          Dst:             e_debug
        - Src:             'pop3c-client.c:344,3'
          Dst:             event_send_abort
        - Src:             'pop3c-client.c:352,4'
          Dst:             t_strdup_printf
        - Src:             'pop3c-client.c:351,3'
          Dst:             o_stream_nsend_str
        - Src:             'pop3c-client.c:356,3'
          Dst:             o_stream_nsend_str
    - functionName:    pop3c_client_starttls
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:331,2'
          Dst:             o_stream_nsend_str
    - functionName:    pop3c_client_prelogin_input_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          427
      EdgeCount:       109
      CyclomaticComplexity: 27
      functionsReached:
        - client_login_callback
        - e_error
        - i_unreached
        - o_stream_nsend_str
        - pop3c_client_authenticate1
        - pop3c_client_disconnect
        - pop3c_client_get_sasl_plain_request
        - pop3c_client_login_finished
        - pop3c_client_ssl_init
        - pop3c_client_starttls
        - pop3c_client_timeout
        - str_begins_builtin_success
        - str_begins_icase
        - str_begins_icase_with
        - strcasecmp
        - strcmp
        - strncasecmp
        - t_strdup_printf
        - timeout_add
        - timeout_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'pop3c-client.c:403,2'
          Branch Sides:    []
      Callsites:
        - Src:             'pop3c-client.c:406,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:411,4'
          Dst:             pop3c_client_starttls
        - Src:             'pop3c-client.c:413,4'
          Dst:             pop3c_client_authenticate1
        - Src:             'pop3c-client.c:417,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:420,7'
          Dst:             pop3c_client_ssl_init
        - Src:             'pop3c-client.c:421,4'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:425,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:431,3'
          Dst:             timeout_remove
        - Src:             'pop3c-client.c:432,16'
          Dst:             timeout_add
        - Src:             'pop3c-client.c:432,16'
          Dst:             pop3c_client_timeout
        - Src:             'pop3c-client.c:436,4'
          Dst:             t_strdup_printf
        - Src:             'pop3c-client.c:435,3'
          Dst:             o_stream_nsend_str
        - Src:             'pop3c-client.c:442,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:446,4'
          Dst:             pop3c_client_get_sasl_plain_request
        - Src:             'pop3c-client.c:445,3'
          Dst:             o_stream_nsend_str
        - Src:             'pop3c-client.c:452,9'
          Dst:             str_begins_icase
        - Src:             'pop3c-client.c:452,9'
          Dst:             strncasecmp
        - Src:             'pop3c-client.c:452,9'
          Dst:             str_begins_builtin_success
        - Src:             'pop3c-client.c:453,9'
          Dst:             str_begins_icase
        - Src:             'pop3c-client.c:453,9'
          Dst:             strncasecmp
        - Src:             'pop3c-client.c:453,9'
          Dst:             str_begins_builtin_success
        - Src:             'pop3c-client.c:455,4'
          Dst:             client_login_callback
        - Src:             'pop3c-client.c:459,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:466,3'
          Dst:             o_stream_nsend_str
        - Src:             'pop3c-client.c:470,7'
          Dst:             strncasecmp
        - Src:             'pop3c-client.c:470,7'
          Dst:             str_begins_icase_with
        - Src:             'pop3c-client.c:474,4'
          Dst:             pop3c_client_login_finished
        - Src:             'pop3c-client.c:476,14'
          Dst:             strcmp
        - Src:             'pop3c-client.c:477,4'
          Dst:             pop3c_client_login_finished
        - Src:             'pop3c-client.c:481,7'
          Dst:             strcasecmp
        - Src:             'pop3c-client.c:483,12'
          Dst:             strcasecmp
        - Src:             'pop3c-client.c:485,12'
          Dst:             strcasecmp
        - Src:             'pop3c-client.c:491,3'
          Dst:             i_unreached
    - functionName:    pop3c_client_ssl_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          231
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_destroy
        - i_stream_ref
        - io_add_istream
        - io_remove
        - io_stream_autocreate_ssl_client
        - iostream_rawlog_create
        - o_stream_destroy
        - o_stream_ref
        - pop3c_client_prelogin_input
        - pop3c_client_ssl_handshaked
        - ssl_iostream_get_last_error
        - ssl_iostream_handshake
        - ssl_iostream_set_handshake_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:557,2'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:557,2'
          Dst:             e_debug
        - Src:             'pop3c-client.c:557,2'
          Dst:             event_send_abort
        - Src:             'pop3c-client.c:561,3'
          Dst:             i_stream_ref
        - Src:             'pop3c-client.c:562,3'
          Dst:             o_stream_ref
        - Src:             'pop3c-client.c:563,3'
          Dst:             i_stream_destroy
        - Src:             'pop3c-client.c:564,3'
          Dst:             o_stream_destroy
        - Src:             'pop3c-client.c:580,6'
          Dst:             io_stream_autocreate_ssl_client
        - Src:             'pop3c-client.c:583,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:587,2'
          Dst:             ssl_iostream_set_handshake_callback
        - Src:             'pop3c-client.c:587,2'
          Dst:             pop3c_client_ssl_handshaked
        - Src:             'pop3c-client.c:590,6'
          Dst:             ssl_iostream_handshake
        - Src:             'pop3c-client.c:591,3'
          Dst:             ssl_iostream_get_last_error
        - Src:             'pop3c-client.c:591,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:597,3'
          Dst:             iostream_rawlog_create
        - Src:             'pop3c-client.c:602,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:603,2'
          Dst:             io_remove
        - Src:             'pop3c-client.c:604,15'
          Dst:             io_add_istream
        - Src:             'pop3c-client.c:604,15'
          Dst:             pop3c_client_prelogin_input
    - functionName:    pop3c_client_timeout
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - net_ip2addr
        - pop3c_client_disconnect
      functionUses:    3
      BranchProfiles:
        - Branch String:   'pop3c-client.c:233,2'
          Branch Sides:    []
      Callsites:
        - Src:             'pop3c-client.c:235,3'
          Dst:             net_ip2addr
        - Src:             'pop3c-client.c:235,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:241,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:246,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:252,2'
          Dst:             pop3c_client_disconnect
    - functionName:    pop3c_client_prelogin_input
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          158
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - i_panic
        - i_stream_read_next_line
        - pop3c_client_disconnect
        - pop3c_client_prelogin_input_line
        - ssl_iostream_get_last_error
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:500,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:504,17'
          Dst:             i_stream_read_next_line
        - Src:             'pop3c-client.c:505,7'
          Dst:             pop3c_client_prelogin_input_line
        - Src:             'pop3c-client.c:506,4'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:515,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:517,13'
          Dst:             ssl_iostream_get_last_error
        - Src:             'pop3c-client.c:520,6'
          Dst:             strerror
        - Src:             'pop3c-client.c:522,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:524,3'
          Dst:             pop3c_client_disconnect
    - functionName:    pop3c_client_connected
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - e_error
        - io_add
        - io_remove
        - net_geterror
        - net_ip2addr
        - pop3c_client_disconnect
        - pop3c_client_prelogin_input
        - pop3c_client_ssl_init
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:613,8'
          Dst:             net_geterror
        - Src:             'pop3c-client.c:615,3'
          Dst:             net_ip2addr
        - Src:             'pop3c-client.c:615,3'
          Dst:             strerror
        - Src:             'pop3c-client.c:615,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:617,3'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:620,2'
          Dst:             io_remove
        - Src:             'pop3c-client.c:621,15'
          Dst:             io_add
        - Src:             'pop3c-client.c:621,15'
          Dst:             pop3c_client_prelogin_input
        - Src:             'pop3c-client.c:625,7'
          Dst:             pop3c_client_ssl_init
        - Src:             'pop3c-client.c:626,4'
          Dst:             pop3c_client_disconnect
    - functionName:    pop3c_dns_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_panic
        - pop3c_client_connect_ip
        - pop3c_client_disconnect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:668,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:669,3'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:673,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:675,2'
          Dst:             pop3c_client_connect_ip
    - functionName:    pop3c_client_connect_ip
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          142
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_stream_create_fd
        - io_add
        - iostream_rawlog_create
        - net_connect_ip
        - net_ip2addr
        - o_stream_create_fd
        - o_stream_set_no_error_handling
        - pop3c_client_connected
        - pop3c_client_disconnect
        - pop3c_client_timeout
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:632,15'
          Dst:             net_connect_ip
        - Src:             'pop3c-client.c:634,3'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:639,3'
          Dst:             i_stream_create_fd
        - Src:             'pop3c-client.c:641,3'
          Dst:             o_stream_create_fd
        - Src:             'pop3c-client.c:642,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'pop3c-client.c:646,3'
          Dst:             iostream_rawlog_create
        - Src:             'pop3c-client.c:650,15'
          Dst:             io_add
        - Src:             'pop3c-client.c:650,15'
          Dst:             pop3c_client_connected
        - Src:             'pop3c-client.c:652,15'
          Dst:             timeout_add
        - Src:             'pop3c-client.c:652,15'
          Dst:             pop3c_client_timeout
        - Src:             'pop3c-client.c:654,2'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:654,2'
          Dst:             net_ip2addr
        - Src:             'pop3c-client.c:654,2'
          Dst:             e_debug
        - Src:             'pop3c-client.c:654,2'
          Dst:             event_send_abort
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    seekable_fd_callback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_close_fd_path
        - i_unlink
        - safe_mkstemp
        - str_append
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:842,9'
          Dst:             t_str_new
        - Src:             'pop3c-client.c:843,2'
          Dst:             str_append
        - Src:             'pop3c-client.c:844,7'
          Dst:             safe_mkstemp
        - Src:             'pop3c-client.c:846,3'
          Dst:             str_c
        - Src:             'pop3c-client.c:846,3'
          Dst:             e_error
        - Src:             'pop3c-client.c:852,6'
          Dst:             str_c
        - Src:             'pop3c-client.c:852,6'
          Dst:             i_unlink
        - Src:             'pop3c-client.c:854,3'
          Dst:             i_close_fd_path
        - Src:             'pop3c-client.c:858,12'
          Dst:             str_c
    - functionName:    pop3c_client_cmd_stream_async
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_chain
        - i_stream_create_dot
        - i_stream_create_seekable
        - i_stream_ref
        - i_stream_unref
        - pop3c_client_cmd_line_async
        - seekable_fd_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:895,8'
          Dst:             pop3c_client_cmd_line_async
        - Src:             'pop3c-client.c:897,10'
          Dst:             i_stream_create_chain
        - Src:             'pop3c-client.c:898,14'
          Dst:             i_stream_create_dot
        - Src:             'pop3c-client.c:901,15'
          Dst:             i_stream_create_seekable
        - Src:             'pop3c-client.c:901,15'
          Dst:             seekable_fd_callback
        - Src:             'pop3c-client.c:903,2'
          Dst:             i_stream_unref
        - Src:             'pop3c-client.c:904,2'
          Dst:             i_stream_unref
        - Src:             'pop3c-client.c:906,2'
          Dst:             i_stream_ref
    - functionName:    pop3c_client_cmd_line_async
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - array_count_i
        - i_panic
        - o_stream_nsend_str
        - pop3c_client_wait_one
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:816,10'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:817,4'
          Dst:             pop3c_client_wait_one
        - Src:             'pop3c-client.c:819,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:822,3'
          Dst:             o_stream_nsend_str
        - Src:             'pop3c-client.c:824,8'
          Dst:             array_append_space_i
    - functionName:    pop3c_client_wait_one
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          228
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - array_count_i
        - i_panic
        - io_loop_create
        - io_loop_destroy
        - io_loop_run
        - io_loop_set_current
        - pop3c_client_async_callback_disconnected
        - pop3c_client_dns_lookup
        - pop3c_client_ioloop_changed
        - pop3c_client_timeout
        - timeout_add
        - timeout_remove
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:289,6'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:290,10'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:291,4'
          Dst:             pop3c_client_async_callback_disconnected
        - Src:             'pop3c-client.c:295,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:297,2'
          Dst:             array_count_i
        - Src:             'pop3c-client.c:297,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:300,11'
          Dst:             io_loop_create
        - Src:             'pop3c-client.c:301,2'
          Dst:             pop3c_client_ioloop_changed
        - Src:             'pop3c-client.c:306,7'
          Dst:             pop3c_client_dns_lookup
        - Src:             'pop3c-client.c:309,16'
          Dst:             timeout_add
        - Src:             'pop3c-client.c:309,16'
          Dst:             pop3c_client_timeout
        - Src:             'pop3c-client.c:316,3'
          Dst:             io_loop_run
        - Src:             'pop3c-client.c:321,3'
          Dst:             timeout_remove
        - Src:             'pop3c-client.c:323,2'
          Dst:             io_loop_set_current
        - Src:             'pop3c-client.c:324,2'
          Dst:             pop3c_client_ioloop_changed
        - Src:             'pop3c-client.c:325,2'
          Dst:             io_loop_set_current
        - Src:             'pop3c-client.c:326,2'
          Dst:             io_loop_destroy
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_client_ioloop_changed
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - io_loop_move_io
        - io_loop_move_timeout
        - o_stream_switch_ioloop
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:224,16'
          Dst:             io_loop_move_timeout
        - Src:             'pop3c-client.c:226,16'
          Dst:             io_loop_move_io
        - Src:             'pop3c-client.c:228,3'
          Dst:             o_stream_switch_ioloop
    - functionName:    pop3c_client_dns_lookup
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          122
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - dns_lookup
        - e_error
        - i_panic
        - net_gethostbyname
        - net_gethosterror
        - pop3c_client_connect_ip
        - pop3c_dns_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:257,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:264,9'
          Dst:             net_gethostbyname
        - Src:             'pop3c-client.c:266,4'
          Dst:             net_gethosterror
        - Src:             'pop3c-client.c:266,4'
          Dst:             e_error
        - Src:             'pop3c-client.c:271,3'
          Dst:             i_panic
        - Src:             'pop3c-client.c:273,3'
          Dst:             pop3c_client_connect_ip
        - Src:             'pop3c-client.c:275,7'
          Dst:             dns_lookup
        - Src:             'pop3c-client.c:275,7'
          Dst:             pop3c_dns_callback
    - functionName:    pop3c_client_cmd_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_unref
        - p_free_internal
        - pop3c_client_cmd_reply
        - pop3c_client_cmd_stream_async
        - pop3c_client_wait_one
        - t_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:874,13'
          Dst:             pop3c_client_cmd_stream_async
        - Src:             'pop3c-client.c:874,13'
          Dst:             pop3c_client_cmd_reply
        - Src:             'pop3c-client.c:877,3'
          Dst:             pop3c_client_wait_one
        - Src:             'pop3c-client.c:878,10'
          Dst:             t_strdup
        - Src:             'pop3c-client.c:879,2'
          Dst:             p_free_internal
        - Src:             'pop3c-client.c:883,2'
          Dst:             i_stream_unref
    - functionName:    pop3c_client_cmd_reply
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:789,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:792,15'
          Dst:             i_strdup
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_client_cmd_line_async_nocb
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pop3c_client_cmd_line_async
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:833,2'
          Dst:             pop3c_client_cmd_line_async
    - functionName:    pop3c_client_cmd_line
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
        - pop3c_client_cmd_line_async
        - pop3c_client_cmd_reply
        - pop3c_client_wait_one
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:801,2'
          Dst:             pop3c_client_cmd_line_async
        - Src:             'pop3c-client.c:801,2'
          Dst:             pop3c_client_cmd_reply
        - Src:             'pop3c-client.c:803,3'
          Dst:             pop3c_client_wait_one
        - Src:             'pop3c-client.c:804,13'
          Dst:             t_strdup
        - Src:             'pop3c-client.c:805,2'
          Dst:             p_free_internal
    - functionName:    pop3c_client_get_capabilities
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop3c_client_is_connected
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop3c_client_login
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:682,3'
          Dst:             i_panic
        - Src:             'pop3c-client.c:685,2'
          Dst:             i_panic
        - Src:             'pop3c-client.c:690,2'
          Dst:             event_want_level
        - Src:             'pop3c-client.c:690,2'
          Dst:             e_debug
        - Src:             'pop3c-client.c:690,2'
          Dst:             event_send_abort
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - pool_unref
        - pop3c_client_disconnect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:216,2'
          Dst:             pop3c_client_disconnect
        - Src:             'pop3c-client.c:217,2'
          Dst:             event_unref
        - Src:             'pop3c-client.c:218,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_client_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          144
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - event_create
        - event_set_forced_debug
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - p_strdup_empty
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-client.c:112,9'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-client.c:113,11'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-client.c:113,11'
          Dst:             p_malloc
        - Src:             'pop3c-client.c:115,18'
          Dst:             event_create
        - Src:             'pop3c-client.c:116,2'
          Dst:             event_set_forced_debug
        - Src:             'pop3c-client.c:119,2'
          Dst:             array_create_i
        - Src:             'pop3c-client.c:122,21'
          Dst:             p_strdup
        - Src:             'pop3c-client.c:124,28'
          Dst:             p_strdup_empty
        - Src:             'pop3c-client.c:125,25'
          Dst:             p_strdup
        - Src:             'pop3c-client.c:126,25'
          Dst:             p_strdup
        - Src:             'pop3c-client.c:128,3'
          Dst:             p_strdup
        - Src:             'pop3c-client.c:129,33'
          Dst:             p_strdup
        - Src:             'pop3c-client.c:130,27'
          Dst:             p_strdup
    - functionName:    pop3c_mail_cache_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_get_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:115,6'
          Dst:             i_stream_get_size
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    pop3c_mail_prefetch_done
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - i_stream_unref
      functionUses:    1
      BranchProfiles:
        - Branch String:   'pop3c-mail.c:128,2'
          Branch Sides:    []
      Callsites:
        - Src:             'pop3c-mail.c:133,3'
          Dst:             i_stream_unref
    - functionName:    pop3c_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - index_mail_get_special
        - pop3c_sync_get_uidls
      functionUses:    0
      BranchProfiles:
        - Branch String:   'pop3c-mail.c:253,2'
          Branch Sides:    []
      Callsites:
        - Src:             'pop3c-mail.c:257,8'
          Dst:             pop3c_sync_get_uidls
        - Src:             'pop3c-mail.c:260,3'
          Dst:             i_panic
        - Src:             'pop3c-mail.c:264,10'
          Dst:             index_mail_get_special
    - functionName:    pop3c_mail_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          370
      EdgeCount:       82
      CyclomaticComplexity: 22
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_set_name
        - index_mail_close_streams
        - index_mail_init_stream
        - mail_storage_set_error
        - mail_stream_access_start
        - pop3c_client_cmd_stream
        - pop3c_client_get_capabilities
        - pop3c_client_is_connected
        - pop3c_client_wait_one
        - pop3c_mail_cache_size
        - str_begins_with
        - strncmp
        - t_strcut
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:187,3'
          Dst:             pop3c_client_wait_one
        - Src:             'pop3c-mail.c:197,10'
          Dst:             i_stream_get_name
        - Src:             'pop3c-mail.c:198,7'
          Dst:             strncmp
        - Src:             'pop3c-mail.c:198,7'
          Dst:             str_begins_with
        - Src:             'pop3c-mail.c:200,14'
          Dst:             strncmp
        - Src:             'pop3c-mail.c:200,14'
          Dst:             str_begins_with
        - Src:             'pop3c-mail.c:203,4'
          Dst:             index_mail_close_streams
        - Src:             'pop3c-mail.c:205,4'
          Dst:             i_panic
        - Src:             'pop3c-mail.c:210,8'
          Dst:             mail_stream_access_start
        - Src:             'pop3c-mail.c:212,10'
          Dst:             pop3c_client_get_capabilities
        - Src:             'pop3c-mail.c:214,10'
          Dst:             t_strdup_printf
        - Src:             'pop3c-mail.c:217,10'
          Dst:             t_strdup_printf
        - Src:             'pop3c-mail.c:219,7'
          Dst:             pop3c_client_cmd_stream
        - Src:             'pop3c-mail.c:222,6'
          Dst:             pop3c_client_is_connected
        - Src:             'pop3c-mail.c:221,4'
          Dst:             mail_storage_set_error
        - Src:             'pop3c-mail.c:227,40'
          Dst:             t_strcut
        - Src:             'pop3c-mail.c:227,3'
          Dst:             i_stream_set_name
        - Src:             'pop3c-mail.c:234,5'
          Dst:             index_mail_close_streams
        - Src:             'pop3c-mail.c:239,4'
          Dst:             pop3c_mail_cache_size
        - Src:             'pop3c-mail.c:244,9'
          Dst:             index_mail_init_stream
    - functionName:    pop3c_mail_get_physical_size
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          193
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - index_mail_get_physical_size
        - mail_get_stream
        - pop3c_sync_get_sizes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:83,6'
          Dst:             index_mail_get_physical_size
        - Src:             'pop3c-mail.c:94,8'
          Dst:             pop3c_sync_get_sizes
        - Src:             'pop3c-mail.c:97,3'
          Dst:             i_panic
        - Src:             'pop3c-mail.c:103,6'
          Dst:             mail_get_stream
        - Src:             'pop3c-mail.c:106,2'
          Dst:             i_panic
    - functionName:    pop3c_mail_get_save_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pop3c_mail_get_received_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:62,7'
          Dst:             pop3c_mail_get_received_date
    - functionName:    pop3c_mail_get_received_date
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - index_mail_get_date
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:52,9'
          Dst:             index_mail_get_date
    - functionName:    pop3c_mail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          153
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_set_name
        - index_mail_prefetch
        - mail_stream_access_start
        - pop3c_client_cmd_stream_async
        - pop3c_client_get_capabilities
        - pop3c_mail_prefetch_done
        - t_strcut
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:150,6'
          Dst:             mail_stream_access_start
        - Src:             'pop3c-mail.c:151,10'
          Dst:             pop3c_client_get_capabilities
        - Src:             'pop3c-mail.c:155,10'
          Dst:             t_strdup_printf
        - Src:             'pop3c-mail.c:157,10'
          Dst:             t_strdup_printf
        - Src:             'pop3c-mail.c:161,4'
          Dst:             pop3c_client_cmd_stream_async
        - Src:             'pop3c-mail.c:161,4'
          Dst:             pop3c_mail_prefetch_done
        - Src:             'pop3c-mail.c:163,45'
          Dst:             t_strcut
        - Src:             'pop3c-mail.c:163,3'
          Dst:             i_stream_set_name
        - Src:             'pop3c-mail.c:166,9'
          Dst:             index_mail_prefetch
    - functionName:    pop3c_mail_close
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_unref
        - index_mail_close
        - pop3c_client_wait_one
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:33,3'
          Dst:             pop3c_client_wait_one
        - Src:             'pop3c-mail.c:34,2'
          Dst:             i_stream_unref
        - Src:             'pop3c-mail.c:35,2'
          Dst:             index_mail_close
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/../../../../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:    pop3c_mail_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - index_mail_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-mail.c:19,9'
          Dst:             pool_alloconly_create
        - Src:             'pop3c-mail.c:20,9'
          Dst:             malloc_multiply_check
        - Src:             'pop3c-mail.c:20,9'
          Dst:             p_malloc
        - Src:             'pop3c-mail.c:22,2'
          Dst:             index_mail_init
    - functionName:    pop3c_settings_parse_features
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - settings_boollist_get
        - strcasecmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-settings.c:68,8'
          Dst:             settings_boollist_get
        - Src:             'pop3c-settings.c:72,8'
          Dst:             strcasecmp
        - Src:             'pop3c-settings.c:78,15'
          Dst:             t_strdup_printf
    - functionName:    pop3c_settings_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/pop3c/pop3c-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pop3c_settings_parse_features
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pop3c-settings.c:92,6'
          Dst:             pop3c_settings_parse_features
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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-storage/index/dbox-single/../../../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_file_copy_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          278
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - fs_copy
        - fs_file_deinit
        - fs_file_init
        - fs_file_last_error
        - fs_get_driver
        - guid_generate
        - i_panic
        - index_attachment_parse_extrefs
        - mailbox_set_critical
        - p_strconcat
        - pool_alloconly_create
        - pool_unref
        - sdbox_file_attachment_relpath
        - sdbox_file_get_attachments
        - strcmp
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-copy.c:30,6'
          Dst:             strcmp
        - Src:             'sdbox-copy.c:32,13'
          Dst:             fs_get_driver
        - Src:             'sdbox-copy.c:33,6'
          Dst:             fs_get_driver
        - Src:             'sdbox-copy.c:32,6'
          Dst:             strcmp
        - Src:             'sdbox-copy.c:34,6'
          Dst:             strcmp
        - Src:             'sdbox-copy.c:41,13'
          Dst:             sdbox_file_get_attachments
        - Src:             'sdbox-copy.c:45,9'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-copy.c:46,2'
          Dst:             array_create_i
        - Src:             'sdbox-copy.c:47,7'
          Dst:             index_attachment_parse_extrefs
        - Src:             'sdbox-copy.c:48,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-copy.c:51,3'
          Dst:             pool_unref
        - Src:             'sdbox-copy.c:56,3'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-copy.c:57,2'
          Dst:             array_count_i
        - Src:             'sdbox-copy.c:57,2'
          Dst:             array_create_i
        - Src:             'sdbox-copy.c:61,34'
          Dst:             t_push
        - Src:             'sdbox-copy.c:63,4'
          Dst:             sdbox_file_attachment_relpath
        - Src:             'sdbox-copy.c:62,9'
          Dst:             t_strdup_printf
        - Src:             'sdbox-copy.c:66,9'
          Dst:             guid_generate
        - Src:             'sdbox-copy.c:64,18'
          Dst:             p_strconcat
        - Src:             'sdbox-copy.c:67,10'
          Dst:             t_strdup_printf
        - Src:             'sdbox-copy.c:73,16'
          Dst:             fs_file_init
        - Src:             'sdbox-copy.c:75,17'
          Dst:             fs_file_init
        - Src:             'sdbox-copy.c:77,7'
          Dst:             fs_copy
        - Src:             'sdbox-copy.c:79,5'
          Dst:             fs_file_last_error
        - Src:             'sdbox-copy.c:78,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-copy.c:82,4'
          Dst:             array_append_i
        - Src:             'sdbox-copy.c:85,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-copy.c:86,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-copy.c:87,4'
          Dst:             t_pop
        - Src:             'sdbox-copy.c:87,4'
          Dst:             i_panic
        - Src:             'sdbox-copy.c:88,2'
          Dst:             pool_unref
    - functionName:    sdbox_copy_hardlink
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          252
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - dbox_file_unref
        - dbox_save_add_to_index
        - index_copy_cache_fields
        - mail_set_critical
        - mail_set_seq_saving
        - nfs_safe_link
        - sdbox_file_copy_attachments
        - sdbox_file_init
        - sdbox_file_unlink_aborted_save
        - sdbox_save_add_file
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-copy.c:102,6'
          Dst:             strcmp
        - Src:             'sdbox-copy.c:109,13'
          Dst:             sdbox_file_init
        - Src:             'sdbox-copy.c:110,14'
          Dst:             sdbox_file_init
        - Src:             'sdbox-copy.c:116,8'
          Dst:             nfs_safe_link
        - Src:             'sdbox-copy.c:117,17'
          Dst:             __errno_location
        - Src:             'sdbox-copy.c:123,9'
          Dst:             nfs_safe_link
        - Src:             'sdbox-copy.c:126,7'
          Dst:             __errno_location
        - Src:             'sdbox-copy.c:126,7'
          Dst:             __errno_location
        - Src:             'sdbox-copy.c:126,7'
          Dst:             __errno_location
        - Src:             'sdbox-copy.c:128,12'
          Dst:             __errno_location
        - Src:             'sdbox-copy.c:134,4'
          Dst:             mail_set_critical
        - Src:             'sdbox-copy.c:137,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-copy.c:138,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-copy.c:142,8'
          Dst:             sdbox_file_copy_attachments
        - Src:             'sdbox-copy.c:145,9'
          Dst:             sdbox_file_unlink_aborted_save
        - Src:             'sdbox-copy.c:146,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-copy.c:147,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-copy.c:152,2'
          Dst:             dbox_save_add_to_index
        - Src:             'sdbox-copy.c:153,2'
          Dst:             index_copy_cache_fields
        - Src:             'sdbox-copy.c:155,2'
          Dst:             sdbox_save_add_file
        - Src:             'sdbox-copy.c:156,2'
          Dst:             mail_set_seq_saving
        - Src:             'sdbox-copy.c:157,2'
          Dst:             dbox_file_unref
    - functionName:    sdbox_copy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - index_save_context_free
        - mail_storage_copy
        - mail_storage_copy_can_use_hardlink
        - sdbox_copy_hardlink
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-copy.c:168,2'
          Dst:             i_panic
        - Src:             'sdbox-copy.c:171,6'
          Dst:             mail_storage_copy_can_use_hardlink
        - Src:             'sdbox-copy.c:173,3'
          Dst:             t_push
        - Src:             'sdbox-copy.c:174,10'
          Dst:             sdbox_copy_hardlink
        - Src:             'sdbox-copy.c:175,5'
          Dst:             t_pop
        - Src:             'sdbox-copy.c:175,5'
          Dst:             i_panic
        - Src:             'sdbox-copy.c:178,4'
          Dst:             index_save_context_free
        - Src:             'sdbox-copy.c:184,9'
          Dst:             mail_storage_copy
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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_memcpy
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_unlink_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - index_attachment_delete
        - sdbox_file_attachment_relpath
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:413,33'
          Dst:             t_push
        - Src:             'sdbox-file.c:414,10'
          Dst:             sdbox_file_attachment_relpath
        - Src:             'sdbox-file.c:415,7'
          Dst:             index_attachment_delete
        - Src:             'sdbox-file.c:418,4'
          Dst:             t_pop
        - Src:             'sdbox-file.c:418,4'
          Dst:             i_panic
    - functionName:    sdbox_file_attachment_relpath
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - guid_128_to_string
        - mailbox_set_critical
        - strchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:110,6'
          Dst:             strchr
        - Src:             'sdbox-file.c:112,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:115,7'
          Dst:             strchr
        - Src:             'sdbox-file.c:118,26'
          Dst:             t_strdup_until
        - Src:             'sdbox-file.c:119,4'
          Dst:             guid_128_to_string
        - Src:             'sdbox-file.c:117,9'
          Dst:             t_strdup_printf
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:             '../../../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_file_unlink_with_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_create_i
        - dbox_file_unlink
        - e_warning
        - index_attachment_parse_extrefs
        - pool_alloconly_create
        - pool_unref
        - sdbox_file_get_attachments
        - sdbox_unlink_attachments
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:430,8'
          Dst:             sdbox_file_get_attachments
        - Src:             'sdbox-file.c:435,10'
          Dst:             dbox_file_unlink
        - Src:             'sdbox-file.c:438,9'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-file.c:439,2'
          Dst:             array_create_i
        - Src:             'sdbox-file.c:440,7'
          Dst:             index_attachment_parse_extrefs
        - Src:             'sdbox-file.c:441,3'
          Dst:             e_warning
        - Src:             'sdbox-file.c:443,3'
          Dst:             array_clear_i
        - Src:             'sdbox-file.c:448,13'
          Dst:             dbox_file_unlink
        - Src:             'sdbox-file.c:449,9'
          Dst:             sdbox_unlink_attachments
        - Src:             'sdbox-file.c:450,2'
          Dst:             pool_unref
    - functionName:    sdbox_file_get_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_metadata_get
        - dbox_file_metadata_read
        - dbox_file_open
        - dbox_file_seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:82,8'
          Dst:             dbox_file_open
        - Src:             'sdbox-file.c:86,14'
          Dst:             dbox_file_seek
        - Src:             'sdbox-file.c:87,10'
          Dst:             dbox_file_metadata_read
        - Src:             'sdbox-file.c:95,10'
          Dst:             dbox_file_metadata_get
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_file_move
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          427
      EdgeCount:       89
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - close
        - dbox_file_close
        - dbox_file_open
        - dbox_file_set_syscall_error
        - dbox_generate_tmp_filename
        - fdatasync_path
        - fsync
        - i_panic
        - i_stream_seek
        - i_unlink
        - i_unlink_if_exists
        - mail_storage_set_critical
        - o_stream_create_fd_file
        - o_stream_finish
        - o_stream_get_error
        - o_stream_nsend_istream
        - o_stream_unref
        - rename
        - stat
        - strrchr
        - t_strdup_printf
        - t_strdup_until
        - unlink
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:303,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:310,6'
          Dst:             stat
        - Src:             'sdbox-file.c:310,39'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:317,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:319,6'
          Dst:             strrchr
        - Src:             'sdbox-file.c:320,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:321,13'
          Dst:             t_strdup_until
        - Src:             'sdbox-file.c:323,9'
          Dst:             dbox_generate_tmp_filename
        - Src:             'sdbox-file.c:322,14'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:331,11'
          Dst:             o_stream_create_fd_file
        - Src:             'sdbox-file.c:332,2'
          Dst:             i_stream_seek
        - Src:             'sdbox-file.c:333,2'
          Dst:             o_stream_nsend_istream
        - Src:             'sdbox-file.c:334,6'
          Dst:             o_stream_finish
        - Src:             'sdbox-file.c:336,15'
          Dst:             o_stream_get_error
        - Src:             'sdbox-file.c:335,3'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:339,2'
          Dst:             o_stream_unref
        - Src:             'sdbox-file.c:342,7'
          Dst:             fsync
        - Src:             'sdbox-file.c:343,4'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:348,6'
          Dst:             close
        - Src:             'sdbox-file.c:349,3'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:354,3'
          Dst:             i_unlink
        - Src:             'sdbox-file.c:361,6'
          Dst:             utime
        - Src:             'sdbox-file.c:362,3'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:369,6'
          Dst:             rename
        - Src:             'sdbox-file.c:370,3'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:372,3'
          Dst:             i_unlink_if_exists
        - Src:             'sdbox-file.c:376,7'
          Dst:             fdatasync_path
        - Src:             'sdbox-file.c:377,4'
          Dst:             mail_storage_set_critical
        - Src:             'sdbox-file.c:379,4'
          Dst:             i_unlink
        - Src:             'sdbox-file.c:383,6'
          Dst:             unlink
        - Src:             'sdbox-file.c:384,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'sdbox-file.c:385,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:385,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:385,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:387,4'
          Dst:             i_unlink
        - Src:             'sdbox-file.c:395,2'
          Dst:             dbox_file_close
        - Src:             'sdbox-file.c:396,6'
          Dst:             dbox_file_open
        - Src:             'sdbox-file.c:397,3'
          Dst:             mail_storage_set_critical
    - functionName:    sdbox_file_create_fd
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          217
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - mailbox_get_permissions
        - mailbox_set_critical
        - mkdir_parents_chgrp
        - open
        - sdbox_set_mailbox_corrupted
        - strrchr
        - t_strdup_printf
        - t_strdup_until
        - umask
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:244,43'
          Dst:             mailbox_get_permissions
        - Src:             'sdbox-file.c:249,13'
          Dst:             umask
        - Src:             'sdbox-file.c:250,7'
          Dst:             open
        - Src:             'sdbox-file.c:251,2'
          Dst:             umask
        - Src:             'sdbox-file.c:252,18'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:253,11'
          Dst:             strrchr
        - Src:             'sdbox-file.c:254,9'
          Dst:             t_strdup_until
        - Src:             'sdbox-file.c:255,7'
          Dst:             mkdir_parents_chgrp
        - Src:             'sdbox-file.c:258,6'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:259,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:264,14'
          Dst:             umask
        - Src:             'sdbox-file.c:265,8'
          Dst:             open
        - Src:             'sdbox-file.c:266,3'
          Dst:             umask
        - Src:             'sdbox-file.c:269,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:270,37'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:270,4'
          Dst:             sdbox_set_mailbox_corrupted
        - Src:             'sdbox-file.c:273,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:277,13'
          Dst:             fchown
        - Src:             'sdbox-file.c:278,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:280,5'
          Dst:             eperm_error_get_chgrp
        - Src:             'sdbox-file.c:279,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:284,4'
          Dst:             mailbox_set_critical
    - functionName:    sdbox_file_unlink_aborted_save_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          189
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fs_delete
        - fs_file_deinit
        - fs_file_init
        - fs_file_last_error
        - i_memcpy
        - i_panic
        - mailbox_set_critical
        - sdbox_file_attachment_relpath
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:194,2'
          Dst:             i_memcpy
        - Src:             'sdbox-file.c:194,56'
          Dst:             t_push
        - Src:             'sdbox-file.c:199,10'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:201,13'
          Dst:             fs_file_init
        - Src:             'sdbox-file.c:202,7'
          Dst:             fs_delete
        - Src:             'sdbox-file.c:203,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:205,11'
          Dst:             fs_file_last_error
        - Src:             'sdbox-file.c:204,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:208,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-file.c:211,5'
          Dst:             sdbox_file_attachment_relpath
        - Src:             'sdbox-file.c:210,10'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:212,13'
          Dst:             fs_file_init
        - Src:             'sdbox-file.c:213,7'
          Dst:             fs_delete
        - Src:             'sdbox-file.c:214,7'
          Dst:             __errno_location
        - Src:             'sdbox-file.c:216,11'
          Dst:             fs_file_last_error
        - Src:             'sdbox-file.c:215,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:219,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-file.c:220,4'
          Dst:             t_pop
        - Src:             'sdbox-file.c:220,4'
          Dst:             i_panic
    - functionName:    sdbox_file_unlink_aborted_save
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - mailbox_set_critical
        - sdbox_file_unlink_aborted_save_attachments
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:228,6'
          Dst:             unlink
        - Src:             'sdbox-file.c:229,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:233,6'
          Dst:             array_is_created_i
        - Src:             'sdbox-file.c:234,7'
          Dst:             sdbox_file_unlink_aborted_save_attachments
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_file_rename_attachments
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          152
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - fs_file_deinit
        - fs_file_init
        - fs_file_last_error
        - fs_rename
        - i_memcpy
        - i_panic
        - mailbox_set_critical
        - sdbox_file_attachment_relpath
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:130,2'
          Dst:             i_memcpy
        - Src:             'sdbox-file.c:130,52'
          Dst:             t_push
        - Src:             'sdbox-file.c:131,9'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:133,5'
          Dst:             sdbox_file_attachment_relpath
        - Src:             'sdbox-file.c:132,10'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:134,14'
          Dst:             fs_file_init
        - Src:             'sdbox-file.c:136,15'
          Dst:             fs_file_init
        - Src:             'sdbox-file.c:138,7'
          Dst:             fs_rename
        - Src:             'sdbox-file.c:140,5'
          Dst:             fs_file_last_error
        - Src:             'sdbox-file.c:139,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:143,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-file.c:144,3'
          Dst:             fs_file_deinit
        - Src:             'sdbox-file.c:145,4'
          Dst:             t_pop
        - Src:             'sdbox-file.c:145,4'
          Dst:             i_panic
    - functionName:    sdbox_file_assign_uid
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          160
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - i_panic
        - mailbox_set_critical
        - rename
        - sdbox_file_init_paths
        - sdbox_file_rename_attachments
        - sdbox_set_mailbox_corrupted
        - stat
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:154,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:155,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:158,6'
          Dst:             strrchr
        - Src:             'sdbox-file.c:159,2'
          Dst:             i_panic
        - Src:             'sdbox-file.c:160,8'
          Dst:             t_strdup_until
        - Src:             'sdbox-file.c:162,14'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:163,13'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:165,6'
          Dst:             stat
        - Src:             'sdbox-file.c:166,49'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:166,3'
          Dst:             sdbox_set_mailbox_corrupted
        - Src:             'sdbox-file.c:170,6'
          Dst:             rename
        - Src:             'sdbox-file.c:171,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-file.c:176,2'
          Dst:             sdbox_file_init_paths
        - Src:             'sdbox-file.c:179,6'
          Dst:             array_is_created_i
        - Src:             'sdbox-file.c:180,7'
          Dst:             sdbox_file_rename_attachments
    - functionName:    sdbox_file_init_paths
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup_printf
        - mailbox_get_path
        - mailbox_get_path_to
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:23,2'
          Dst:             p_free_internal
        - Src:             'sdbox-file.c:24,2'
          Dst:             p_free_internal
        - Src:             'sdbox-file.c:26,28'
          Dst:             mailbox_get_path
        - Src:             'sdbox-file.c:26,3'
          Dst:             i_strdup_printf
        - Src:             'sdbox-file.c:29,6'
          Dst:             mailbox_get_path_to
        - Src:             'sdbox-file.c:31,25'
          Dst:             i_strdup_printf
    - functionName:    sdbox_file_free
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_file_free
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:69,2'
          Dst:             pool_unref
        - Src:             'sdbox-file.c:70,2'
          Dst:             dbox_file_free
    - functionName:    sdbox_file_create
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sdbox_file_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:59,9'
          Dst:             sdbox_file_init
    - functionName:    sdbox_file_init
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_file_init
        - dbox_generate_tmp_filename
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - sdbox_file_init_paths
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-file.c:39,9'
          Dst:             malloc_multiply_check
        - Src:             'sdbox-file.c:39,9'
          Dst:             p_malloc
        - Src:             'sdbox-file.c:42,2'
          Dst:             t_push
        - Src:             'sdbox-file.c:44,12'
          Dst:             t_strdup_printf
        - Src:             'sdbox-file.c:45,4'
          Dst:             sdbox_file_init_paths
        - Src:             'sdbox-file.c:48,32'
          Dst:             dbox_generate_tmp_filename
        - Src:             'sdbox-file.c:48,4'
          Dst:             sdbox_file_init_paths
        - Src:             'sdbox-file.c:50,4'
          Dst:             t_pop
        - Src:             'sdbox-file.c:50,4'
          Dst:             i_panic
        - Src:             'sdbox-file.c:51,2'
          Dst:             dbox_file_init
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_mail_get_special
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          212
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dbox_file_stat
        - dbox_header_have_flag
        - dbox_mail_get_special
        - gnu_dev_major
        - gnu_dev_minor
        - mail_event
        - mail_set_expunged
        - p_strdup_printf
        - sdbox_mail_file_set
      functionUses:    0
      BranchProfiles:
        - Branch String:   'sdbox-mail.c:67,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sdbox-mail.c:69,7'
          Dst:             sdbox_mail_file_set
        - Src:             'sdbox-mail.c:74,8'
          Dst:             mail_event
        - Src:             'sdbox-mail.c:73,7'
          Dst:             dbox_file_stat
        - Src:             'sdbox-mail.c:75,8'
          Dst:             __errno_location
        - Src:             'sdbox-mail.c:76,5'
          Dst:             mail_set_expunged
        - Src:             'sdbox-mail.c:79,14'
          Dst:             p_strdup_printf
        - Src:             'sdbox-mail.c:83,7'
          Dst:             sdbox_mail_file_set
        - Src:             'sdbox-mail.c:88,8'
          Dst:             mail_event
        - Src:             'sdbox-mail.c:87,7'
          Dst:             dbox_file_stat
        - Src:             'sdbox-mail.c:89,8'
          Dst:             __errno_location
        - Src:             'sdbox-mail.c:90,5'
          Dst:             mail_set_expunged
        - Src:             'sdbox-mail.c:95,9'
          Dst:             gnu_dev_major
        - Src:             'sdbox-mail.c:95,27'
          Dst:             gnu_dev_minor
        - Src:             'sdbox-mail.c:93,14'
          Dst:             p_strdup_printf
        - Src:             'sdbox-mail.c:99,8'
          Dst:             dbox_header_have_flag
        - Src:             'sdbox-mail.c:107,8'
          Dst:             dbox_header_have_flag
        - Src:             'sdbox-mail.c:117,9'
          Dst:             dbox_mail_get_special
    - functionName:    sdbox_mail_file_set
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          100
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_file_open
        - sdbox_file_init
        - sdbox_save_file_get_file
        - sdbox_set_mailbox_corrupted
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-mail.c:39,21'
          Dst:             sdbox_file_init
        - Src:             'sdbox-mail.c:44,4'
          Dst:             sdbox_save_file_get_file
        - Src:             'sdbox-mail.c:49,9'
          Dst:             dbox_file_open
        - Src:             'sdbox-mail.c:51,4'
          Dst:             sdbox_set_mailbox_corrupted
    - functionName:    sdbox_mail_set_expunged
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-mail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mail_index_is_expunged
        - mail_index_refresh
        - mail_set_expunged
        - sdbox_set_mailbox_corrupted
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-mail.c:18,2'
          Dst:             mail_index_refresh
        - Src:             'sdbox-mail.c:19,6'
          Dst:             mail_index_is_expunged
        - Src:             'sdbox-mail.c:20,3'
          Dst:             mail_set_expunged
        - Src:             'sdbox-mail.c:24,42'
          Dst:             t_strdup_printf
        - Src:             'sdbox-mail.c:24,2'
          Dst:             sdbox_set_mailbox_corrupted
    - functionName:    sdbox_mail_open
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-mail.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_file_open
        - mail_stream_access_start
        - sdbox_mail_file_set
        - sdbox_mail_set_expunged
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-mail.c:127,7'
          Dst:             mail_stream_access_start
        - Src:             'sdbox-mail.c:130,8'
          Dst:             sdbox_mail_file_set
        - Src:             'sdbox-mail.c:136,7'
          Dst:             dbox_file_open
        - Src:             'sdbox-mail.c:139,4'
          Dst:             sdbox_mail_set_expunged
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    dbox_save_mail_write_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          169
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - dbox_file_set_syscall_error
        - dbox_msg_header_fill
        - dbox_save_write_metadata
        - i_panic
        - index_attachment_save_get_extrefs
        - o_stream_pwrite
        - p_strdup
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:136,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:141,2'
          Dst:             dbox_save_write_metadata
        - Src:             'sdbox-save.c:143,2'
          Dst:             dbox_msg_header_fill
        - Src:             'sdbox-save.c:144,6'
          Dst:             o_stream_pwrite
        - Src:             'sdbox-save.c:147,3'
          Dst:             dbox_file_set_syscall_error
        - Src:             'sdbox-save.c:153,16'
          Dst:             index_attachment_save_get_extrefs
        - Src:             'sdbox-save.c:155,13'
          Dst:             array_get_i
        - Src:             'sdbox-save.c:162,4'
          Dst:             pool_alloconly_create
        - Src:             'sdbox-save.c:163,3'
          Dst:             array_create_i
        - Src:             'sdbox-save.c:166,23'
          Dst:             p_strdup
        - Src:             'sdbox-save.c:168,4'
          Dst:             array_append_i
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:             '../../../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    time_to_uint32_trunc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    dbox_save_unref_files
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_get_modifiable_i
        - dbox_file_unref
        - sdbox_file_unlink_aborted_save
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:268,10'
          Dst:             array_get_modifiable_i
        - Src:             'sdbox-save.c:274,10'
          Dst:             sdbox_file_unlink_aborted_save
        - Src:             'sdbox-save.c:276,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-save.c:278,2'
          Dst:             array_free_i
    - functionName:    sdbox_transaction_save_commit_post
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - dbox_save_unref_files
        - fdatasync_path
        - i_panic
        - mail_index_sync_set_commit_result
        - mail_set_critical
        - mailbox_get_path
        - p_free_internal
        - sdbox_sync_finish
        - sdbox_transaction_save_rollback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:325,6'
          Dst:             array_count_i
        - Src:             'sdbox-save.c:326,3'
          Dst:             sdbox_transaction_save_rollback
        - Src:             'sdbox-save.c:330,2'
          Dst:             mail_index_sync_set_commit_result
        - Src:             'sdbox-save.c:333,6'
          Dst:             sdbox_sync_finish
        - Src:             'sdbox-save.c:337,26'
          Dst:             mailbox_get_path
        - Src:             'sdbox-save.c:339,7'
          Dst:             fdatasync_path
        - Src:             'sdbox-save.c:340,4'
          Dst:             mail_set_critical
        - Src:             'sdbox-save.c:344,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:345,2'
          Dst:             dbox_save_unref_files
        - Src:             'sdbox-save.c:346,2'
          Dst:             p_free_internal
    - functionName:    sdbox_transaction_save_rollback
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_save_unref_files
        - p_free_internal
        - sdbox_save_cancel
        - sdbox_sync_finish
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:355,3'
          Dst:             sdbox_save_cancel
        - Src:             'sdbox-save.c:356,2'
          Dst:             dbox_save_unref_files
        - Src:             'sdbox-save.c:359,9'
          Dst:             sdbox_sync_finish
        - Src:             'sdbox-save.c:360,2'
          Dst:             p_free_internal
    - functionName:    sdbox_save_cancel
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sdbox_save_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:231,8'
          Dst:             sdbox_save_finish
    - functionName:    sdbox_save_finish
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dbox_save_finish_write
        - index_save_context_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:221,8'
          Dst:             dbox_save_finish_write
        - Src:             'sdbox-save.c:222,2'
          Dst:             index_save_context_free
    - functionName:    dbox_save_finish_write
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          216
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_modifiable_i
        - dbox_file_append_checkpoint
        - dbox_file_append_commit
        - dbox_file_append_rollback
        - dbox_file_close
        - dbox_file_unlink
        - dbox_file_unref
        - dbox_save_end
        - dbox_save_mail_write_metadata
        - i_panic
        - i_stream_unref
        - index_mail_cache_add
        - index_storage_save_abort_last
        - t_pop
        - t_push
        - time_to_uint32_trunc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:186,16'
          Dst:             time_to_uint32_trunc
        - Src:             'sdbox-save.c:188,3'
          Dst:             index_mail_cache_add
        - Src:             'sdbox-save.c:190,2'
          Dst:             dbox_save_end
        - Src:             'sdbox-save.c:192,10'
          Dst:             array_count_i
        - Src:             'sdbox-save.c:192,10'
          Dst:             array_idx_modifiable_i
        - Src:             'sdbox-save.c:193,24'
          Dst:             t_push
        - Src:             'sdbox-save.c:194,7'
          Dst:             dbox_save_mail_write_metadata
        - Src:             'sdbox-save.c:196,4'
          Dst:             t_pop
        - Src:             'sdbox-save.c:196,4'
          Dst:             i_panic
        - Src:             'sdbox-save.c:199,3'
          Dst:             index_storage_save_abort_last
        - Src:             'sdbox-save.c:200,3'
          Dst:             dbox_file_append_rollback
        - Src:             'sdbox-save.c:201,3'
          Dst:             dbox_file_unlink
        - Src:             'sdbox-save.c:202,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-save.c:203,3'
          Dst:             array_count_i
        - Src:             'sdbox-save.c:203,3'
          Dst:             array_delete_i
        - Src:             'sdbox-save.c:205,3'
          Dst:             dbox_file_append_checkpoint
        - Src:             'sdbox-save.c:206,7'
          Dst:             dbox_file_append_commit
        - Src:             'sdbox-save.c:208,3'
          Dst:             dbox_file_close
        - Src:             'sdbox-save.c:211,2'
          Dst:             i_stream_unref
    - functionName:    dbox_save_assign_uids
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          180
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - i_panic
        - index_pop3_uidl_set_max_uid
        - sdbox_file_assign_uid
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:243,2'
          Dst:             seq_range_array_iter_init
        - Src:             'sdbox-save.c:244,10'
          Dst:             array_get_i
        - Src:             'sdbox-save.c:245,42'
          Dst:             t_push
        - Src:             'sdbox-save.c:248,15'
          Dst:             seq_range_array_iter_nth
        - Src:             'sdbox-save.c:249,3'
          Dst:             i_panic
        - Src:             'sdbox-save.c:250,9'
          Dst:             sdbox_file_assign_uid
        - Src:             'sdbox-save.c:252,4'
          Dst:             index_pop3_uidl_set_max_uid
        - Src:             'sdbox-save.c:255,4'
          Dst:             t_pop
        - Src:             'sdbox-save.c:255,4'
          Dst:             i_panic
        - Src:             'sdbox-save.c:259,2'
          Dst:             seq_range_array_iter_nth
        - Src:             'sdbox-save.c:259,2'
          Dst:             i_panic
    - functionName:    sdbox_transaction_save_commit_pre
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - dbox_save_assign_uids
        - dbox_save_update_header_flags
        - i_panic
        - mail_index_append_finish_uids
        - mail_index_get_header
        - sdbox_sync_begin
        - sdbox_transaction_save_rollback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:287,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:289,6'
          Dst:             array_count_i
        - Src:             'sdbox-save.c:294,6'
          Dst:             sdbox_sync_begin
        - Src:             'sdbox-save.c:296,3'
          Dst:             sdbox_transaction_save_rollback
        - Src:             'sdbox-save.c:301,2'
          Dst:             dbox_save_update_header_flags
        - Src:             'sdbox-save.c:305,8'
          Dst:             mail_index_get_header
        - Src:             'sdbox-save.c:306,2'
          Dst:             mail_index_append_finish_uids
        - Src:             'sdbox-save.c:308,6'
          Dst:             dbox_save_assign_uids
        - Src:             'sdbox-save.c:309,3'
          Dst:             sdbox_transaction_save_rollback
    - functionName:    sdbox_save_begin
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          105
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_file_append_init
        - dbox_file_append_rollback
        - dbox_file_get_append_stream
        - dbox_file_unref
        - dbox_save_begin
        - i_panic
        - sdbox_file_create
        - sdbox_save_add_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:107,9'
          Dst:             sdbox_file_create
        - Src:             'sdbox-save.c:108,20'
          Dst:             dbox_file_append_init
        - Src:             'sdbox-save.c:109,8'
          Dst:             dbox_file_get_append_stream
        - Src:             'sdbox-save.c:112,3'
          Dst:             i_panic
        - Src:             'sdbox-save.c:113,3'
          Dst:             dbox_file_append_rollback
        - Src:             'sdbox-save.c:114,3'
          Dst:             dbox_file_unref
        - Src:             'sdbox-save.c:119,2'
          Dst:             dbox_save_begin
        - Src:             'sdbox-save.c:121,2'
          Dst:             sdbox_save_add_file
    - functionName:    sdbox_save_add_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_get_i
        - dbox_file_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:92,10'
          Dst:             array_get_i
        - Src:             'sdbox-save.c:96,3'
          Dst:             dbox_file_close
        - Src:             'sdbox-save.c:98,2'
          Dst:             array_append_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_save_alloc
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          125
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:62,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:74,8'
          Dst:             malloc_multiply_check
        - Src:             'sdbox-save.c:74,8'
          Dst:             p_malloc
        - Src:             'sdbox-save.c:78,2'
          Dst:             array_create_i
    - functionName:    sdbox_save_file_get_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-save.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          122
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-save.c:45,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:47,10'
          Dst:             array_get_i
        - Src:             'sdbox-save.c:48,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:49,2'
          Dst:             i_panic
        - Src:             'sdbox-save.c:52,2'
          Dst:             i_panic
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/../../../../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:    sdbox_sync_add_file
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          156
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - dbox_file_unref
        - e_warning
        - i_panic
        - index_rebuild_index_metadata
        - mail_index_append
        - mail_index_lookup_seq
        - sdbox_file_init
        - str_begins
        - str_begins_builtin_success
        - str_to_uint32
        - strncmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:36,7'
          Dst:             str_begins
        - Src:             'sdbox-sync-rebuild.c:36,7'
          Dst:             strncmp
        - Src:             'sdbox-sync-rebuild.c:36,7'
          Dst:             str_begins_builtin_success
        - Src:             'sdbox-sync-rebuild.c:39,6'
          Dst:             str_to_uint32
        - Src:             'sdbox-sync-rebuild.c:40,3'
          Dst:             e_warning
        - Src:             'sdbox-sync-rebuild.c:44,9'
          Dst:             sdbox_file_init
        - Src:             'sdbox-sync-rebuild.c:50,7'
          Dst:             mail_index_lookup_seq
        - Src:             'sdbox-sync-rebuild.c:51,3'
          Dst:             mail_index_append
        - Src:             'sdbox-sync-rebuild.c:52,3'
          Dst:             t_push
        - Src:             'sdbox-sync-rebuild.c:53,4'
          Dst:             index_rebuild_index_metadata
        - Src:             'sdbox-sync-rebuild.c:54,5'
          Dst:             t_pop
        - Src:             'sdbox-sync-rebuild.c:54,5'
          Dst:             i_panic
        - Src:             'sdbox-sync-rebuild.c:56,2'
          Dst:             dbox_file_unref
    - functionName:    sdbox_sync_update_header
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - guid_128_generate
        - guid_128_is_empty
        - mail_index_set_ext_init_data
        - sdbox_read_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:99,6'
          Dst:             sdbox_read_header
        - Src:             'sdbox-sync-rebuild.c:101,6'
          Dst:             guid_128_is_empty
        - Src:             'sdbox-sync-rebuild.c:102,3'
          Dst:             guid_128_generate
        - Src:             'sdbox-sync-rebuild.c:106,2'
          Dst:             mail_index_set_ext_init_data
    - functionName:    sdbox_sync_index_rebuild_dir
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - closedir
        - index_mailbox_fix_inconsistent_existence
        - mailbox_set_critical
        - opendir
        - readdir
        - sdbox_sync_add_file
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:67,8'
          Dst:             opendir
        - Src:             'sdbox-sync-rebuild.c:69,7'
          Dst:             __errno_location
        - Src:             'sdbox-sync-rebuild.c:74,11'
          Dst:             index_mailbox_fix_inconsistent_existence
        - Src:             'sdbox-sync-rebuild.c:76,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync-rebuild.c:79,7'
          Dst:             __errno_location
        - Src:             'sdbox-sync-rebuild.c:79,23'
          Dst:             readdir
        - Src:             'sdbox-sync-rebuild.c:80,3'
          Dst:             sdbox_sync_add_file
        - Src:             'sdbox-sync-rebuild.c:79,46'
          Dst:             __errno_location
        - Src:             'sdbox-sync-rebuild.c:81,6'
          Dst:             __errno_location
        - Src:             'sdbox-sync-rebuild.c:82,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync-rebuild.c:86,6'
          Dst:             closedir
        - Src:             'sdbox-sync-rebuild.c:87,3'
          Dst:             mailbox_set_critical
    - functionName:    sdbox_sync_set_uidvalidity
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dbox_get_uidvalidity_next
        - mail_index_get_header
        - mail_index_update_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:18,17'
          Dst:             mail_index_get_header
        - Src:             'sdbox-sync-rebuild.c:20,18'
          Dst:             dbox_get_uidvalidity_next
        - Src:             'sdbox-sync-rebuild.c:22,2'
          Dst:             mail_index_update_header
    - functionName:    sdbox_sync_index_rebuild_singles
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mail_index_transaction_open_updated_view
        - mail_index_view_close
        - mailbox_get_path
        - mailbox_get_path_to
        - mailbox_set_critical
        - sdbox_sync_index_rebuild_dir
        - sdbox_sync_set_uidvalidity
        - sdbox_sync_update_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:116,9'
          Dst:             mailbox_get_path
        - Src:             'sdbox-sync-rebuild.c:117,6'
          Dst:             mailbox_get_path_to
        - Src:             'sdbox-sync-rebuild.c:122,3'
          Dst:             mail_index_transaction_open_updated_view
        - Src:             'sdbox-sync-rebuild.c:123,2'
          Dst:             sdbox_sync_set_uidvalidity
        - Src:             'sdbox-sync-rebuild.c:124,6'
          Dst:             sdbox_sync_index_rebuild_dir
        - Src:             'sdbox-sync-rebuild.c:125,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync-rebuild.c:128,7'
          Dst:             sdbox_sync_index_rebuild_dir
        - Src:             'sdbox-sync-rebuild.c:129,4'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync-rebuild.c:135,2'
          Dst:             mail_index_view_close
        - Src:             'sdbox-sync-rebuild.c:136,2'
          Dst:             sdbox_sync_update_header
    - functionName:    sdbox_sync_index_rebuild
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - dbox_get_uidvalidity_next
        - dbox_verify_alt_storage
        - e_warning
        - index_index_rebuild_deinit
        - index_index_rebuild_init
        - mail_index_transaction_begin
        - mail_index_transaction_commit
        - mail_index_transaction_rollback
        - mail_index_unset_fscked
        - mail_index_view_close
        - mail_index_view_open
        - mailbox_set_critical
        - sdbox_read_header
        - sdbox_sync_index_rebuild_singles
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sdbox-sync-rebuild.c:149,16'
          Dst:             sdbox_read_header
        - Src:             'sdbox-sync-rebuild.c:156,2'
          Dst:             e_warning
        - Src:             'sdbox-sync-rebuild.c:158,6'
          Dst:             dbox_verify_alt_storage
        - Src:             'sdbox-sync-rebuild.c:159,3'
          Dst:             mailbox_set_critical
        - Src:             'sdbox-sync-rebuild.c:165,9'
          Dst:             mail_index_view_open
        - Src:             'sdbox-sync-rebuild.c:166,10'
          Dst:             mail_index_transaction_begin
        - Src:             'sdbox-sync-rebuild.c:169,8'
          Dst:             index_index_rebuild_init
        - Src:             'sdbox-sync-rebuild.c:170,8'
          Dst:             sdbox_sync_index_rebuild_singles
        - Src:             'sdbox-sync-rebuild.c:171,2'
          Dst:             index_index_rebuild_deinit
        - Src:             'sdbox-sync-rebuild.c:171,2'
          Dst:             dbox_get_uidvalidity_next
        - Src:             'sdbox-sync-rebuild.c:174,3'
          Dst:             mail_index_transaction_rollback
        - Src:             'sdbox-sync-rebuild.c:176,3'
          Dst:             mail_index_unset_fscked
        - Src:             'sdbox-sync-rebuild.c:177,9'
          Dst:             mail_index_transaction_commit
        - Src:             'sdbox-sync-rebuild.c:179,2'
          Dst:             mail_index_view_close
    - functionName:    dbox_attachment_file_get_stream_from
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-attachment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          86
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dbox_file_get_plaintext_size
        - index_attachment_stream_get
        - mail_storage_set_critical
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-attachment.c:34,3'
          Dst:             mail_storage_set_critical
        - Src:             'dbox-attachment.c:41,13'
          Dst:             dbox_file_get_plaintext_size
        - Src:             'dbox-attachment.c:43,6'
          Dst:             index_attachment_stream_get
    - functionName:    dbox_attachment_file_get_stream
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - dbox_attachment_file_get_stream_from
        - dbox_file_metadata_get
        - dbox_file_metadata_read
        - dbox_file_set_corrupted
        - i_panic
        - i_stream_seek
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-attachment.c:58,13'
          Dst:             dbox_file_metadata_read
        - Src:             'dbox-attachment.c:61,2'
          Dst:             i_stream_seek
        - Src:             'dbox-attachment.c:63,13'
          Dst:             dbox_file_metadata_get
        - Src:             'dbox-attachment.c:68,2'
          Dst:             t_push
        - Src:             'dbox-attachment.c:69,9'
          Dst:             dbox_attachment_file_get_stream_from
        - Src:             'dbox-attachment.c:72,4'
          Dst:             dbox_file_set_corrupted
        - Src:             'dbox-attachment.c:76,4'
          Dst:             t_pop
        - Src:             'dbox-attachment.c:76,4'
          Dst:             i_panic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:             '../../../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/../../../../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:    dbox_attachment_save_write_metadata
      functionSourceFile: '/src/dovecot/src/lib-storage/index/dbox-common/dbox-attachment.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - index_attachment_append_extrefs
        - index_attachment_save_get_extrefs
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dbox-attachment.c:15,12'
          Dst:             index_attachment_save_get_extrefs
        - Src:             'dbox-attachment.c:16,25'
          Dst:             array_count_i
        - Src:             'dbox-attachment.c:19,2'
          Dst:             str_append_c
        - Src:             'dbox-attachment.c:20,2'
          Dst:             index_attachment_append_extrefs
        - Src:             'dbox-attachment.c:21,2'
          Dst:             str_append_c
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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-storage/index/../../../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:    search_result_range_remove
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          225
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - array_get_i
        - i_panic
        - mailbox_search_result_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-result.c:23,9'
          Dst:             array_get_i
        - Src:             'index-search-result.c:25,3'
          Dst:             i_panic
        - Src:             'index-search-result.c:27,4'
          Dst:             mailbox_search_result_remove
        - Src:             'index-search-result.c:29,3'
          Dst:             i_panic
        - Src:             'index-search-result.c:34,2'
          Dst:             i_panic
        - Src:             'index-search-result.c:36,3'
          Dst:             mailbox_search_result_remove
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:             '../../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_search_results_update_expunges
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - mail_index_lookup_uid
        - mailbox_search_results_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-result.c:185,6'
          Dst:             array_count_i
        - Src:             'index-search-result.c:190,4'
          Dst:             mail_index_lookup_uid
        - Src:             'index-search-result.c:191,4'
          Dst:             mailbox_search_results_remove
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-storage/index/../../../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:    index_search_result_update_appends
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          137
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - i_panic
        - mail_index_view_get_messages_count
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_search_result_add
        - mailbox_transaction_begin
        - mailbox_transaction_commit
        - pool_datastack_create
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-result.c:147,18'
          Dst:             mail_index_view_get_messages_count
        - Src:             'index-search-result.c:157,2'
          Dst:             pool_datastack_create
        - Src:             'index-search-result.c:157,2'
          Dst:             array_create_i
        - Src:             'index-search-result.c:158,2'
          Dst:             seq_range_array_add_range
        - Src:             'index-search-result.c:164,6'
          Dst:             mailbox_transaction_begin
        - Src:             'index-search-result.c:165,15'
          Dst:             mailbox_search_init
        - Src:             'index-search-result.c:167,9'
          Dst:             mailbox_search_next
        - Src:             'index-search-result.c:168,3'
          Dst:             mailbox_search_result_add
        - Src:             'index-search-result.c:170,8'
          Dst:             mailbox_search_deinit
        - Src:             'index-search-result.c:171,6'
          Dst:             mailbox_transaction_commit
        - Src:             'index-search-result.c:174,2'
          Dst:             i_panic
    - functionName:    search_result_update_search
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-result.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          231
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - array_get_i
        - i_panic
        - mail_search_args_deinit
        - mail_search_args_init
        - mailbox_search_deinit
        - mailbox_search_init
        - mailbox_search_next
        - mailbox_search_result_add
        - mailbox_transaction_begin
        - mailbox_transaction_commit
        - search_result_range_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-result.c:64,17'
          Dst:             array_get_i
        - Src:             'index-search-result.c:65,2'
          Dst:             i_panic
        - Src:             'index-search-result.c:69,2'
          Dst:             mail_search_args_init
        - Src:             'index-search-result.c:71,6'
          Dst:             mailbox_transaction_begin
        - Src:             'index-search-result.c:72,15'
          Dst:             mailbox_search_init
        - Src:             'index-search-result.c:77,9'
          Dst:             mailbox_search_next
        - Src:             'index-search-result.c:78,3'
          Dst:             i_panic
        - Src:             'index-search-result.c:83,4'
          Dst:             search_result_range_remove
        - Src:             'index-search-result.c:86,4'
          Dst:             i_panic
        - Src:             'index-search-result.c:97,3'
          Dst:             mailbox_search_result_add
        - Src:             'index-search-result.c:99,2'
          Dst:             mail_search_args_deinit
        - Src:             'index-search-result.c:100,8'
          Dst:             mailbox_search_deinit
        - Src:             'index-search-result.c:105,3'
          Dst:             search_result_range_remove
        - Src:             'index-search-result.c:110,6'
          Dst:             mailbox_transaction_commit
    - functionName:    index_search_result_update_flags
      functionSourceFile: '/src/dovecot/src/lib-storage/index/index-search-result.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - i_panic
        - search_result_update_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'index-search-result.c:121,6'
          Dst:             array_count_i
        - Src:             'index-search-result.c:131,8'
          Dst:             search_result_update_search
        - Src:             'index-search-result.c:132,2'
          Dst:             i_panic
    - functionName:    dict_drivers_unregister_builtin
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_driver_unregister
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-register.c:22,2'
          Dst:             dict_driver_unregister
        - Src:             'dict-register.c:23,2'
          Dst:             dict_driver_unregister
        - Src:             'dict-register.c:24,2'
          Dst:             dict_driver_unregister
        - Src:             'dict-register.c:25,2'
          Dst:             dict_driver_unregister
    - functionName:    dict_drivers_register_builtin
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-register.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_driver_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-register.c:12,2'
          Dst:             dict_driver_register
        - Src:             'dict-register.c:13,2'
          Dst:             dict_driver_register
        - Src:             'dict-register.c:14,2'
          Dst:             dict_driver_register
        - Src:             'dict-register.c:15,2'
          Dst:             dict_driver_register
    - functionName:    smtp_parse_source_route
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          166
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - smtp_parser_parse_domain
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:213,7'
          Dst:             smtp_parser_parse_domain
    - functionName:    smtp_parser_parse_dot_string
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          138
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - smtp_char_is_atext
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:68,8'
          Dst:             smtp_char_is_atext
        - Src:             'smtp-address.c:73,10'
          Dst:             smtp_char_is_atext
        - Src:             'smtp-address.c:77,14'
          Dst:             t_strndup
    - functionName:    smtp_char_is_atext
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_address_parser_find_end
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - smtp_address_parse_any
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:106,6'
          Dst:             smtp_address_parse_any
        - Src:             'smtp-address.c:114,3'
          Dst:             i_panic
    - functionName:    smtp_address_parse_any
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          315
      EdgeCount:       85
      CyclomaticComplexity: 22
      functionsReached:
        - strlen
        - t_strdup_until
      functionUses:    2
      BranchProfiles:
        - Branch String:   'smtp-address.c:613,3'
          Branch Sides:    []
      Callsites:
        - Src:             'smtp-address.c:593,13'
          Dst:             strlen
        - Src:             'smtp-address.c:622,19'
          Dst:             t_strdup_until
        - Src:             'smtp-address.c:631,19'
          Dst:             t_strdup_until
        - Src:             'smtp-address.c:647,16'
          Dst:             t_strdup_until
    - functionName:    smtp_parse_localpart
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_parser_parse_dot_string
        - smtp_parser_parse_quoted_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:86,13'
          Dst:             smtp_parser_parse_quoted_string
        - Src:             'smtp-address.c:89,9'
          Dst:             smtp_parser_parse_dot_string
    - functionName:    smtp_address_cmp_icase
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 962
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - null_strcasecmp
        - smtp_address_isnull
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:953,10'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:954,10'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:959,13'
          Dst:             null_strcasecmp
        - Src:             'smtp-address.c:961,9'
          Dst:             null_strcasecmp
    - functionName:    smtp_address_isnull
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-address.h'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_address_cmp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - null_strcasecmp
        - null_strcmp
        - smtp_address_isnull
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:936,10'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:937,10'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:942,13'
          Dst:             null_strcasecmp
        - Src:             'smtp-address.c:944,9'
          Dst:             null_strcmp
    - functionName:    smtp_address_add_detail_temp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - smtp_address_isnull
        - t_malloc0
        - t_strconcat
        - t_strdup_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:920,2'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:920,2'
          Dst:             i_panic
        - Src:             'smtp-address.c:922,13'
          Dst:             malloc_multiply_check
        - Src:             'smtp-address.c:922,13'
          Dst:             t_malloc0
        - Src:             'smtp-address.c:923,24'
          Dst:             t_strconcat
        - Src:             'smtp-address.c:925,21'
          Dst:             t_strdup_empty
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    smtp_address_add_detail
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strconcat
        - p_strdup_empty
        - smtp_address_isnull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:903,2'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:903,2'
          Dst:             i_panic
        - Src:             'smtp-address.c:905,13'
          Dst:             malloc_multiply_check
        - Src:             'smtp-address.c:905,13'
          Dst:             p_malloc
        - Src:             'smtp-address.c:906,24'
          Dst:             p_strconcat
        - Src:             'smtp-address.c:908,21'
          Dst:             p_strdup_empty
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    smtp_address_create_from_msg_temp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_address_clone_temp
        - smtp_address_init_from_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:888,6'
          Dst:             smtp_address_init_from_msg
        - Src:             'smtp-address.c:892,15'
          Dst:             smtp_address_clone_temp
    - functionName:    smtp_address_init_from_msg
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          110
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - smtp_char_is_qpair
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:779,8'
          Dst:             smtp_char_is_qpair
    - functionName:    smtp_address_clone_temp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
        - t_strdup_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:867,8'
          Dst:             malloc_multiply_check
        - Src:             'smtp-address.c:867,8'
          Dst:             t_malloc0
        - Src:             'smtp-address.c:868,19'
          Dst:             t_strdup_empty
        - Src:             'smtp-address.c:869,16'
          Dst:             t_strdup_empty
        - Src:             'smtp-address.c:870,13'
          Dst:             t_strdup_empty
    - functionName:    smtp_char_is_qpair
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_address_create_temp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_clone_temp
        - smtp_address_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:879,2'
          Dst:             smtp_address_init
        - Src:             'smtp-address.c:880,9'
          Dst:             smtp_address_clone_temp
    - functionName:    smtp_address_init
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_address_create_from_msg
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_address_clone
        - smtp_address_init_from_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:852,6'
          Dst:             smtp_address_init_from_msg
        - Src:             'smtp-address.c:856,15'
          Dst:             smtp_address_clone
    - functionName:    smtp_address_clone
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          228
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - i_memcpy
        - malloc_add_check
        - p_malloc
        - smtp_address_isnull
        - strlen
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:802,7'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:803,12'
          Dst:             strlen
        - Src:             'smtp-address.c:804,10'
          Dst:             malloc_add_check
        - Src:             'smtp-address.c:807,11'
          Dst:             strlen
        - Src:             'smtp-address.c:808,10'
          Dst:             malloc_add_check
        - Src:             'smtp-address.c:811,11'
          Dst:             strlen
        - Src:             'smtp-address.c:812,10'
          Dst:             malloc_add_check
        - Src:             'smtp-address.c:815,9'
          Dst:             p_malloc
        - Src:             'smtp-address.c:819,3'
          Dst:             i_memcpy
        - Src:             'smtp-address.c:823,3'
          Dst:             i_memcpy
        - Src:             'smtp-address.c:827,3'
          Dst:             i_memcpy
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    smtp_address_create
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_clone
        - smtp_address_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:841,2'
          Dst:             smtp_address_init
        - Src:             'smtp-address.c:842,9'
          Dst:             smtp_address_clone
    - functionName:    smtp_address_encode_raw_path
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - smtp_address_encode_path
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:745,10'
          Dst:             t_strconcat
        - Src:             'smtp-address.c:747,9'
          Dst:             smtp_address_encode_path
    - functionName:    smtp_address_encode_path
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_write_path
        - str_c
        - t_str_new
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:729,18'
          Dst:             t_str_new
        - Src:             'smtp-address.c:730,2'
          Dst:             smtp_address_write_path
        - Src:             'smtp-address.c:731,9'
          Dst:             str_c
    - functionName:    smtp_address_write_path
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_write
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:715,2'
          Dst:             str_append_c
        - Src:             'smtp-address.c:716,2'
          Dst:             smtp_address_write
        - Src:             'smtp-address.c:717,2'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    smtp_address_write
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          256
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - smtp_address_isnull
        - smtp_char_is_atext
        - smtp_char_is_qpair
        - smtp_char_is_qtext
        - str_append
        - str_append_c
        - str_append_data
        - str_insert
        - str_len
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:664,6'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:666,10'
          Dst:             str_len
        - Src:             'smtp-address.c:670,13'
          Dst:             strlen
        - Src:             'smtp-address.c:673,22'
          Dst:             smtp_char_is_atext
        - Src:             'smtp-address.c:678,4'
          Dst:             str_insert
        - Src:             'smtp-address.c:681,3'
          Dst:             str_append_data
        - Src:             'smtp-address.c:686,4'
          Dst:             str_append_c
        - Src:             'smtp-address.c:688,4'
          Dst:             smtp_char_is_qpair
        - Src:             'smtp-address.c:688,4'
          Dst:             i_panic
        - Src:             'smtp-address.c:689,9'
          Dst:             smtp_char_is_qtext
        - Src:             'smtp-address.c:690,5'
          Dst:             str_append_c
        - Src:             'smtp-address.c:691,4'
          Dst:             str_append_c
        - Src:             'smtp-address.c:700,3'
          Dst:             str_insert
        - Src:             'smtp-address.c:704,3'
          Dst:             str_append_c
        - Src:             'smtp-address.c:709,2'
          Dst:             str_append_c
        - Src:             'smtp-address.c:710,2'
          Dst:             str_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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_insert
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    smtp_char_is_qtext
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    smtp_address_encode_raw
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - smtp_address_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:739,9'
          Dst:             smtp_address_encode
    - functionName:    smtp_address_encode
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_write
        - str_c
        - t_str_new
      functionUses:    53
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:722,18'
          Dst:             t_str_new
        - Src:             'smtp-address.c:723,2'
          Dst:             smtp_address_write
        - Src:             'smtp-address.c:724,9'
          Dst:             str_c
    - functionName:    smtp_address_detail_parse_temp
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_datastack_create
        - smtp_address_detail_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:578,28'
          Dst:             pool_datastack_create
        - Src:             'smtp-address.c:578,2'
          Dst:             smtp_address_detail_parse
    - functionName:    smtp_address_detail_parse
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          175
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - p_strconcat
        - p_strdup
        - p_strdup_until
        - smtp_address_encode
        - smtp_address_init
        - smtp_address_isnull
        - strchr
        - strcspn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:535,2'
          Dst:             smtp_address_isnull
        - Src:             'smtp-address.c:535,2'
          Dst:             i_panic
        - Src:             'smtp-address.c:543,8'
          Dst:             strcspn
        - Src:             'smtp-address.c:549,10'
          Dst:             p_strdup_until
        - Src:             'smtp-address.c:555,11'
          Dst:             strchr
        - Src:             'smtp-address.c:557,17'
          Dst:             p_strconcat
        - Src:             'smtp-address.c:563,3'
          Dst:             smtp_address_init
        - Src:             'smtp-address.c:565,18'
          Dst:             smtp_address_encode
        - Src:             'smtp-address.c:568,20'
          Dst:             smtp_address_encode
        - Src:             'smtp-address.c:568,5'
          Dst:             p_strdup
    - functionName:    smtp_address_parse_username
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          177
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - pool_datastack_create
        - smtp_address_clone
        - smtp_parse_mailbox
        - smtp_parser_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:504,36'
          Dst:             pool_datastack_create
        - Src:             'smtp-address.c:504,2'
          Dst:             smtp_parser_init
        - Src:             'smtp-address.c:508,13'
          Dst:             smtp_parse_mailbox
        - Src:             'smtp-address.c:522,16'
          Dst:             smtp_address_clone
    - functionName:    smtp_parse_mailbox
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         83
      ICount:          466
      EdgeCount:       112
      CyclomaticComplexity: 31
      functionsReached:
        - p_strdup_until
        - smtp_address_parser_find_end
        - smtp_char_is_qpair
        - smtp_char_is_qtext
        - smtp_parse_localpart
        - smtp_parser_parse_address_literal
        - smtp_parser_parse_domain
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:136,14'
          Dst:             smtp_parse_localpart
        - Src:             'smtp-address.c:140,7'
          Dst:             smtp_address_parser_find_end
        - Src:             'smtp-address.c:155,9'
          Dst:             smtp_char_is_qtext
        - Src:             'smtp-address.c:156,9'
          Dst:             smtp_char_is_qpair
        - Src:             'smtp-address.c:164,5'
          Dst:             p_strdup_until
        - Src:             'smtp-address.c:184,13'
          Dst:             smtp_parser_parse_domain
        - Src:             'smtp-address.c:185,13'
          Dst:             smtp_parser_parse_address_literal
    - functionName:    smtp_address_parse_path
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smtp_address_parse_path_full
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:477,9'
          Dst:             smtp_address_parse_path_full
    - functionName:    smtp_address_parse_path_full
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          406
      EdgeCount:       111
      CyclomaticComplexity: 30
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_datastack_create
        - smtp_address_clone
        - smtp_address_parse_path_broken
        - smtp_parse_path
        - smtp_parser_init
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:411,17'
          Dst:             malloc_multiply_check
        - Src:             'smtp-address.c:411,17'
          Dst:             p_malloc
        - Src:             'smtp-address.c:418,36'
          Dst:             pool_datastack_create
        - Src:             'smtp-address.c:418,2'
          Dst:             smtp_parser_init
        - Src:             'smtp-address.c:422,13'
          Dst:             smtp_parse_path
        - Src:             'smtp-address.c:449,7'
          Dst:             smtp_address_parse_path_broken
        - Src:             'smtp-address.c:459,26'
          Dst:             t_strdup_until
        - Src:             'smtp-address.c:462,26'
          Dst:             t_strdup_until
        - Src:             'smtp-address.c:468,16'
          Dst:             smtp_address_clone
    - functionName:    smtp_parse_path
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          262
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - smtp_parse_mailbox
        - smtp_parse_source_route
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:260,31'
          Dst:             smtp_parse_source_route
        - Src:             'smtp-address.c:264,13'
          Dst:             smtp_parse_mailbox
    - functionName:    smtp_address_parse_path_broken
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          180
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - smtp_address_parse_any
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:370,2'
          Dst:             i_panic
        - Src:             'smtp-address.c:379,6'
          Dst:             smtp_address_parse_any
    - functionName:    smtp_address_parse_mailbox
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          214
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_datastack_create
        - smtp_address_clone
        - smtp_parse_mailbox
        - smtp_parser_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-address.c:322,17'
          Dst:             malloc_multiply_check
        - Src:             'smtp-address.c:322,17'
          Dst:             p_malloc
        - Src:             'smtp-address.c:327,36'
          Dst:             pool_datastack_create
        - Src:             'smtp-address.c:327,2'
          Dst:             smtp_parser_init
        - Src:             'smtp-address.c:331,13'
          Dst:             smtp_parse_mailbox
        - Src:             'smtp-address.c:345,16'
          Dst:             smtp_address_clone
    - functionName:    smtp_char_is_atext
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_parser_parse_snum
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          165
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - str_append_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:294,3'
          Dst:             str_append_data
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    smtp_parse_xtext_hexdigit
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          121
      EdgeCount:       42
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'smtp-parser.c:564,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    smtp_char_is_xtext
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_parser_parse_xtext
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          213
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - smtp_char_is_xtext
        - smtp_parse_xtext_hexdigit
        - str_append_c
        - str_append_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:592,5'
          Dst:             smtp_char_is_xtext
        - Src:             'smtp-parser.c:599,4'
          Dst:             smtp_char_is_xtext
        - Src:             'smtp-parser.c:603,4'
          Dst:             str_append_data
        - Src:             'smtp-parser.c:610,7'
          Dst:             smtp_parse_xtext_hexdigit
        - Src:             'smtp-parser.c:612,8'
          Dst:             smtp_parse_xtext_hexdigit
        - Src:             'smtp-parser.c:615,6'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-smtp/../../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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    smtp_parser_parse_string
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - smtp_parser_parse_atom
        - smtp_parser_parse_quoted_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:555,11'
          Dst:             smtp_parser_parse_quoted_string
        - Src:             'smtp-parser.c:557,9'
          Dst:             smtp_parser_parse_atom
    - functionName:    smtp_parser_parse_quoted_string
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          269
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - smtp_char_is_qpair
        - smtp_char_is_qtext
        - str_append_c
        - str_append_data
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:474,11'
          Dst:             t_str_new
        - Src:             'smtp-parser.c:480,4'
          Dst:             smtp_char_is_qtext
        - Src:             'smtp-parser.c:486,4'
          Dst:             str_append_data
        - Src:             'smtp-parser.c:494,5'
          Dst:             smtp_char_is_qpair
        - Src:             'smtp-parser.c:501,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:516,14'
          Dst:             str_c
    - functionName:    smtp_parser_parse_atom
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - smtp_parser_skip_atom
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:540,11'
          Dst:             smtp_parser_skip_atom
        - Src:             'smtp-parser.c:544,14'
          Dst:             t_strndup
    - functionName:    smtp_parser_skip_atom
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - smtp_char_is_atext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:525,37'
          Dst:             smtp_char_is_atext
        - Src:             'smtp-parser.c:529,38'
          Dst:             smtp_char_is_atext
    - functionName:    smtp_char_is_qtext
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_char_is_qpair
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_char_is_dcontent
      functionSourceFile: '/src/dovecot/src/lib-smtp/./smtp-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_parser_parse_ldh_str
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - str_append_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:184,7'
          Dst:             __ctype_b_loc
        - Src:             'smtp-parser.c:197,3'
          Dst:             str_append_data
    - functionName:    smtp_parser_parse_ipv4_address
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - htonl
        - smtp_parser_parse_snum
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:309,13'
          Dst:             smtp_parser_parse_snum
        - Src:             'smtp-parser.c:318,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:321,7'
          Dst:             smtp_parser_parse_snum
        - Src:             'smtp-parser.c:327,19'
          Dst:             htonl
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smtp_parser_parse_address_literal
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          402
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - net_addr2ip
        - smtp_char_is_dcontent
        - smtp_parser_parse_ipv4_address
        - smtp_parser_parse_ldh_str
        - str_append_c
        - str_append_data
        - str_c
        - strcasecmp
        - t_str_new
        - t_strdup_printf
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:361,11'
          Dst:             t_str_new
        - Src:             'smtp-parser.c:362,3'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:369,11'
          Dst:             smtp_parser_parse_ipv4_address
        - Src:             'smtp-parser.c:388,13'
          Dst:             t_str_new
        - Src:             'smtp-parser.c:389,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:391,7'
          Dst:             smtp_parser_parse_ldh_str
        - Src:             'smtp-parser.c:396,18'
          Dst:             str_c
        - Src:             'smtp-parser.c:396,7'
          Dst:             strcasecmp
        - Src:             'smtp-parser.c:401,5'
          Dst:             str_c
        - Src:             'smtp-parser.c:399,20'
          Dst:             t_strdup_printf
        - Src:             'smtp-parser.c:406,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:411,4'
          Dst:             smtp_char_is_dcontent
        - Src:             'smtp-parser.c:419,4'
          Dst:             str_append_data
        - Src:             'smtp-parser.c:423,20'
          Dst:             t_strndup
        - Src:             'smtp-parser.c:423,8'
          Dst:             net_addr2ip
        - Src:             'smtp-parser.c:444,3'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:445,14'
          Dst:             str_c
    - functionName:    smtp_parser_parse_domain
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          340
      EdgeCount:       79
      CyclomaticComplexity: 22
      functionsReached:
        - __ctype_b_loc
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:218,5'
          Dst:             __ctype_b_loc
        - Src:             'smtp-parser.c:223,11'
          Dst:             t_str_new
        - Src:             'smtp-parser.c:231,8'
          Dst:             __ctype_b_loc
        - Src:             'smtp-parser.c:237,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:242,9'
          Dst:             __ctype_b_loc
        - Src:             'smtp-parser.c:250,5'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:259,4'
          Dst:             str_append_c
        - Src:             'smtp-parser.c:264,14'
          Dst:             str_c
    - functionName:    smtp_parser_init
      functionSourceFile: '/src/dovecot/src/lib-smtp/smtp-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'smtp-parser.c:163,32'
          Dst:             strlen
    - 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:    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:    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:    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:    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:    3
      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:    2
      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:    5
      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:    4
      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:    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:    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:    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:    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:    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:    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:    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:    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:    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:    1
      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:    3
      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:    t_split_key_value_eq
      functionSourceFile: '/src/dovecot/src/lib-master/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_split_key_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:190,9'
          Dst:             t_split_key_value
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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-master/../../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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    strarr_push
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:227,2'
          Dst:             array_append_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    config_exec_fallback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - config_error_update_path_source
        - master_service_exec_config
        - master_service_get_config_path
        - stat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:308,20'
          Dst:             __errno_location
        - Src:             'master-service-settings.c:311,12'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:317,3'
          Dst:             master_service_get_config_path
        - Src:             'master-service-settings.c:318,6'
          Dst:             stat
        - Src:             'master-service-settings.c:319,16'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:321,16'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:323,16'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:326,3'
          Dst:             master_service_exec_config
        - Src:             'master-service-settings.c:328,11'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:331,2'
          Dst:             config_error_update_path_source
        - Src:             'master-service-settings.c:332,2'
          Dst:             __errno_location
    - functionName:    master_service_exec_config
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          238
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - env_put
        - env_remove
        - execv_const
        - getenv
        - i_fatal
        - master_service_import_environment
        - pool_datastack_create
        - strarr_push
        - t_binary_abspath
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:238,7'
          Dst:             t_binary_abspath
        - Src:             'master-service-settings.c:239,3'
          Dst:             i_fatal
        - Src:             'master-service-settings.c:244,4'
          Dst:             master_service_import_environment
        - Src:             'master-service-settings.c:246,4'
          Dst:             master_service_import_environment
        - Src:             'master-service-settings.c:248,4'
          Dst:             master_service_import_environment
        - Src:             'master-service-settings.c:252,7'
          Dst:             getenv
        - Src:             'master-service-settings.c:253,4'
          Dst:             env_put
        - Src:             'master-service-settings.c:256,3'
          Dst:             env_remove
        - Src:             'master-service-settings.c:259,3'
          Dst:             env_put
        - Src:             'master-service-settings.c:262,3'
          Dst:             env_put
        - Src:             'master-service-settings.c:264,2'
          Dst:             pool_datastack_create
        - Src:             'master-service-settings.c:264,2'
          Dst:             array_create_i
        - Src:             'master-service-settings.c:265,32'
          Dst:             getenv
        - Src:             'master-service-settings.c:268,2'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:270,3'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:272,3'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:273,3'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:277,3'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:279,3'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:280,2'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:281,2'
          Dst:             strarr_push
        - Src:             'master-service-settings.c:282,2'
          Dst:             array_append_i
        - Src:             'master-service-settings.c:284,2'
          Dst:             array_append_space_i
        - Src:             'master-service-settings.c:286,28'
          Dst:             array_idx_i
        - Src:             'master-service-settings.c:287,2'
          Dst:             execv_const
    - functionName:    config_error_update_path_source
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:296,12'
          Dst:             t_strdup_printf
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    master_service_binary_config_cache_get
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fd_close_on_exec
        - i_error
        - master_service_get_binary_config_cache_path
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:342,3'
          Dst:             master_service_get_binary_config_cache_path
        - Src:             'master-service-settings.c:343,11'
          Dst:             open
        - Src:             'master-service-settings.c:344,18'
          Dst:             __errno_location
        - Src:             'master-service-settings.c:345,3'
          Dst:             i_error
        - Src:             'master-service-settings.c:347,3'
          Dst:             fd_close_on_exec
    - functionName:    master_service_get_binary_config_cache_path
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex_append
        - getegid
        - geteuid
        - restrict_get_groups_list
        - sha256_init
        - sha256_loop
        - sha256_result
        - str_append
        - str_c
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:680,2'
          Dst:             sha256_init
        - Src:             'master-service-settings.c:681,32'
          Dst:             strlen
        - Src:             'master-service-settings.c:681,2'
          Dst:             sha256_loop
        - Src:             'master-service-settings.c:682,15'
          Dst:             geteuid
        - Src:             'master-service-settings.c:683,2'
          Dst:             sha256_loop
        - Src:             'master-service-settings.c:684,15'
          Dst:             getegid
        - Src:             'master-service-settings.c:685,2'
          Dst:             sha256_loop
        - Src:             'master-service-settings.c:687,24'
          Dst:             restrict_get_groups_list
        - Src:             'master-service-settings.c:688,2'
          Dst:             sha256_loop
        - Src:             'master-service-settings.c:690,2'
          Dst:             sha256_result
        - Src:             'master-service-settings.c:692,25'
          Dst:             t_str_new
        - Src:             'master-service-settings.c:693,2'
          Dst:             str_append
        - Src:             'master-service-settings.c:694,2'
          Dst:             str_append
        - Src:             'master-service-settings.c:695,2'
          Dst:             binary_to_hex_append
        - Src:             'master-service-settings.c:696,9'
          Dst:             str_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_append_config_overrides
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
        - settings_root_override
        - t_split_key_value_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:472,7'
          Dst:             array_is_created_i
        - Src:             'master-service-settings.c:475,18'
          Dst:             array_get_i
        - Src:             'master-service-settings.c:478,3'
          Dst:             t_split_key_value_eq
        - Src:             'master-service-settings.c:480,3'
          Dst:             settings_root_override
    - functionName:    master_service_open_config
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          450
      EdgeCount:       102
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - alarm
        - config_error_update_path_source
        - config_exec_fallback
        - eacces_error_get
        - fd_read
        - i_close_fd_path
        - i_panic
        - master_service_binary_config_cache_get
        - master_service_exec_config
        - master_service_get_config_path
        - net_connect_unix
        - net_connect_unix_with_retries
        - net_set_nonblock
        - stat
        - str_append
        - str_append_c
        - str_data
        - str_len
        - t_str_new
        - t_strcut
        - t_strdup_printf
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:367,10'
          Dst:             master_service_get_config_path
        - Src:             'master-service-settings.c:371,12'
          Dst:             master_service_binary_config_cache_get
        - Src:             'master-service-settings.c:377,3'
          Dst:             master_service_exec_config
        - Src:             'master-service-settings.c:387,8'
          Dst:             net_connect_unix
        - Src:             'master-service-settings.c:396,7'
          Dst:             stat
        - Src:             'master-service-settings.c:397,15'
          Dst:             __errno_location
        - Src:             'master-service-settings.c:398,5'
          Dst:             eacces_error_get
        - Src:             'master-service-settings.c:399,5'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:400,4'
          Dst:             config_error_update_path_source
        - Src:             'master-service-settings.c:407,4'
          Dst:             __errno_location
        - Src:             'master-service-settings.c:409,9'
          Dst:             net_connect_unix_with_retries
        - Src:             'master-service-settings.c:412,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:414,4'
          Dst:             config_exec_fallback
        - Src:             'master-service-settings.c:418,2'
          Dst:             net_set_nonblock
        - Src:             'master-service-settings.c:419,18'
          Dst:             t_str_new
        - Src:             'master-service-settings.c:420,2'
          Dst:             str_append
        - Src:             'master-service-settings.c:422,3'
          Dst:             str_append
        - Src:             'master-service-settings.c:423,2'
          Dst:             str_append_c
        - Src:             'master-service-settings.c:424,2'
          Dst:             alarm
        - Src:             'master-service-settings.c:425,27'
          Dst:             str_data
        - Src:             'master-service-settings.c:425,42'
          Dst:             str_len
        - Src:             'master-service-settings.c:425,12'
          Dst:             write_full
        - Src:             'master-service-settings.c:427,14'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:435,9'
          Dst:             fd_read
        - Src:             'master-service-settings.c:437,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:445,10'
          Dst:             t_strcut
        - Src:             'master-service-settings.c:444,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:446,4'
          Dst:             i_close_fd_path
        - Src:             'master-service-settings.c:451,5'
          Dst:             t_strcut
        - Src:             'master-service-settings.c:449,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:452,4'
          Dst:             i_close_fd_path
        - Src:             'master-service-settings.c:455,2'
          Dst:             alarm
        - Src:             'master-service-settings.c:456,2'
          Dst:             i_close_fd_path
        - Src:             'master-service-settings.c:459,3'
          Dst:             i_panic
        - Src:             'master-service-settings.c:460,3'
          Dst:             config_exec_fallback
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    storage_version_check
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - t_strdup_printf
        - version_cmp
        - version_is_valid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:167,7'
          Dst:             version_is_valid
        - Src:             'master-service-settings.c:171,6'
          Dst:             version_cmp
        - Src:             'master-service-settings.c:172,14'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:178,6'
          Dst:             version_is_valid
        - Src:             'master-service-settings.c:179,6'
          Dst:             version_cmp
        - Src:             'master-service-settings.c:180,14'
          Dst:             t_strdup_printf
    - functionName:    master_service_set_process_shutdown_filter_wrapper
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_set_process_shutdown_filter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:156,2'
          Dst:             master_service_set_process_shutdown_filter
    - functionName:    setting_filter_parse
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_create
        - event_filter_parse
        - event_filter_unref
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:140,11'
          Dst:             event_filter_create
        - Src:             'master-service-settings.c:141,6'
          Dst:             event_filter_parse
        - Src:             'master-service-settings.c:142,14'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:143,3'
          Dst:             event_filter_unref
        - Src:             'master-service-settings.c:149,2'
          Dst:             event_filter_unref
    - functionName:    master_service_get_import_environment_keyvals
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
        - str_append_c
        - str_append_tabescaped
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:660,21'
          Dst:             array_count_i
        - Src:             'master-service-settings.c:661,22'
          Dst:             t_str_new
        - Src:             'master-service-settings.c:663,28'
          Dst:             array_idx_i
        - Src:             'master-service-settings.c:664,28'
          Dst:             array_idx_i
        - Src:             'master-service-settings.c:665,3'
          Dst:             str_append_tabescaped
        - Src:             'master-service-settings.c:666,3'
          Dst:             str_append_c
        - Src:             'master-service-settings.c:667,3'
          Dst:             str_append_tabescaped
        - Src:             'master-service-settings.c:670,4'
          Dst:             str_append_c
        - Src:             'master-service-settings.c:672,9'
          Dst:             str_c
    - functionName:    master_service_get_service_settings
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 653
      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:    master_service_settings_read_simple
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_settings_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:647,9'
          Dst:             master_service_settings_read
    - functionName:    master_service_settings_read
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getenv
        - master_service_settings_read_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:636,7'
          Dst:             getenv
        - Src:             'master-service-settings.c:635,9'
          Dst:             master_service_settings_read_int
    - functionName:    master_service_settings_read_int
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          562
      EdgeCount:       126
      CyclomaticComplexity: 31
      functionsReached:
        - __errno_location
        - env_remove
        - event_add_str
        - event_create
        - event_unref
        - getenv
        - hostpid_init
        - i_close_fd_path
        - i_fatal
        - i_panic
        - master_service_append_config_overrides
        - master_service_get_import_environment_keyvals
        - master_service_import_environment
        - master_service_init_stats_client
        - master_service_open_config
        - master_service_set_die_with_master
        - master_service_settings_read_int
        - pool_unref
        - settings_get
        - settings_has_mmap
        - settings_read
        - settings_root_override
        - str_to_int
        - t_pop_pass_str
        - t_push
        - t_strdup_printf
        - version_is_valid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:503,10'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:504,13'
          Dst:             settings_has_mmap
        - Src:             'master-service-settings.c:507,22'
          Dst:             getenv
        - Src:             'master-service-settings.c:510,7'
          Dst:             str_to_int
        - Src:             'master-service-settings.c:511,4'
          Dst:             i_fatal
        - Src:             'master-service-settings.c:512,10'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:516,3'
          Dst:             t_push
        - Src:             'master-service-settings.c:517,9'
          Dst:             master_service_open_config
        - Src:             'master-service-settings.c:520,5'
          Dst:             t_pop_pass_str
        - Src:             'master-service-settings.c:520,5'
          Dst:             i_panic
        - Src:             'master-service-settings.c:522,8'
          Dst:             __errno_location
        - Src:             'master-service-settings.c:524,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:528,7'
          Dst:             getenv
        - Src:             'master-service-settings.c:535,14'
          Dst:             settings_has_mmap
        - Src:             'master-service-settings.c:543,25'
          Dst:             version_is_valid
        - Src:             'master-service-settings.c:545,3'
          Dst:             settings_root_override
        - Src:             'master-service-settings.c:549,7'
          Dst:             settings_has_mmap
        - Src:             'master-service-settings.c:551,3'
          Dst:             master_service_append_config_overrides
        - Src:             'master-service-settings.c:563,9'
          Dst:             settings_read
        - Src:             'master-service-settings.c:569,4'
          Dst:             i_close_fd_path
        - Src:             'master-service-settings.c:570,11'
          Dst:             master_service_settings_read_int
        - Src:             'master-service-settings.c:576,4'
          Dst:             i_close_fd_path
        - Src:             'master-service-settings.c:578,8'
          Dst:             getenv
        - Src:             'master-service-settings.c:579,5'
          Dst:             i_fatal
        - Src:             'master-service-settings.c:582,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:586,3'
          Dst:             env_remove
        - Src:             'master-service-settings.c:590,24'
          Dst:             event_create
        - Src:             'master-service-settings.c:591,2'
          Dst:             event_add_str
        - Src:             'master-service-settings.c:594,2'
          Dst:             pool_unref
        - Src:             'master-service-settings.c:595,8'
          Dst:             settings_get
        - Src:             'master-service-settings.c:599,2'
          Dst:             event_unref
        - Src:             'master-service-settings.c:614,3'
          Dst:             master_service_init_stats_client
        - Src:             'master-service-settings.c:618,3'
          Dst:             master_service_set_die_with_master
        - Src:             'master-service-settings.c:622,4'
          Dst:             master_service_get_import_environment_keyvals
        - Src:             'master-service-settings.c:623,3'
          Dst:             master_service_import_environment
        - Src:             'master-service-settings.c:625,3'
          Dst:             hostpid_init
    - functionName:    master_service_settings_check
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - event_set_global_core_log_filter
        - event_set_global_debug_log_filter
        - master_service_set_process_shutdown_filter_wrapper
        - setting_filter_parse
        - settings_get_config_binary
        - storage_version_check
        - syslog_facility_find
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-settings.c:199,7'
          Dst:             syslog_facility_find
        - Src:             'master-service-settings.c:200,14'
          Dst:             t_strdup_printf
        - Src:             'master-service-settings.c:205,7'
          Dst:             setting_filter_parse
        - Src:             'master-service-settings.c:205,7'
          Dst:             event_set_global_debug_log_filter
        - Src:             'master-service-settings.c:208,7'
          Dst:             setting_filter_parse
        - Src:             'master-service-settings.c:208,7'
          Dst:             event_set_global_core_log_filter
        - Src:             'master-service-settings.c:211,7'
          Dst:             setting_filter_parse
        - Src:             'master-service-settings.c:211,7'
          Dst:             master_service_set_process_shutdown_filter_wrapper
        - Src:             'master-service-settings.c:218,6'
          Dst:             settings_get_config_binary
        - Src:             'master-service-settings.c:219,7'
          Dst:             storage_version_check
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    master_service_overflow
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1798
      functionLinenumberEnd: 1831
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - io_loop_is_running
        - master_service_get_login_state
        - master_service_io_listeners_add
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1802,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1804,6'
          Dst:             master_service_get_login_state
        - Src:             'master-service.c:1819,3'
          Dst:             i_panic
        - Src:             'master-service.c:1820,3'
          Dst:             io_loop_is_running
        - Src:             'master-service.c:1820,3'
          Dst:             i_panic
        - Src:             'master-service.c:1823,2'
          Dst:             master_service_io_listeners_add
    - functionName:    master_service_get_login_state
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1680
      functionLinenumberEnd: 1691
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - lseek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1683,8'
          Dst:             lseek
        - Src:             'master-service.c:1685,3'
          Dst:             e_error
    - functionName:    master_service_io_listeners_add
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2002
      functionLinenumberEnd: 2020
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - io_add
        - master_service_listen
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2007,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:2016,12'
          Dst:             io_add
        - Src:             'master-service.c:2016,12'
          Dst:             master_service_listen
    - functionName:    master_service_listen
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1958
      functionLinenumberEnd: 1999
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          150
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - block_sigterm
        - e_error
        - i_close_fd_path
        - i_panic
        - master_admin_client_can_accept
        - master_service_accept
        - master_service_full
        - master_service_io_listeners_remove
        - net_accept
        - sigprocmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1962,22'
          Dst:             master_admin_client_can_accept
        - Src:             'master-service.c:1965,7'
          Dst:             master_service_full
        - Src:             'master-service.c:1970,14'
          Dst:             net_accept
        - Src:             'master-service.c:1972,6'
          Dst:             i_close_fd_path
        - Src:             'master-service.c:1977,4'
          Dst:             master_service_io_listeners_remove
        - Src:             'master-service.c:1981,3'
          Dst:             i_panic
        - Src:             'master-service.c:1991,21'
          Dst:             block_sigterm
        - Src:             'master-service.c:1993,2'
          Dst:             master_service_accept
        - Src:             'master-service.c:1995,7'
          Dst:             sigprocmask
        - Src:             'master-service.c:1996,4'
          Dst:             e_error
    - functionName:    master_service_full
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - master_service_overflow
        - master_service_overflow_timeout_msecs
        - timeout_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1899,2'
          Dst:             i_panic
        - Src:             'master-service.c:1901,3'
          Dst:             master_service_overflow_timeout_msecs
        - Src:             'master-service.c:1901,3'
          Dst:             timeout_add
        - Src:             'master-service.c:1901,3'
          Dst:             master_service_overflow
    - functionName:    master_service_io_listeners_remove
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2023
      functionLinenumberEnd: 2030
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - io_remove
        - master_admin_client_can_accept
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2027,8'
          Dst:             master_admin_client_can_accept
        - Src:             'master-service.c:2028,4'
          Dst:             io_remove
    - functionName:    block_sigterm
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          53
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_error
        - sigaddset
        - sigemptyset
        - sigprocmask
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:81,6'
          Dst:             sigemptyset
        - Src:             'master-service.c:82,3'
          Dst:             i_error
        - Src:             'master-service.c:83,11'
          Dst:             sigaddset
        - Src:             'master-service.c:84,3'
          Dst:             i_error
        - Src:             'master-service.c:85,11'
          Dst:             sigprocmask
        - Src:             'master-service.c:86,3'
          Dst:             i_error
    - functionName:    master_service_accept
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1908
      functionLinenumberEnd: 1955
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          174
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - e_error
        - fstat
        - io_remove
        - master_admin_client_create
        - master_service_client_connection_callback
        - master_service_client_connection_created
        - master_service_connection_init_finish
        - master_service_haproxy_new
        - master_service_io_listeners_remove
        - net_accept
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1914,12'
          Dst:             net_accept
        - Src:             'master-service.c:1917,20'
          Dst:             __errno_location
        - Src:             'master-service.c:1919,7'
          Dst:             __errno_location
        - Src:             'master-service.c:1919,7'
          Dst:             __errno_location
        - Src:             'master-service.c:1922,7'
          Dst:             __errno_location
        - Src:             'master-service.c:1924,14'
          Dst:             __errno_location
        - Src:             'master-service.c:1925,8'
          Dst:             fstat
        - Src:             'master-service.c:1928,4'
          Dst:             __errno_location
        - Src:             'master-service.c:1929,4'
          Dst:             e_error
        - Src:             'master-service.c:1932,4'
          Dst:             master_service_io_listeners_remove
        - Src:             'master-service.c:1941,3'
          Dst:             io_remove
        - Src:             'master-service.c:1944,2'
          Dst:             master_service_connection_init_finish
        - Src:             'master-service.c:1947,3'
          Dst:             master_admin_client_create
        - Src:             'master-service.c:1950,2'
          Dst:             master_service_client_connection_created
        - Src:             'master-service.c:1952,3'
          Dst:             master_service_haproxy_new
        - Src:             'master-service.c:1954,3'
          Dst:             master_service_client_connection_callback
    - 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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_connection_init_finish
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          105
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - net_getsockname
        - net_set_nonblock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1196,8'
          Dst:             net_getsockname
        - Src:             'master-service.c:1202,2'
          Dst:             net_set_nonblock
    - functionName:    master_service_client_connection_created
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - master_status_update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1507,2'
          Dst:             i_panic
        - Src:             'master-service.c:1509,2'
          Dst:             master_status_update
    - functionName:    master_service_client_connection_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1570
      functionLinenumberEnd: 1574
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_client_connection_handled
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1573,2'
          Dst:             master_service_client_connection_handled
    - functionName:    master_service_client_connection_handled
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1566
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          118
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - close
        - e_error
        - i_panic
        - master_service_client_connection_destroyed
        - master_service_io_listeners_close
        - master_service_io_listeners_remove
        - master_service_want_listener
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1537,7'
          Dst:             close
        - Src:             'master-service.c:1538,4'
          Dst:             e_error
        - Src:             'master-service.c:1539,3'
          Dst:             master_service_client_connection_destroyed
        - Src:             'master-service.c:1543,3'
          Dst:             master_service_client_connection_destroyed
        - Src:             'master-service.c:1545,7'
          Dst:             master_service_want_listener
        - Src:             'master-service.c:1546,3'
          Dst:             i_panic
        - Src:             'master-service.c:1547,3'
          Dst:             master_service_io_listeners_remove
        - Src:             'master-service.c:1563,4'
          Dst:             master_service_io_listeners_close
    - functionName:    master_service_client_connection_destroyed
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1623
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          226
      EdgeCount:       47
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - master_service_io_listeners_add
        - master_service_io_listeners_remove
        - master_service_stop
        - master_status_update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1583,2'
          Dst:             i_panic
        - Src:             'master-service.c:1584,2'
          Dst:             i_panic
        - Src:             'master-service.c:1595,3'
          Dst:             i_panic
        - Src:             'master-service.c:1602,3'
          Dst:             master_service_io_listeners_add
        - Src:             'master-service.c:1605,3'
          Dst:             master_service_io_listeners_remove
        - Src:             'master-service.c:1609,3'
          Dst:             i_panic
        - Src:             'master-service.c:1611,3'
          Dst:             master_service_stop
        - Src:             'master-service.c:1619,3'
          Dst:             master_service_stop
        - Src:             'master-service.c:1621,3'
          Dst:             master_status_update
    - functionName:    master_service_want_listener
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_io_listeners_close
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2044
      functionLinenumberEnd: 2060
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - e_error
        - master_admin_client_can_accept
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2051,8'
          Dst:             master_admin_client_can_accept
        - Src:             'master-service.c:2052,8'
          Dst:             close
        - Src:             'master-service.c:2053,5'
          Dst:             e_error
    - functionName:    master_service_stop
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_stop
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1323,2'
          Dst:             io_loop_stop
    - functionName:    master_status_update
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2135
      functionLinenumberEnd: 2171
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          180
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - io_remove
        - master_status_send
        - master_status_update
        - master_status_update_is_important
        - process_title_set
        - t_pop
        - t_push
        - t_strdup_printf
        - timeout_add
        - timeout_remove
        - timeout_reset
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2139,63'
          Dst:             t_push
        - Src:             'master-service.c:2143,21'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:2143,3'
          Dst:             process_title_set
        - Src:             'master-service.c:2145,4'
          Dst:             t_pop
        - Src:             'master-service.c:2145,4'
          Dst:             i_panic
        - Src:             'master-service.c:2147,21'
          Dst:             master_status_update_is_important
        - Src:             'master-service.c:2152,3'
          Dst:             timeout_remove
        - Src:             'master-service.c:2153,3'
          Dst:             io_remove
        - Src:             'master-service.c:2160,4'
          Dst:             timeout_reset
        - Src:             'master-service.c:2163,5'
          Dst:             timeout_add
        - Src:             'master-service.c:2163,5'
          Dst:             master_status_update
        - Src:             'master-service.c:2167,4'
          Dst:             io_remove
        - Src:             'master-service.c:2170,2'
          Dst:             master_status_send
    - functionName:    master_status_update_is_important
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2063
      functionLinenumberEnd: 2079
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2077,2'
          Dst:             i_panic
    - functionName:    master_status_send
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2083
      functionLinenumberEnd: 2132
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          186
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - e_error
        - io_add
        - io_loop_stop
        - io_remove
        - master_status_update
        - timeout_remove
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2093,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:2095,8'
          Dst:             write
        - Src:             'master-service.c:2098,3'
          Dst:             io_remove
        - Src:             'master-service.c:2104,3'
          Dst:             e_error
        - Src:             'master-service.c:2107,3'
          Dst:             io_remove
        - Src:             'master-service.c:2108,13'
          Dst:             __errno_location
        - Src:             'master-service.c:2110,7'
          Dst:             __errno_location
        - Src:             'master-service.c:2111,4'
          Dst:             e_error
        - Src:             'master-service.c:2115,3'
          Dst:             io_remove
        - Src:             'master-service.c:2121,5'
          Dst:             io_add
        - Src:             'master-service.c:2121,5'
          Dst:             master_status_update
        - Src:             'master-service.c:2130,3'
          Dst:             io_loop_stop
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaddset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_overflow_timeout_msecs
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1835
      functionLinenumberEnd: 1853
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_rand_limit
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1841,28'
          Dst:             timeval_diff_msecs
        - Src:             'master-service.c:1848,2'
          Dst:             i_panic
        - Src:             'master-service.c:1853,17'
          Dst:             i_rand_limit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    buffer_clear
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/buffer.h:150,2'
          Dst:             buffer_set_used_size
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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-master/../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    str_clear
      functionSourceFile: '/src/dovecot/src/lib-master/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:97,2'
          Dst:             buffer_clear
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_error
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 945
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - master_admin_clients_deinit
        - master_service_stop
        - master_service_stop_new_connections
        - timeout_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:948,2'
          Dst:             master_admin_clients_deinit
        - Src:             'master-service.c:950,2'
          Dst:             master_service_stop_new_connections
        - Src:             'master-service.c:954,4'
          Dst:             master_service_stop
        - Src:             'master-service.c:957,5'
          Dst:             timeout_add
        - Src:             'master-service.c:957,5'
          Dst:             master_service_stop
    - functionName:    master_service_stop_new_connections
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1355
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - master_service_io_listeners_close
        - master_service_io_listeners_remove
        - master_service_stop
        - master_status_update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1334,2'
          Dst:             master_service_io_listeners_remove
        - Src:             'master-service.c:1335,2'
          Dst:             master_service_io_listeners_close
        - Src:             'master-service.c:1344,3'
          Dst:             master_service_stop
        - Src:             'master-service.c:1349,3'
          Dst:             master_status_update
    - functionName:    master_service_set_login_state
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1651
      functionLinenumberEnd: 1676
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - master_service_io_listeners_add
        - master_service_refresh_login_state
        - timeout_add
        - timeout_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'master-service.c:1654,2'
          Branch Sides:    []
      Callsites:
        - Src:             'master-service.c:1652,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1665,4'
          Dst:             timeout_add
        - Src:             'master-service.c:1665,4'
          Dst:             master_service_refresh_login_state
        - Src:             'master-service.c:1672,3'
          Dst:             master_service_io_listeners_add
        - Src:             'master-service.c:1675,2'
          Dst:             e_error
    - functionName:    master_service_refresh_login_state
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1694
      functionLinenumberEnd: 1699
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - master_service_get_login_state
        - master_service_set_login_state
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1697,6'
          Dst:             master_service_get_login_state
        - Src:             'master-service.c:1698,3'
          Dst:             master_service_set_login_state
    - functionName:    sig_term_buf_get_kick_user
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - strncmp
        - strpbrk
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:166,6'
          Dst:             strncmp
        - Src:             'master-service.c:175,6'
          Dst:             strncmp
        - Src:             'master-service.c:181,12'
          Dst:             strpbrk
    - 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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sig_service_kick_user_match
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:196,10'
          Dst:             strcmp
    - functionName:    sig_term_try_kick_user
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          153
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - accept
        - alarm
        - close
        - lib_signals_syscall_error
        - read
        - sig_service_kick_user_match
        - sig_term_buf_get_kick_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:218,10'
          Dst:             sig_service_kick_user_match
        - Src:             'master-service.c:222,7'
          Dst:             accept
        - Src:             'master-service.c:224,7'
          Dst:             __errno_location
        - Src:             'master-service.c:224,26'
          Dst:             __errno_location
        - Src:             'master-service.c:226,3'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:229,2'
          Dst:             alarm
        - Src:             'master-service.c:230,10'
          Dst:             read
        - Src:             'master-service.c:231,2'
          Dst:             alarm
        - Src:             'master-service.c:235,8'
          Dst:             sig_term_buf_get_kick_user
        - Src:             'master-service.c:241,10'
          Dst:             sig_service_kick_user_match
        - Src:             'master-service.c:243,13'
          Dst:             __errno_location
        - Src:             'master-service.c:244,3'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:246,6'
          Dst:             close
        - Src:             'master-service.c:247,3'
          Dst:             lib_signals_syscall_error
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sig_term_try_kick
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - master_admin_client_can_accept
        - sig_term_try_kick_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:261,7'
          Dst:             master_admin_client_can_accept
        - Src:             'master-service.c:262,10'
          Dst:             sig_term_try_kick_user
    - functionName:    master_service_can_idle_die
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_killed_signal
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dec2str
        - e_warning
        - lib_signal_code_to_str
        - master_service_is_user_kicked
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:96,6'
          Dst:             master_service_is_user_kicked
        - Src:             'master-service.c:99,2'
          Dst:             dec2str
        - Src:             'master-service.c:99,2'
          Dst:             dec2str
        - Src:             'master-service.c:99,2'
          Dst:             lib_signal_code_to_str
        - Src:             'master-service.c:99,2'
          Dst:             e_warning
    - functionName:    master_service_is_user_kicked
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1405
      functionLinenumberEnd: 1406
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sig_die_delayed
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - clock_gettime
        - lib_signal_delayed
        - lib_signals_syscall_error
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:285,7'
          Dst:             clock_gettime
        - Src:             'master-service.c:286,4'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:287,34'
          Dst:             time
        - Src:             'master-service.c:297,2'
          Dst:             lib_signal_delayed
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_set_killed_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2233
      functionLinenumberEnd: 2236
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_set_last_kick_signal_user
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2205
      functionLinenumberEnd: 2227
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          104
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - block_sigterm
        - e_error
        - i_strdup
        - p_free_internal
        - sigprocmask
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2208,25'
          Dst:             block_sigterm
        - Src:             'master-service.c:2210,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:2211,35'
          Dst:             i_strdup
        - Src:             'master-service.c:2215,6'
          Dst:             strcmp
        - Src:             'master-service.c:2223,25'
          Dst:             sigprocmask
        - Src:             'master-service.c:2224,3'
          Dst:             e_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_set_current_user
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2188
      functionLinenumberEnd: 2201
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - block_sigterm
        - e_error
        - i_strdup
        - p_free_internal
        - sigprocmask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2191,25'
          Dst:             block_sigterm
        - Src:             'master-service.c:2194,26'
          Dst:             i_strdup
        - Src:             'master-service.c:2195,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:2197,25'
          Dst:             sigprocmask
        - Src:             'master-service.c:2198,3'
          Dst:             e_error
    - functionName:    master_service_unset_process_shutdown_filter
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2182
      functionLinenumberEnd: 2184
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2183,2'
          Dst:             event_filter_unref
    - functionName:    master_service_set_process_shutdown_filter
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2175
      functionLinenumberEnd: 2179
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_ref
        - master_service_unset_process_shutdown_filter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2176,2'
          Dst:             master_service_unset_process_shutdown_filter
        - Src:             'master-service.c:2178,2'
          Dst:             event_filter_ref
    - functionName:    master_service_ssl_io_listeners_remove
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2041
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - io_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:2039,4'
          Dst:             io_remove
    - functionName:    master_service_deinit_forked
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1788
      functionLinenumberEnd: 1795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_destroy
        - master_service_deinit_real
        - master_service_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1791,2'
          Dst:             master_service_deinit_real
        - Src:             'master-service.c:1792,2'
          Dst:             io_loop_destroy
        - Src:             'master-service.c:1794,2'
          Dst:             master_service_free
    - functionName:    master_service_deinit_real
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1737
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - array_free_i
        - array_is_created_i
        - event_unregister_callback
        - i_close_fd_path
        - i_panic
        - io_remove
        - log_killed_signal
        - master_admin_clients_deinit
        - master_service_event_callback
        - master_service_haproxy_abort
        - master_service_is_killed
        - master_service_ssl_ctx_deinit
        - master_service_unset_process_shutdown_filter
        - p_free_internal
        - pool_unref
        - stats_client_deinit
        - t_pop
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1703,6'
          Dst:             master_service_is_killed
        - Src:             'master-service.c:1706,3'
          Dst:             log_killed_signal
        - Src:             'master-service.c:1710,8'
          Dst:             t_pop
        - Src:             'master-service.c:1711,4'
          Dst:             i_panic
        - Src:             'master-service.c:1713,2'
          Dst:             master_admin_clients_deinit
        - Src:             'master-service.c:1714,2'
          Dst:             master_service_haproxy_abort
        - Src:             'master-service.c:1717,3'
          Dst:             io_remove
        - Src:             'master-service.c:1718,2'
          Dst:             master_service_ssl_ctx_deinit
        - Src:             'master-service.c:1721,3'
          Dst:             stats_client_deinit
        - Src:             'master-service.c:1722,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1723,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1724,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1725,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1726,2'
          Dst:             io_remove
        - Src:             'master-service.c:1727,2'
          Dst:             io_remove
        - Src:             'master-service.c:1728,6'
          Dst:             array_is_created_i
        - Src:             'master-service.c:1729,3'
          Dst:             array_free_i
        - Src:             'master-service.c:1731,2'
          Dst:             pool_unref
        - Src:             'master-service.c:1732,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1734,2'
          Dst:             event_unregister_callback
        - Src:             'master-service.c:1734,2'
          Dst:             master_service_event_callback
        - Src:             'master-service.c:1735,2'
          Dst:             master_service_unset_process_shutdown_filter
        - Src:             'master-service.c:1736,2'
          Dst:             i_close_fd_path
    - functionName:    master_service_free
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1740
      functionLinenumberEnd: 1766
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 3
      functionsReached:
        - event_unref
        - p_free_internal
        - settings_root_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1751,2'
          Dst:             settings_root_deinit
        - Src:             'master-service.c:1754,3'
          Dst:             p_free_internal
        - Src:             'master-service.c:1755,3'
          Dst:             p_free_internal
        - Src:             'master-service.c:1757,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1758,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1759,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1760,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1761,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1762,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1763,2'
          Dst:             p_free_internal
        - Src:             'master-service.c:1764,2'
          Dst:             event_unref
        - Src:             'master-service.c:1765,2'
          Dst:             p_free_internal
    - functionName:    master_service_is_killed
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1379
      functionLinenumberEnd: 1380
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_event_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          89
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - event_add_category
        - event_filter_match
        - event_set_ptr
        - master_service_stop_new_connections
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:379,3'
          Dst:             event_add_category
        - Src:             'master-service.c:382,4'
          Dst:             event_set_ptr
        - Src:             'master-service.c:389,6'
          Dst:             event_filter_match
        - Src:             'master-service.c:391,3'
          Dst:             master_service_stop_new_connections
    - functionName:    master_service_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1769
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - io_loop_destroy
        - lib_atexit_run
        - lib_deinit
        - lib_signals_deinit
        - master_service_deinit_real
        - master_service_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1773,2'
          Dst:             master_service_deinit_real
        - Src:             'master-service.c:1776,3'
          Dst:             lib_signals_deinit
        - Src:             'master-service.c:1778,3'
          Dst:             lib_atexit_run
        - Src:             'master-service.c:1780,2'
          Dst:             io_loop_destroy
        - Src:             'master-service.c:1782,2'
          Dst:             master_service_free
        - Src:             'master-service.c:1784,3'
          Dst:             lib_deinit
    - functionName:    master_service_connection_get_type
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1647
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1628,2'
          Dst:             i_panic
        - Src:             'master-service.c:1634,9'
          Dst:             strrchr
        - Src:             'master-service.c:1640,11'
          Dst:             strrchr
    - functionName:    master_service_client_connection_accept
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1579
      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:    master_service_anvil_disconnect
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1503
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - guid_128_to_string
        - master_service_anvil_send
        - master_service_anvil_session_to_cmd
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1496,18'
          Dst:             t_str_new
        - Src:             'master-service.c:1497,2'
          Dst:             str_append
        - Src:             'master-service.c:1498,18'
          Dst:             guid_128_to_string
        - Src:             'master-service.c:1498,2'
          Dst:             str_append
        - Src:             'master-service.c:1499,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1500,2'
          Dst:             master_service_anvil_session_to_cmd
        - Src:             'master-service.c:1501,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1502,43'
          Dst:             str_c
        - Src:             'master-service.c:1502,8'
          Dst:             master_service_anvil_send
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    master_service_anvil_session_to_cmd
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1444
      functionLinenumberEnd: 1452
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - net_ip2addr
        - str_append
        - str_append_c
        - str_append_tabescaped
        - str_printfa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1445,2'
          Dst:             str_printfa
        - Src:             'master-service.c:1446,2'
          Dst:             str_append_tabescaped
        - Src:             'master-service.c:1447,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1448,2'
          Dst:             str_append_tabescaped
        - Src:             'master-service.c:1449,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1451,19'
          Dst:             net_ip2addr
        - Src:             'master-service.c:1451,3'
          Dst:             str_append
    - functionName:    master_service_anvil_send
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1417
      functionLinenumberEnd: 1439
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_error
        - i_panic
        - strlen
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1423,36'
          Dst:             strlen
        - Src:             'master-service.c:1423,8'
          Dst:             write
        - Src:             'master-service.c:1425,7'
          Dst:             __errno_location
        - Src:             'master-service.c:1430,3'
          Dst:             e_error
        - Src:             'master-service.c:1433,3'
          Dst:             e_error
        - Src:             'master-service.c:1436,3'
          Dst:             strlen
        - Src:             'master-service.c:1436,3'
          Dst:             i_panic
    - functionName:    master_service_anvil_connect
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1489
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          173
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - master_service_anvil_send
        - master_service_anvil_session_to_cmd
        - master_service_get_client_limit
        - net_ip2addr
        - str_append
        - str_append_c
        - str_append_tabescaped
        - str_c
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1458,2'
          Dst:             guid_128_generate
        - Src:             'master-service.c:1460,18'
          Dst:             t_str_new
        - Src:             'master-service.c:1461,2'
          Dst:             str_append
        - Src:             'master-service.c:1462,18'
          Dst:             guid_128_to_string
        - Src:             'master-service.c:1462,2'
          Dst:             str_append
        - Src:             'master-service.c:1463,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1464,2'
          Dst:             master_service_anvil_session_to_cmd
        - Src:             'master-service.c:1465,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1467,3'
          Dst:             str_append_c
        - Src:             'master-service.c:1468,11'
          Dst:             master_service_get_client_limit
        - Src:             'master-service.c:1469,3'
          Dst:             str_append_c
        - Src:             'master-service.c:1471,3'
          Dst:             str_append_c
        - Src:             'master-service.c:1473,3'
          Dst:             str_append_c
        - Src:             'master-service.c:1474,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1476,19'
          Dst:             net_ip2addr
        - Src:             'master-service.c:1476,3'
          Dst:             str_append
        - Src:             'master-service.c:1478,29'
          Dst:             t_str_new
        - Src:             'master-service.c:1481,5'
          Dst:             str_append_c
        - Src:             'master-service.c:1482,4'
          Dst:             str_append_tabescaped
        - Src:             'master-service.c:1485,3'
          Dst:             str_append_c
        - Src:             'master-service.c:1486,30'
          Dst:             str_c
        - Src:             'master-service.c:1486,3'
          Dst:             str_append_tabescaped
        - Src:             'master-service.c:1488,2'
          Dst:             str_append_c
        - Src:             'master-service.c:1489,44'
          Dst:             str_c
        - Src:             'master-service.c:1489,9'
          Dst:             master_service_anvil_send
    - functionName:    master_service_get_client_limit
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_is_master_stopped
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1412
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_get_kill_time
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1390
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - block_sigterm
        - e_error
        - sigprocmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1393,25'
          Dst:             block_sigterm
        - Src:             'master-service.c:1398,7'
          Dst:             sigprocmask
        - Src:             'master-service.c:1399,4'
          Dst:             e_error
    - functionName:    master_service_get_kill_signal
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1385
      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:    master_service_remove_stop_new_connections_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1376
      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:             'master-service.c:1371,2'
          Dst:             i_panic
        - Src:             'master-service.c:1372,2'
          Dst:             i_panic
    - functionName:    master_service_add_stop_new_connections_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1365
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1362,2'
          Dst:             i_panic
    - functionName:    master_service_ioloop_check_killed
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1294
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_stop
        - master_service_is_killed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1292,6'
          Dst:             master_service_is_killed
        - Src:             'master-service.c:1293,3'
          Dst:             io_loop_stop
    - functionName:    master_service_ioloop_run_interruptible
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_run
        - master_service_ioloop_check_killed
        - master_service_is_killed
        - timeout_add_short_to
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1301,3'
          Dst:             io_loop_run
        - Src:             'master-service.c:1314,7'
          Dst:             timeout_add_short_to
        - Src:             'master-service.c:1314,7'
          Dst:             master_service_ioloop_check_killed
        - Src:             'master-service.c:1316,2'
          Dst:             io_loop_run
        - Src:             'master-service.c:1317,2'
          Dst:             timeout_remove
        - Src:             'master-service.c:1318,9'
          Dst:             master_service_is_killed
    - functionName:    master_service_start_accepted_fd
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - master_service_client_connection_callback
        - master_service_client_connection_created
        - master_service_connection_init_finish
        - master_service_haproxy_new
        - net_getpeername
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1253,8'
          Dst:             net_getpeername
        - Src:             'master-service.c:1254,2'
          Dst:             master_service_connection_init_finish
        - Src:             'master-service.c:1257,2'
          Dst:             master_service_client_connection_created
        - Src:             'master-service.c:1259,3'
          Dst:             master_service_haproxy_new
        - Src:             'master-service.c:1261,3'
          Dst:             master_service_client_connection_callback
    - functionName:    master_service_run
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - io_loop_is_running
        - io_loop_run
        - io_loop_set_running
        - master_service_start_accepted_fd
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1270,43'
          Dst:             t_push
        - Src:             'master-service.c:1275,3'
          Dst:             io_loop_set_running
        - Src:             'master-service.c:1276,3'
          Dst:             master_service_start_accepted_fd
        - Src:             'master-service.c:1277,9'
          Dst:             io_loop_is_running
        - Src:             'master-service.c:1278,4'
          Dst:             t_pop
        - Src:             'master-service.c:1278,4'
          Dst:             i_panic
        - Src:             'master-service.c:1280,3'
          Dst:             io_loop_run
    - functionName:    master_service_get_settings_root
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1238
      functionLinenumberEnd: 1239
      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:    master_service_get_configured_name
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_get_event
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1228
      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:    master_service_get_name
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_get_version_string
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1218
      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:    master_service_get_config_path
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1213
      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:    master_service_set_avail_overflow_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      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:    master_service_get_socket_count
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1185
      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:    master_service_get_restart_request_count
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1180
      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:    master_service_get_idle_kill_interval_secs
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1159
      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:    master_service_get_process_min_avail
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1153
      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:    master_service_get_process_limit
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1147
      functionLinenumberEnd: 1148
      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:    master_service_env_clean
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          63
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - env_clean
        - env_clean_except
        - getenv
        - i_panic
        - t_pop
        - t_push
        - t_strconcat
        - t_strsplit_spaces
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1115,22'
          Dst:             getenv
        - Src:             'master-service.c:1118,3'
          Dst:             env_clean
        - Src:             'master-service.c:1119,7'
          Dst:             t_push
        - Src:             'master-service.c:1120,11'
          Dst:             t_strconcat
        - Src:             'master-service.c:1121,20'
          Dst:             t_strsplit_spaces
        - Src:             'master-service.c:1121,3'
          Dst:             env_clean_except
        - Src:             'master-service.c:1122,4'
          Dst:             t_pop
        - Src:             'master-service.c:1122,4'
          Dst:             i_panic
    - functionName:    master_service_import_environment_real
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - env_put
        - getenv
        - i_fatal
        - pool_datastack_create
        - str_c
        - str_clear
        - str_len
        - strchr
        - t_str_new
        - t_strarray_join
        - t_strdup_until
        - t_strsplit_tabescaped
        - var_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1069,2'
          Dst:             pool_datastack_create
        - Src:             'master-service.c:1069,2'
          Dst:             array_create_i
        - Src:             'master-service.c:1071,10'
          Dst:             getenv
        - Src:             'master-service.c:1073,3'
          Dst:             array_append_i
        - Src:             'master-service.c:1082,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'master-service.c:1083,13'
          Dst:             t_str_new
        - Src:             'master-service.c:1085,11'
          Dst:             strchr
        - Src:             'master-service.c:1089,10'
          Dst:             t_strdup_until
        - Src:             'master-service.c:1090,8'
          Dst:             var_expand
        - Src:             'master-service.c:1091,5'
          Dst:             i_fatal
        - Src:             'master-service.c:1092,8'
          Dst:             str_len
        - Src:             'master-service.c:1093,13'
          Dst:             str_c
        - Src:             'master-service.c:1094,5'
          Dst:             env_put
        - Src:             'master-service.c:1095,5'
          Dst:             str_clear
        - Src:             'master-service.c:1098,3'
          Dst:             array_append_i
        - Src:             'master-service.c:1100,2'
          Dst:             array_append_space_i
        - Src:             'master-service.c:1102,26'
          Dst:             array_idx_i
        - Src:             'master-service.c:1102,10'
          Dst:             t_strarray_join
        - Src:             'master-service.c:1103,2'
          Dst:             env_put
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_import_environment
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - master_service_import_environment_real
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1108,2'
          Dst:             t_push
        - Src:             'master-service.c:1109,3'
          Dst:             master_service_import_environment_real
        - Src:             'master-service.c:1110,4'
          Dst:             t_pop
        - Src:             'master-service.c:1110,4'
          Dst:             i_panic
    - functionName:    master_status_update_wait
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_create
        - io_loop_destroy
        - io_loop_move_io
        - io_loop_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:981,26'
          Dst:             io_loop_create
        - Src:             'master-service.c:983,29'
          Dst:             io_loop_move_io
        - Src:             'master-service.c:985,3'
          Dst:             io_loop_run
        - Src:             'master-service.c:987,2'
          Dst:             io_loop_destroy
    - functionName:    sig_close_listeners
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dup2
        - lib_signals_syscall_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:353,8'
          Dst:             dup2
        - Src:             'master-service.c:354,5'
          Dst:             lib_signals_syscall_error
    - functionName:    dup2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_status_error
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_set_failure_ignore_errors
        - io_remove
        - master_service_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:970,2'
          Dst:             io_remove
        - Src:             'master-service.c:974,2'
          Dst:             i_set_failure_ignore_errors
        - Src:             'master-service.c:976,2'
          Dst:             master_service_error
    - functionName:    sig_delayed_state_changed
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_refresh_login_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:365,2'
          Dst:             master_service_refresh_login_state
    - functionName:    sig_term
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          90
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - lib_signals_syscall_error
        - sig_die_delayed
        - sig_term_try_kick
        - sigaddset
        - sigemptyset
        - sigprocmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:315,20'
          Dst:             __errno_location
        - Src:             'master-service.c:319,6'
          Dst:             sigemptyset
        - Src:             'master-service.c:320,3'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:321,11'
          Dst:             sigaddset
        - Src:             'master-service.c:322,3'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:323,11'
          Dst:             sigprocmask
        - Src:             'master-service.c:324,3'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:326,18'
          Dst:             sig_term_try_kick
        - Src:             'master-service.c:327,7'
          Dst:             sigprocmask
        - Src:             'master-service.c:328,4'
          Dst:             lib_signals_syscall_error
        - Src:             'master-service.c:332,3'
          Dst:             sig_die_delayed
        - Src:             'master-service.c:333,2'
          Dst:             __errno_location
    - functionName:    sig_delayed_die
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          150
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - io_loop_stop
        - log_killed_signal
        - master_admin_clients_wait_commands
        - master_service_can_idle_die
        - master_status_send
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:130,3'
          Dst:             master_admin_clients_wait_commands
        - Src:             'master-service.c:136,3'
          Dst:             log_killed_signal
        - Src:             'master-service.c:143,8'
          Dst:             master_service_can_idle_die
        - Src:             'master-service.c:146,4'
          Dst:             master_status_send
        - Src:             'master-service.c:157,3'
          Dst:             io_loop_stop
    - functionName:    sig_standalone_die
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sig_die_delayed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:306,2'
          Dst:             sig_die_delayed
    - functionName:    master_service_init_finish
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          261
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - fstat
        - getenv
        - i_fatal
        - i_panic
        - io_add
        - lib_set_clean_exit
        - lib_signals_set_handler
        - lib_signals_set_handler2
        - master_service_io_listeners_add
        - master_service_ssl_ctx_init
        - master_status_error
        - master_status_update
        - master_status_update_wait
        - process_title_get_counter
        - process_title_set
        - sig_close_listeners
        - sig_delayed_die
        - sig_delayed_state_changed
        - sig_standalone_die
        - sig_term
        - t_pop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:994,2'
          Dst:             i_panic
        - Src:             'master-service.c:998,2'
          Dst:             lib_set_clean_exit
        - Src:             'master-service.c:1003,3'
          Dst:             lib_signals_set_handler2
        - Src:             'master-service.c:1003,3'
          Dst:             sig_standalone_die
        - Src:             'master-service.c:1003,3'
          Dst:             sig_delayed_die
        - Src:             'master-service.c:1005,3'
          Dst:             lib_signals_set_handler2
        - Src:             'master-service.c:1005,3'
          Dst:             sig_standalone_die
        - Src:             'master-service.c:1005,3'
          Dst:             sig_delayed_die
        - Src:             'master-service.c:1009,3'
          Dst:             lib_signals_set_handler
        - Src:             'master-service.c:1009,3'
          Dst:             sig_delayed_die
        - Src:             'master-service.c:1012,4'
          Dst:             lib_signals_set_handler
        - Src:             'master-service.c:1012,4'
          Dst:             sig_delayed_die
        - Src:             'master-service.c:1015,4'
          Dst:             lib_signals_set_handler2
        - Src:             'master-service.c:1015,4'
          Dst:             sig_term
        - Src:             'master-service.c:1015,4'
          Dst:             sig_delayed_die
        - Src:             'master-service.c:1020,3'
          Dst:             lib_signals_set_handler
        - Src:             'master-service.c:1020,3'
          Dst:             sig_delayed_state_changed
        - Src:             'master-service.c:1025,7'
          Dst:             fstat
        - Src:             'master-service.c:1026,4'
          Dst:             i_fatal
        - Src:             'master-service.c:1029,30'
          Dst:             io_add
        - Src:             'master-service.c:1029,30'
          Dst:             master_status_error
        - Src:             'master-service.c:1031,3'
          Dst:             lib_signals_set_handler
        - Src:             'master-service.c:1031,3'
          Dst:             sig_close_listeners
        - Src:             'master-service.c:1033,2'
          Dst:             master_service_io_listeners_add
        - Src:             'master-service.c:1036,3'
          Dst:             master_service_ssl_ctx_init
        - Src:             'master-service.c:1042,2'
          Dst:             master_status_update
        - Src:             'master-service.c:1044,3'
          Dst:             master_status_update_wait
        - Src:             'master-service.c:1048,8'
          Dst:             t_pop
        - Src:             'master-service.c:1049,4'
          Dst:             i_panic
        - Src:             'master-service.c:1054,6'
          Dst:             process_title_get_counter
        - Src:             'master-service.c:1055,6'
          Dst:             getenv
        - Src:             'master-service.c:1056,3'
          Dst:             process_title_set
    - functionName:    get_instance_config
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - master_instance_list_deinit
        - master_instance_list_find_by_name
        - master_instance_list_init
        - t_readlink
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:893,18'
          Dst:             t_strconcat
        - Src:             'master-service.c:894,9'
          Dst:             master_instance_list_init
        - Src:             'master-service.c:895,9'
          Dst:             master_instance_list_find_by_name
        - Src:             'master-service.c:897,10'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:899,7'
          Dst:             t_readlink
        - Src:             'master-service.c:900,4'
          Dst:             i_fatal
        - Src:             'master-service.c:902,2'
          Dst:             master_instance_list_deinit
    - functionName:    master_service_set_idle_die_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 880
      functionLinenumberEnd: 882
      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:    master_service_set_die_timeout_msecs
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 876
      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:    master_service_set_die_callback
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 870
      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:    master_service_set_die_with_master
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 862
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_init_stats_client
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - stats_client_init
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:852,57'
          Dst:             t_push
        - Src:             'master-service.c:853,22'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:856,27'
          Dst:             stats_client_init
        - Src:             'master-service.c:857,4'
          Dst:             t_pop
        - Src:             'master-service.c:857,4'
          Dst:             i_panic
    - functionName:    master_service_init_log_with_pid
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_init_log_with_prefix
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:844,47'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:844,2'
          Dst:             master_service_init_log_with_prefix
    - functionName:    master_service_init_log_with_prefix
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_set_failure_prefix
        - master_service_try_init_log
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:835,3'
          Dst:             i_set_failure_prefix
        - Src:             'master-service.c:838,6'
          Dst:             master_service_try_init_log
    - functionName:    master_service_try_init_log
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          311
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - default_error_handler
        - default_fatal_handler
        - getenv
        - i_panic
        - i_set_debug_file
        - i_set_error_handler
        - i_set_failure_file
        - i_set_failure_internal
        - i_set_failure_prefix
        - i_set_failure_syslog
        - i_set_failure_timestamp_format
        - i_set_fatal_handler
        - i_set_info_file
        - strcmp
        - syslog_facility_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:764,2'
          Dst:             i_panic
        - Src:             'master-service.c:768,15'
          Dst:             getenv
        - Src:             'master-service.c:770,4'
          Dst:             i_set_failure_timestamp_format
        - Src:             'master-service.c:771,3'
          Dst:             i_set_failure_file
        - Src:             'master-service.c:775,6'
          Dst:             getenv
        - Src:             'master-service.c:777,3'
          Dst:             i_set_failure_internal
        - Src:             'master-service.c:778,3'
          Dst:             i_set_failure_prefix
        - Src:             'master-service.c:783,3'
          Dst:             i_set_failure_file
        - Src:             'master-service.c:788,6'
          Dst:             strcmp
        - Src:             'master-service.c:790,3'
          Dst:             i_set_failure_file
        - Src:             'master-service.c:793,6'
          Dst:             strcmp
        - Src:             'master-service.c:794,6'
          Dst:             strcmp
        - Src:             'master-service.c:795,6'
          Dst:             strcmp
        - Src:             'master-service.c:799,8'
          Dst:             syslog_facility_find
        - Src:             'master-service.c:802,3'
          Dst:             i_set_failure_syslog
        - Src:             'master-service.c:804,3'
          Dst:             i_set_failure_prefix
        - Src:             'master-service.c:806,7'
          Dst:             strcmp
        - Src:             'master-service.c:808,4'
          Dst:             i_set_fatal_handler
        - Src:             'master-service.c:808,4'
          Dst:             default_fatal_handler
        - Src:             'master-service.c:809,4'
          Dst:             i_set_error_handler
        - Src:             'master-service.c:809,4'
          Dst:             default_error_handler
        - Src:             'master-service.c:814,6'
          Dst:             strcmp
        - Src:             'master-service.c:815,3'
          Dst:             i_set_info_file
        - Src:             'master-service.c:818,6'
          Dst:             strcmp
        - Src:             'master-service.c:819,3'
          Dst:             i_set_debug_file
        - Src:             'master-service.c:820,2'
          Dst:             i_set_failure_timestamp_format
    - functionName:    master_service_init_log
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 828
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_init_log_with_prefix
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:826,47'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:826,2'
          Dst:             master_service_init_log_with_prefix
    - functionName:    master_getopt_long
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - getopt_long
        - i_panic
        - master_getopt
        - master_getopt_str_is_valid
        - master_service_parse_option
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:721,10'
          Dst:             master_getopt
        - Src:             'master-service.c:723,2'
          Dst:             master_getopt_str_is_valid
        - Src:             'master-service.c:723,2'
          Dst:             i_panic
        - Src:             'master-service.c:728,14'
          Dst:             getopt_long
        - Src:             'master-service.c:731,8'
          Dst:             master_service_parse_option
        - Src:             'master-service.c:737,3'
          Dst:             i_panic
    - functionName:    master_getopt
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __posix_getopt
        - i_panic
        - master_getopt_str_is_valid
        - master_service_parse_option
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:705,2'
          Dst:             master_getopt_str_is_valid
        - Src:             'master-service.c:705,2'
          Dst:             i_panic
        - Src:             'master-service.c:708,14'
          Dst:             __posix_getopt
        - Src:             'master-service.c:710,8'
          Dst:             master_service_parse_option
        - Src:             'master-service.c:713,2'
          Dst:             i_panic
    - functionName:    master_getopt_str_is_valid
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getopt_long
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_parse_option
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          135
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - get_instance_config
        - i_fatal
        - i_strdup
        - p_free_internal
      functionUses:    6
      BranchProfiles:
        - Branch String:   'master-service.c:911,2'
          Branch Sides:    []
      Callsites:
        - Src:             'master-service.c:913,3'
          Dst:             p_free_internal
        - Src:             'master-service.c:914,26'
          Dst:             i_strdup
        - Src:             'master-service.c:919,8'
          Dst:             get_instance_config
        - Src:             'master-service.c:920,4'
          Dst:             i_fatal
        - Src:             'master-service.c:921,26'
          Dst:             i_strdup
        - Src:             'master-service.c:928,8'
          Dst:             array_is_created_i
        - Src:             'master-service.c:929,4'
          Dst:             array_create_i
        - Src:             'master-service.c:930,3'
          Dst:             array_append_i
    - functionName:    __posix_getopt
      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:    master_service_register_long_options
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 699
      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:    master_service_verify_version_string
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:398,6'
          Dst:             strcmp
        - Src:             'master-service.c:399,3'
          Dst:             i_fatal
    - functionName:    master_service_set_restart_request_count
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1176
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1169,2'
          Dst:             i_panic
    - functionName:    master_service_set_client_limit
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:1130,2'
          Dst:             i_panic
        - Src:             'master-service.c:1135,2'
          Dst:             i_panic
    - functionName:    master_service_init_socket_listeners
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          249
      EdgeCount:       50
      CyclomaticComplexity: 13
      functionsReached:
        - getenv
        - i_strdup_empty
        - malloc_multiply_check
        - master_admin_client_can_accept
        - p_free_internal
        - p_malloc
        - strchr
        - strcmp
        - t_strdup_printf
        - t_strdup_until
        - t_strsplit_tabescaped
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:416,3'
          Dst:             malloc_multiply_check
        - Src:             'master-service.c:416,3'
          Dst:             p_malloc
        - Src:             'master-service.c:424,18'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:424,11'
          Dst:             getenv
        - Src:             'master-service.c:427,5'
          Dst:             t_strsplit_tabescaped
        - Src:             'master-service.c:430,15'
          Dst:             i_strdup_empty
        - Src:             'master-service.c:431,9'
          Dst:             master_admin_client_can_accept
        - Src:             'master-service.c:438,14'
          Dst:             strchr
        - Src:             'master-service.c:440,14'
          Dst:             t_strdup_until
        - Src:             'master-service.c:446,9'
          Dst:             strcmp
        - Src:             'master-service.c:449,16'
          Dst:             strcmp
        - Src:             'master-service.c:451,16'
          Dst:             strcmp
        - Src:             'master-service.c:452,6'
          Dst:             p_free_internal
        - Src:             'master-service.c:453,16'
          Dst:             i_strdup_empty
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    master_service_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         142
      ICount:          827
      EdgeCount:       183
      CyclomaticComplexity: 43
      functionsReached:
        - e_error
        - env_remove
        - event_create
        - event_filter_create
        - event_filter_parse
        - event_filter_unref
        - event_register_callback
        - event_set_global_debug_log_filter
        - event_set_ptr
        - getenv
        - getpid
        - i_fatal
        - i_panic
        - i_set_failure_internal
        - i_set_failure_prefix
        - i_strconcat
        - i_strdup
        - i_strdup_printf
        - io_loop_create
        - lib_init
        - lib_is_initialized
        - lib_signals_ignore
        - lib_signals_init
        - malloc_multiply_check
        - master_service_event_callback
        - master_service_getopt_string
        - master_service_init_socket_listeners
        - master_service_set_client_limit
        - master_service_set_restart_request_count
        - master_service_verify_version_string
        - p_malloc
        - process_title_init
        - process_title_set
        - restrict_access_allow_coredumps
        - settings_root_init
        - ssl_module_load
        - stats_client_init
        - str_to_int
        - str_to_uint
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service.c:473,2'
          Dst:             i_panic
        - Src:             'master-service.c:490,3'
          Dst:             restrict_access_allow_coredumps
        - Src:             'master-service.c:495,6'
          Dst:             lib_is_initialized
        - Src:             'master-service.c:498,3'
          Dst:             lib_init
        - Src:             'master-service.c:509,28'
          Dst:             getenv
        - Src:             'master-service.c:514,2'
          Dst:             i_set_failure_prefix
        - Src:             'master-service.c:520,24'
          Dst:             t_push
        - Src:             'master-service.c:524,3'
          Dst:             lib_signals_init
        - Src:             'master-service.c:525,2'
          Dst:             lib_signals_ignore
        - Src:             'master-service.c:526,2'
          Dst:             lib_signals_ignore
        - Src:             'master-service.c:528,6'
          Dst:             getenv
        - Src:             'master-service.c:531,2'
          Dst:             process_title_init
        - Src:             'master-service.c:533,6'
          Dst:             getenv
        - Src:             'master-service.c:534,3'
          Dst:             process_title_set
        - Src:             'master-service.c:538,28'
          Dst:             getenv
        - Src:             'master-service.c:542,12'
          Dst:             malloc_multiply_check
        - Src:             'master-service.c:542,12'
          Dst:             p_malloc
        - Src:             'master-service.c:545,18'
          Dst:             i_strdup
        - Src:             'master-service.c:546,29'
          Dst:             i_strdup
        - Src:             'master-service.c:547,27'
          Dst:             settings_root_init
        - Src:             'master-service.c:551,3'
          Dst:             i_strdup_printf
        - Src:             'master-service.c:553,2'
          Dst:             event_register_callback
        - Src:             'master-service.c:553,2'
          Dst:             master_service_event_callback
        - Src:             'master-service.c:555,19'
          Dst:             event_create
        - Src:             'master-service.c:556,2'
          Dst:             event_set_ptr
        - Src:             'master-service.c:561,12'
          Dst:             master_service_getopt_string
        - Src:             'master-service.c:561,3'
          Dst:             i_strdup
        - Src:             'master-service.c:562,27'
          Dst:             master_service_getopt_string
        - Src:             'master-service.c:562,3'
          Dst:             i_strconcat
        - Src:             'master-service.c:564,20'
          Dst:             io_loop_create
        - Src:             'master-service.c:569,34'
          Dst:             getenv
        - Src:             'master-service.c:569,25'
          Dst:             i_strdup
        - Src:             'master-service.c:571,35'
          Dst:             getenv
        - Src:             'master-service.c:571,26'
          Dst:             i_strdup
        - Src:             'master-service.c:573,26'
          Dst:             i_strdup
        - Src:             'master-service.c:578,29'
          Dst:             getenv
        - Src:             'master-service.c:580,11'
          Dst:             getenv
        - Src:             'master-service.c:581,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:582,4'
          Dst:             i_fatal
        - Src:             'master-service.c:583,3'
          Dst:             t_push
        - Src:             'master-service.c:584,4'
          Dst:             master_service_init_socket_listeners
        - Src:             'master-service.c:585,5'
          Dst:             t_pop
        - Src:             'master-service.c:585,5'
          Dst:             i_panic
        - Src:             'master-service.c:589,24'
          Dst:             getenv
        - Src:             'master-service.c:595,7'
          Dst:             ssl_module_load
        - Src:             'master-service.c:596,4'
          Dst:             i_fatal
        - Src:             'master-service.c:601,6'
          Dst:             getenv
        - Src:             'master-service.c:602,3'
          Dst:             i_set_failure_internal
        - Src:             'master-service.c:603,2'
          Dst:             i_set_failure_prefix
        - Src:             'master-service.c:606,10'
          Dst:             getenv
        - Src:             'master-service.c:610,12'
          Dst:             event_filter_create
        - Src:             'master-service.c:611,7'
          Dst:             event_filter_parse
        - Src:             'master-service.c:612,4'
          Dst:             e_error
        - Src:             'master-service.c:616,4'
          Dst:             event_set_global_debug_log_filter
        - Src:             'master-service.c:618,3'
          Dst:             event_filter_unref
        - Src:             'master-service.c:623,11'
          Dst:             getenv
        - Src:             'master-service.c:625,7'
          Dst:             str_to_uint
        - Src:             'master-service.c:626,4'
          Dst:             i_fatal
        - Src:             'master-service.c:627,32'
          Dst:             getpid
        - Src:             'master-service.c:630,11'
          Dst:             getenv
        - Src:             'master-service.c:631,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:633,4'
          Dst:             i_fatal
        - Src:             'master-service.c:634,3'
          Dst:             master_service_set_client_limit
        - Src:             'master-service.c:637,11'
          Dst:             getenv
        - Src:             'master-service.c:638,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:642,11'
          Dst:             getenv
        - Src:             'master-service.c:643,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:648,11'
          Dst:             getenv
        - Src:             'master-service.c:649,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:651,4'
          Dst:             master_service_set_restart_request_count
        - Src:             'master-service.c:654,11'
          Dst:             getenv
        - Src:             'master-service.c:655,24'
          Dst:             str_to_uint
        - Src:             'master-service.c:658,3'
          Dst:             master_service_set_client_limit
        - Src:             'master-service.c:659,3'
          Dst:             master_service_set_restart_request_count
        - Src:             'master-service.c:663,11'
          Dst:             getenv
        - Src:             'master-service.c:665,28'
          Dst:             stats_client_init
        - Src:             'master-service.c:668,2'
          Dst:             master_service_verify_version_string
        - Src:             'master-service.c:670,10'
          Dst:             getenv
        - Src:             'master-service.c:673,11'
          Dst:             str_to_int
        - Src:             'master-service.c:676,3'
          Dst:             i_fatal
        - Src:             'master-service.c:681,3'
          Dst:             env_remove
        - Src:             'master-service.c:682,3'
          Dst:             env_remove
        - Src:             'master-service.c:683,3'
          Dst:             env_remove
        - Src:             'master-service.c:684,3'
          Dst:             env_remove
        - Src:             'master-service.c:685,3'
          Dst:             t_push
        - Src:             'master-service.c:687,16'
          Dst:             t_strdup_printf
        - Src:             'master-service.c:687,5'
          Dst:             env_remove
        - Src:             'master-service.c:688,5'
          Dst:             t_pop
        - Src:             'master-service.c:688,5'
          Dst:             i_panic
    - functionName:    master_service_getopt_string
      functionSourceFile: '/src/dovecot/src/lib-master/master-service.c'
      linkageType:     externalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_client_deinit_timeout
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - io_loop_stop
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:335,25'
          Dst:             timeval_diff_msecs
        - Src:             'stats-client.c:337,2'
          Dst:             e_error
        - Src:             'stats-client.c:340,2'
          Dst:             io_loop_stop
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    stats_client_handshake_timeout
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - io_loop_stop
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:324,25'
          Dst:             timeval_diff_msecs
        - Src:             'stats-client.c:326,2'
          Dst:             e_error
        - Src:             'stats-client.c:330,2'
          Dst:             io_loop_stop
    - functionName:    stats_client_send_registered_categories
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - event_get_registered_categories
        - o_stream_nsend
        - stats_category_append
        - str_data
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:376,18'
          Dst:             t_str_new
        - Src:             'stats-client.c:377,15'
          Dst:             event_get_registered_categories
        - Src:             'stats-client.c:379,3'
          Dst:             stats_category_append
        - Src:             'stats-client.c:380,38'
          Dst:             str_data
        - Src:             'stats-client.c:380,53'
          Dst:             str_len
        - Src:             'stats-client.c:380,2'
          Dst:             o_stream_nsend
    - functionName:    stats_category_append
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append
        - str_append_c
        - str_append_tabescaped
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:284,2'
          Dst:             str_append
        - Src:             'stats-client.c:285,2'
          Dst:             str_append_tabescaped
        - Src:             'stats-client.c:287,3'
          Dst:             str_append_c
        - Src:             'stats-client.c:288,3'
          Dst:             str_append_tabescaped
        - Src:             'stats-client.c:290,2'
          Dst:             str_append_c
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_append
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    o_stream_uncork_flush
      functionSourceFile: '/src/dovecot/src/lib-master/../../src/lib/ostream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_flush
        - o_stream_uncork
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/ostream.h:176,2'
          Dst:             o_stream_uncork
        - Src:             '../../src/lib/ostream.h:177,9'
          Dst:             o_stream_flush
    - functionName:    stats_event_write
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          247
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - event_export
        - event_minimize
        - event_ref
        - event_unref
        - i_panic
        - o_stream_nsend
        - stats_event_write
        - str_append_c
        - str_data
        - str_len
        - str_printfa
        - str_truncate
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:164,25'
          Dst:             event_ref
        - Src:             'stats-client.c:164,44'
          Dst:             event_minimize
        - Src:             'stats-client.c:170,4'
          Dst:             stats_event_write
        - Src:             'stats-client.c:173,3'
          Dst:             i_panic
        - Src:             'stats-client.c:176,3'
          Dst:             i_panic
        - Src:             'stats-client.c:179,3'
          Dst:             str_printfa
        - Src:             'stats-client.c:186,3'
          Dst:             str_printfa
        - Src:             'stats-client.c:189,2'
          Dst:             str_printfa
        - Src:             'stats-client.c:192,3'
          Dst:             str_printfa
        - Src:             'stats-client.c:193,2'
          Dst:             event_export
        - Src:             'stats-client.c:194,2'
          Dst:             str_append_c
        - Src:             'stats-client.c:195,2'
          Dst:             event_unref
        - Src:             'stats-client.c:196,22'
          Dst:             str_len
        - Src:             'stats-client.c:197,39'
          Dst:             str_data
        - Src:             'stats-client.c:197,54'
          Dst:             str_len
        - Src:             'stats-client.c:197,3'
          Dst:             o_stream_nsend
        - Src:             'stats-client.c:198,3'
          Dst:             str_truncate
    - functionName:    stats_client_free_event
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_nsend_str
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:253,7'
          Dst:             t_strdup_printf
        - Src:             'stats-client.c:252,2'
          Dst:             o_stream_nsend_str
    - functionName:    stats_client_send_event
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - event_filter_match
        - event_get_global
        - i_panic
        - o_stream_cork
        - o_stream_get_error
        - o_stream_nsend
        - o_stream_uncork_flush
        - stats_event_write
        - str_data
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:219,7'
          Dst:             event_filter_match
        - Src:             'stats-client.c:223,18'
          Dst:             t_str_new
        - Src:             'stats-client.c:226,3'
          Dst:             o_stream_cork
        - Src:             'stats-client.c:227,31'
          Dst:             event_get_global
        - Src:             'stats-client.c:232,3'
          Dst:             stats_event_write
        - Src:             'stats-client.c:235,2'
          Dst:             stats_event_write
        - Src:             'stats-client.c:236,38'
          Dst:             str_data
        - Src:             'stats-client.c:236,53'
          Dst:             str_len
        - Src:             'stats-client.c:236,2'
          Dst:             o_stream_nsend
        - Src:             'stats-client.c:238,2'
          Dst:             i_panic
        - Src:             'stats-client.c:240,7'
          Dst:             o_stream_uncork_flush
        - Src:             'stats-client.c:241,4'
          Dst:             o_stream_get_error
        - Src:             'stats-client.c:241,4'
          Dst:             e_error
    - functionName:    client_handshake_filter
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - event_filter_create
        - event_filter_parse
        - event_filter_unref
        - strcmp
        - t_str_tabunescape
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:42,6'
          Dst:             strcmp
        - Src:             'stats-client.c:51,14'
          Dst:             event_filter_create
        - Src:             'stats-client.c:52,7'
          Dst:             t_str_tabunescape
        - Src:             'stats-client.c:52,7'
          Dst:             event_filter_parse
        - Src:             'stats-client.c:53,3'
          Dst:             event_filter_unref
    - functionName:    stats_client_handshake
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - client_handshake_filter
        - e_error
        - event_filter_create
        - event_filter_unref
        - event_global_debug_send_filter_register
        - io_loop_stop
        - t_strarray_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:65,6'
          Dst:             client_handshake_filter
        - Src:             'stats-client.c:66,3'
          Dst:             t_strarray_join
        - Src:             'stats-client.c:66,3'
          Dst:             e_error
        - Src:             'stats-client.c:74,3'
          Dst:             io_loop_stop
        - Src:             'stats-client.c:77,12'
          Dst:             event_filter_create
        - Src:             'stats-client.c:79,2'
          Dst:             event_filter_unref
        - Src:             'stats-client.c:83,24'
          Dst:             event_global_debug_send_filter_register
    - functionName:    stats_client_reconnect
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stats_client_connect
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:99,2'
          Dst:             timeout_remove
        - Src:             'stats-client.c:100,2'
          Dst:             stats_client_connect
    - functionName:    stats_client_connect
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          137
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - connection_client_connect
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - stats_client_send_registered_categories
        - stats_client_wait
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:385,6'
          Dst:             connection_client_connect
        - Src:             'stats-client.c:387,3'
          Dst:             stats_client_send_registered_categories
        - Src:             'stats-client.c:389,4'
          Dst:             stats_client_wait
        - Src:             'stats-client.c:391,7'
          Dst:             __errno_location
        - Src:             'stats-client.c:391,26'
          Dst:             __errno_location
        - Src:             'stats-client.c:392,8'
          Dst:             __errno_location
        - Src:             'stats-client.c:392,8'
          Dst:             __errno_location
        - Src:             'stats-client.c:392,8'
          Dst:             __errno_location
        - Src:             'stats-client.c:393,3'
          Dst:             e_error
        - Src:             'stats-client.c:396,3'
          Dst:             event_want_level
        - Src:             'stats-client.c:396,3'
          Dst:             e_debug
        - Src:             'stats-client.c:396,3'
          Dst:             event_send_abort
    - functionName:    stats_client_wait
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          101
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - connection_switch_ioloop
        - i_panic
        - io_loop_create
        - io_loop_destroy
        - io_loop_move_timeout
        - io_loop_run
        - io_loop_set_current
        - stats_client_deinit_timeout
        - stats_client_handshake_timeout
        - timeout_add
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:349,2'
          Dst:             i_panic
        - Src:             'stats-client.c:351,19'
          Dst:             io_loop_create
        - Src:             'stats-client.c:354,8'
          Dst:             timeout_add
        - Src:             'stats-client.c:354,8'
          Dst:             stats_client_handshake_timeout
        - Src:             'stats-client.c:357,8'
          Dst:             timeout_add
        - Src:             'stats-client.c:357,8'
          Dst:             stats_client_deinit_timeout
        - Src:             'stats-client.c:360,2'
          Dst:             connection_switch_ioloop
        - Src:             'stats-client.c:361,2'
          Dst:             io_loop_run
        - Src:             'stats-client.c:362,2'
          Dst:             io_loop_set_current
        - Src:             'stats-client.c:363,2'
          Dst:             connection_switch_ioloop
        - Src:             'stats-client.c:365,26'
          Dst:             io_loop_move_timeout
        - Src:             'stats-client.c:366,2'
          Dst:             io_loop_set_current
        - Src:             'stats-client.c:367,2'
          Dst:             timeout_remove
        - Src:             'stats-client.c:368,2'
          Dst:             io_loop_destroy
    - functionName:    stats_client_input_args
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stats_client_handshake
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:93,9'
          Dst:             stats_client_handshake
    - functionName:    stats_client_destroy
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - connection_disconnect
        - events_get_head
        - io_loop_stop
        - stats_client_reconnect
        - timeout_add
        - timeval_diff_msecs
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:110,15'
          Dst:             events_get_head
        - Src:             'stats-client.c:114,2'
          Dst:             connection_disconnect
        - Src:             'stats-client.c:117,3'
          Dst:             io_loop_stop
        - Src:             'stats-client.c:120,4'
          Dst:             timeval_diff_msecs
        - Src:             'stats-client.c:134,4'
          Dst:             timeout_add
        - Src:             'stats-client.c:134,4'
          Dst:             stats_client_reconnect
    - functionName:    stats_category_registered
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - o_stream_nsend
        - stats_category_append
        - str_data
        - str_len
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:302,18'
          Dst:             t_str_new
        - Src:             'stats-client.c:303,2'
          Dst:             stats_category_append
        - Src:             'stats-client.c:304,38'
          Dst:             str_data
        - Src:             'stats-client.c:304,53'
          Dst:             str_len
        - Src:             'stats-client.c:304,2'
          Dst:             o_stream_nsend
    - functionName:    stats_event_callback
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - stats_client_free_event
        - stats_client_send_event
      functionUses:    2
      BranchProfiles:
        - Branch String:   'stats-client.c:268,2'
          Branch Sides:    []
      Callsites:
        - Src:             'stats-client.c:272,3'
          Dst:             stats_client_send_event
        - Src:             'stats-client.c:275,3'
          Dst:             stats_client_free_event
    - functionName:    stats_global_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_list_deinit
        - event_category_unregister_callback
        - event_unregister_callback
        - stats_category_registered
        - stats_event_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:317,2'
          Dst:             event_unregister_callback
        - Src:             'stats-client.c:317,2'
          Dst:             stats_event_callback
        - Src:             'stats-client.c:318,2'
          Dst:             event_category_unregister_callback
        - Src:             'stats-client.c:318,2'
          Dst:             stats_category_registered
        - Src:             'stats-client.c:319,2'
          Dst:             connection_list_deinit
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    stats_client_deinit_callback
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - io_loop_stop
        - o_stream_flush
        - o_stream_get_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:443,12'
          Dst:             o_stream_flush
        - Src:             'stats-client.c:445,3'
          Dst:             o_stream_get_error
        - Src:             'stats-client.c:445,3'
          Dst:             e_error
        - Src:             'stats-client.c:449,3'
          Dst:             io_loop_stop
    - functionName:    stats_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - connection_deinit
        - event_filter_unref
        - i_panic
        - o_stream_get_buffer_used_size
        - o_stream_set_flush_callback
        - o_stream_uncork
        - o_stream_unref
        - p_free_internal
        - stats_client_deinit_callback
        - stats_client_wait
        - stats_global_deinit
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:460,6'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'stats-client.c:461,3'
          Dst:             o_stream_set_flush_callback
        - Src:             'stats-client.c:461,3'
          Dst:             stats_client_deinit_callback
        - Src:             'stats-client.c:464,3'
          Dst:             o_stream_uncork
        - Src:             'stats-client.c:465,3'
          Dst:             stats_client_wait
        - Src:             'stats-client.c:469,3'
          Dst:             i_panic
        - Src:             'stats-client.c:472,2'
          Dst:             event_filter_unref
        - Src:             'stats-client.c:474,2'
          Dst:             connection_deinit
        - Src:             'stats-client.c:475,2'
          Dst:             timeout_remove
        - Src:             'stats-client.c:476,2'
          Dst:             o_stream_unref
        - Src:             'stats-client.c:477,2'
          Dst:             p_free_internal
        - Src:             'stats-client.c:480,3'
          Dst:             stats_global_deinit
    - functionName:    stats_client_init_unittest
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - connection_init_client_unix
        - event_filter_create
        - event_filter_parse
        - event_global_debug_send_filter_register
        - i_panic
        - malloc_multiply_check
        - o_stream_create_buffer
        - o_stream_set_no_error_handling
        - p_malloc
        - stats_global_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:422,3'
          Dst:             stats_global_init
        - Src:             'stats-client.c:424,11'
          Dst:             malloc_multiply_check
        - Src:             'stats-client.c:424,11'
          Dst:             p_malloc
        - Src:             'stats-client.c:425,24'
          Dst:             o_stream_create_buffer
        - Src:             'stats-client.c:426,2'
          Dst:             connection_init_client_unix
        - Src:             'stats-client.c:427,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'stats-client.c:430,19'
          Dst:             event_filter_create
        - Src:             'stats-client.c:431,7'
          Dst:             event_filter_parse
        - Src:             'stats-client.c:432,3'
          Dst:             i_panic
        - Src:             'stats-client.c:435,24'
          Dst:             event_global_debug_send_filter_register
    - functionName:    stats_global_init
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_list_init
        - event_category_register_callback
        - event_register_callback
        - stats_category_registered
        - stats_event_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:309,18'
          Dst:             connection_list_init
        - Src:             'stats-client.c:311,2'
          Dst:             event_register_callback
        - Src:             'stats-client.c:311,2'
          Dst:             stats_event_callback
        - Src:             'stats-client.c:312,2'
          Dst:             event_category_register_callback
        - Src:             'stats-client.c:312,2'
          Dst:             stats_category_registered
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    stats_client_init
      functionSourceFile: '/src/dovecot/src/lib-master/stats-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connection_init_client_unix
        - malloc_multiply_check
        - p_malloc
        - stats_client_connect
        - stats_global_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-client.c:406,3'
          Dst:             stats_global_init
        - Src:             'stats-client.c:408,11'
          Dst:             malloc_multiply_check
        - Src:             'stats-client.c:408,11'
          Dst:             p_malloc
        - Src:             'stats-client.c:410,2'
          Dst:             connection_init_client_unix
        - Src:             'stats-client.c:411,2'
          Dst:             stats_client_connect
    - functionName:    syslog_facility_find
      functionSourceFile: '/src/dovecot/src/lib-master/syslog-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'syslog-util.c:59,7'
          Dst:             strcmp
    - functionName:    setting_define_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:176,7'
          Dst:             strcmp
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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-settings/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    settings_parse_boollist
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_clear_i
        - array_create_i
        - array_delete_i
        - array_is_created_i
        - array_lsearch_i
        - get_bool
        - i_strcmp_p
        - p_strdup
        - settings_boollist_finish
        - settings_boollist_is_stopped
        - settings_parse_boollist_string
        - settings_parser_set_error
        - settings_section_unescape
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:565,7'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:566,3'
          Dst:             array_create_i
        - Src:             'settings-parser.c:570,7'
          Dst:             settings_boollist_is_stopped
        - Src:             'settings-parser.c:574,8'
          Dst:             strrchr
        - Src:             'settings-parser.c:577,3'
          Dst:             array_clear_i
        - Src:             'settings-parser.c:578,7'
          Dst:             settings_parse_boollist_string
        - Src:             'settings-parser.c:580,4'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:584,3'
          Dst:             settings_boollist_finish
        - Src:             'settings-parser.c:587,8'
          Dst:             settings_section_unescape
        - Src:             'settings-parser.c:590,6'
          Dst:             get_bool
        - Src:             'settings-parser.c:593,9'
          Dst:             array_lsearch_i
        - Src:             'settings-parser.c:593,9'
          Dst:             i_strcmp_p
        - Src:             'settings-parser.c:596,9'
          Dst:             p_strdup
        - Src:             'settings-parser.c:597,3'
          Dst:             array_append_i
        - Src:             'settings-parser.c:602,4'
          Dst:             array_delete_i
        - Src:             'settings-parser.c:604,10'
          Dst:             p_strdup
        - Src:             'settings-parser.c:607,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:608,4'
          Dst:             array_create_i
        - Src:             'settings-parser.c:610,4'
          Dst:             array_append_space_i
        - Src:             'settings-parser.c:615,2'
          Dst:             settings_boollist_finish
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../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:    settings_boollist_is_stopped
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:553,30'
          Dst:             array_get_i
        - Src:             'settings-parser.c:554,2'
          Dst:             i_panic
    - functionName:    settings_parse_boollist_string
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          270
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - array_append_i
        - p_strdup
        - settings_section_unescape
        - str_append_c
        - str_c
        - str_len
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'settings-parser.c:410,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:406,19'
          Dst:             t_str_new
        - Src:             'settings-parser.c:414,9'
          Dst:             str_len
        - Src:             'settings-parser.c:431,5'
          Dst:             str_append_c
        - Src:             'settings-parser.c:435,18'
          Dst:             str_len
        - Src:             'settings-parser.c:437,32'
          Dst:             str_c
        - Src:             'settings-parser.c:437,6'
          Dst:             settings_section_unescape
        - Src:             'settings-parser.c:436,16'
          Dst:             p_strdup
        - Src:             'settings-parser.c:438,5'
          Dst:             array_append_i
        - Src:             'settings-parser.c:439,5'
          Dst:             str_truncate
        - Src:             'settings-parser.c:458,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:466,16'
          Dst:             str_len
        - Src:             'settings-parser.c:467,55'
          Dst:             str_c
        - Src:             'settings-parser.c:467,29'
          Dst:             settings_section_unescape
        - Src:             'settings-parser.c:467,14'
          Dst:             p_strdup
        - Src:             'settings-parser.c:468,3'
          Dst:             array_append_i
    - functionName:    settings_parser_set_error
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:161,2'
          Dst:             p_free_internal
        - Src:             'settings-parser.c:162,15'
          Dst:             i_strdup
    - functionName:    settings_boollist_finish
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_delete_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:536,2'
          Dst:             array_append_space_i
        - Src:             'settings-parser.c:538,3'
          Dst:             array_append_i
        - Src:             'settings-parser.c:544,3'
          Dst:             array_count_i
        - Src:             'settings-parser.c:544,3'
          Dst:             array_delete_i
        - Src:             'settings-parser.c:545,2'
          Dst:             array_count_i
        - Src:             'settings-parser.c:545,2'
          Dst:             array_delete_i
    - functionName:    settings_section_unescape
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          141
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - strchr
        - strlen
        - t_str_new
      functionUses:    7
      BranchProfiles:
        - Branch String:   'settings-parser.c:1224,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:1217,18'
          Dst:             strchr
        - Src:             'settings-parser.c:1221,28'
          Dst:             strlen
        - Src:             'settings-parser.c:1221,18'
          Dst:             t_str_new
        - Src:             'settings-parser.c:1222,2'
          Dst:             str_append_data
        - Src:             'settings-parser.c:1226,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1229,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1232,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1235,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1238,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1245,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1246,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1250,7'
          Dst:             strchr
        - Src:             'settings-parser.c:1252,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1253,11'
          Dst:             str_c
        - Src:             'settings-parser.c:1255,3'
          Dst:             str_append_data
        - Src:             'settings-parser.c:1258,2'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1259,9'
          Dst:             str_c
    - functionName:    get_bool
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - settings_parser_set_error
        - str_parse_get_bool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:187,13'
          Dst:             str_parse_get_bool
        - Src:             'settings-parser.c:188,3'
          Dst:             settings_parser_set_error
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    5
      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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    settings_parse_strlist
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          171
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_create_i
        - array_get_i
        - array_idx_set_i
        - array_is_created_i
        - p_strdup
        - settings_section_unescape
        - strchr
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:362,6'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:363,11'
          Dst:             array_get_i
        - Src:             'settings-parser.c:368,23'
          Dst:             strchr
        - Src:             'settings-parser.c:372,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:373,5'
          Dst:             array_clear_i
        - Src:             'settings-parser.c:377,14'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:381,8'
          Dst:             settings_section_unescape
        - Src:             'settings-parser.c:382,11'
          Dst:             p_strdup
        - Src:             'settings-parser.c:384,7'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:385,3'
          Dst:             array_create_i
        - Src:             'settings-parser.c:388,10'
          Dst:             array_get_i
        - Src:             'settings-parser.c:390,7'
          Dst:             strcmp
        - Src:             'settings-parser.c:391,4'
          Dst:             array_idx_set_i
        - Src:             'settings-parser.c:396,9'
          Dst:             p_strdup
        - Src:             'settings-parser.c:397,2'
          Dst:             array_append_i
        - Src:             'settings-parser.c:398,2'
          Dst:             array_append_i
    - functionName:    get_enum
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - p_strdup
        - settings_parser_set_error
        - strchr
        - strcmp
        - strncmp
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:246,7'
          Dst:             strchr
        - Src:             'settings-parser.c:248,8'
          Dst:             strcmp
        - Src:             'settings-parser.c:252,5'
          Dst:             t_strconcat
        - Src:             'settings-parser.c:251,4'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:256,7'
          Dst:             strncmp
        - Src:             'settings-parser.c:263,14'
          Dst:             p_strdup
    - functionName:    get_file
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - p_strdup
        - settings_parse_read_file
        - settings_parser_set_error
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:272,24'
          Dst:             strchr
        - Src:             'settings-parser.c:275,13'
          Dst:             p_strdup
        - Src:             'settings-parser.c:280,6'
          Dst:             settings_parse_read_file
        - Src:             'settings-parser.c:282,3'
          Dst:             settings_parser_set_error
    - functionName:    settings_parse_read_file
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 349
      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:          177
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - fstat
        - i_close_fd_path
        - i_memcpy
        - malloc_add_check
        - memchr
        - open
        - p_malloc
        - read_full
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:308,12'
          Dst:             open
        - Src:             'settings-parser.c:309,14'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:312,6'
          Dst:             fstat
        - Src:             'settings-parser.c:313,14'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:314,3'
          Dst:             i_close_fd_path
        - Src:             'settings-parser.c:317,22'
          Dst:             strlen
        - Src:             'settings-parser.c:318,26'
          Dst:             strlen
        - Src:             'settings-parser.c:319,20'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:319,20'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:320,13'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:320,13'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:321,14'
          Dst:             p_malloc
        - Src:             'settings-parser.c:322,2'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:323,2'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:326,12'
          Dst:             read_full
        - Src:             'settings-parser.c:328,2'
          Dst:             i_close_fd_path
        - Src:             'settings-parser.c:330,14'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:334,14'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:338,6'
          Dst:             memchr
        - Src:             'settings-parser.c:339,14'
          Dst:             t_strdup_printf
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    get_in_port_zero
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - net_str2port_zero
        - settings_parser_set_error
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:292,6'
          Dst:             net_str2port_zero
        - Src:             'settings-parser.c:293,34'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:293,3'
          Dst:             settings_parser_set_error
    - functionName:    settings_value_is_unlimited
      functionSourceFile: '/src/dovecot/src/lib-settings/./settings-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './settings-parser.h:329,9'
          Dst:             strcmp
        - Src:             './settings-parser.h:330,3'
          Dst:             strcmp
    - functionName:    get_octal
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - get_uint
        - settings_parser_set_error
        - str_to_ullong_oct
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:229,10'
          Dst:             get_uint
        - Src:             'settings-parser.c:231,6'
          Dst:             str_to_ullong_oct
        - Src:             'settings-parser.c:233,4'
          Dst:             t_strconcat
        - Src:             'settings-parser.c:232,3'
          Dst:             settings_parser_set_error
    - functionName:    get_uint
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - settings_parser_set_error
        - settings_value_is_unlimited
        - str_num_error
        - str_to_uint
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:209,6'
          Dst:             settings_value_is_unlimited
        - Src:             'settings-parser.c:213,6'
          Dst:             str_to_uint
        - Src:             'settings-parser.c:216,4'
          Dst:             str_num_error
        - Src:             'settings-parser.c:214,34'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:214,3'
          Dst:             settings_parser_set_error
    - functionName:    get_uintmax
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - settings_parser_set_error
        - str_num_error
        - str_to_uintmax
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:196,6'
          Dst:             str_to_uintmax
        - Src:             'settings-parser.c:199,4'
          Dst:             str_num_error
        - Src:             'settings-parser.c:197,34'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:197,3'
          Dst:             settings_parser_set_error
    - functionName:    settings_get_config_binary
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1271
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_set_config_binary
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_section_escape
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          221
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - strlen
        - t_str_new
      functionUses:    4
      BranchProfiles:
        - Branch String:   'settings-parser.c:1191,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:1188,22'
          Dst:             strlen
        - Src:             'settings-parser.c:1188,8'
          Dst:             t_str_new
        - Src:             'settings-parser.c:1189,2'
          Dst:             str_append_data
        - Src:             'settings-parser.c:1193,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1196,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1199,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1202,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1205,4'
          Dst:             str_append
        - Src:             'settings-parser.c:1208,4'
          Dst:             str_append_c
        - Src:             'settings-parser.c:1212,9'
          Dst:             str_c
    - functionName:    settings_defaults_dup
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:1165,14'
          Dst:             p_malloc
        - Src:             'settings-parser.c:1166,2'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:1167,2'
          Dst:             i_memcpy
    - functionName:    settings_equal
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1081
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          438
      EdgeCount:       88
      CyclomaticComplexity: 19
      functionsReached:
        - array_get_i
        - array_is_created_i
        - str_array_find
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'settings-parser.c:1089,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:1084,7'
          Dst:             str_array_find
        - Src:             'settings-parser.c:1128,8'
          Dst:             strcmp
        - Src:             'settings-parser.c:1136,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:1137,10'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:1141,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:1145,30'
          Dst:             array_get_i
        - Src:             'settings-parser.c:1146,30'
          Dst:             array_get_i
        - Src:             'settings-parser.c:1150,9'
          Dst:             strcmp
    - functionName:    crc32_str_more
      functionSourceFile: '/src/dovecot/src/lib-settings/../../src/lib/crc32.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 15
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crc32_data_more
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/crc32.h:15,35'
          Dst:             strlen
        - Src:             '../../src/lib/crc32.h:15,9'
          Dst:             crc32_data_more
    - functionName:    settings_hash
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1075
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          322
      EdgeCount:       56
      CyclomaticComplexity: 8
      functionsReached:
        - array_is_created_i
        - crc32_data_more
        - crc32_str_more
        - i_memcpy
        - i_panic
        - str_array_find
        - strchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'settings-parser.c:1009,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:1005,7'
          Dst:             str_array_find
        - Src:             'settings-parser.c:1012,10'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1017,10'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1025,10'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1030,10'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1035,10'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1042,10'
          Dst:             crc32_str_more
        - Src:             'settings-parser.c:1047,21'
          Dst:             strchr
        - Src:             'settings-parser.c:1049,5'
          Dst:             i_panic
        - Src:             'settings-parser.c:1052,11'
          Dst:             crc32_str_more
        - Src:             'settings-parser.c:1055,11'
          Dst:             crc32_data_more
        - Src:             'settings-parser.c:1063,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:1065,5'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:1066,12'
          Dst:             crc32_str_more
    - functionName:    settings_parser_check
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 995
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:994,9'
          Dst:             settings_check
    - functionName:    settings_check
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          157
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - t_pop_pass_str
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:975,3'
          Dst:             t_push
        - Src:             'settings-parser.c:977,5'
          Dst:             t_pop_pass_str
        - Src:             'settings-parser.c:977,5'
          Dst:             i_panic
        - Src:             'settings-parser.c:982,3'
          Dst:             t_push
        - Src:             'settings-parser.c:984,5'
          Dst:             t_pop_pass_str
        - Src:             'settings-parser.c:984,5'
          Dst:             i_panic
    - functionName:    settings_find_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 828
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - setting_define_find
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:808,8'
          Dst:             setting_define_find
        - Src:             'settings-parser.c:816,8'
          Dst:             strrchr
        - Src:             'settings-parser.c:820,15'
          Dst:             t_strdup_until
        - Src:             'settings-parser.c:821,8'
          Dst:             setting_define_find
    - functionName:    settings_parse_get_value
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - settings_find_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:953,7'
          Dst:             settings_find_key
        - Src:             'settings-parser.c:957,3'
          Dst:             i_panic
        - Src:             'settings-parser.c:962,3'
          Dst:             i_panic
    - functionName:    boollist_removal_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:902,9'
          Dst:             strcmp
    - functionName:    settings_parse_list_has_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - array_is_created_i
        - array_lsearch_i
        - boollist_removal_cmp
        - i_unreached
        - strcmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'settings-parser.c:912,2'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:918,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:925,7'
          Dst:             array_lsearch_i
        - Src:             'settings-parser.c:925,7'
          Dst:             boollist_removal_cmp
        - Src:             'settings-parser.c:930,3'
          Dst:             i_unreached
        - Src:             'settings-parser.c:935,7'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:939,29'
          Dst:             array_get_i
        - Src:             'settings-parser.c:941,7'
          Dst:             strcmp
    - functionName:    settings_parse_array_stop
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          144
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_is_created_i
        - i_panic
        - settings_boollist_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:878,2'
          Dst:             i_panic
        - Src:             'settings-parser.c:884,7'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:885,3'
          Dst:             array_create_i
        - Src:             'settings-parser.c:888,3'
          Dst:             settings_boollist_finish
        - Src:             'settings-parser.c:892,3'
          Dst:             array_append_i
        - Src:             'settings-parser.c:893,3'
          Dst:             array_count_i
        - Src:             'settings-parser.c:893,3'
          Dst:             array_delete_i
    - functionName:    settings_parse_keyidx_value_nodup
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_parse
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:871,9'
          Dst:             settings_parse
    - functionName:    settings_parse
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          660
      EdgeCount:       141
      CyclomaticComplexity: 29
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_get_i
        - array_insert_i
        - array_is_created_i
        - array_lsearch_i
        - get_bool
        - get_enum
        - get_file
        - get_in_port_zero
        - get_octal
        - get_uint
        - get_uintmax
        - i_panic
        - i_strcmp_p
        - i_unreached
        - p_free_internal
        - p_strdup
        - settings_parse_boollist
        - settings_parse_strlist
        - settings_parser_set_error
        - settings_section_unescape
        - settings_value_is_unlimited
        - str_array_length
        - str_parse_get_interval
        - str_parse_get_interval_msecs
        - str_parse_get_size
        - strlen
        - strstr
        - t_pop
        - t_push
        - t_strcut
        - t_strdup_printf
        - t_strsplit
        - t_var_expand
        - uni_utf8_to_nfc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'settings-parser.c:642,2'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:634,2'
          Dst:             p_free_internal
        - Src:             'settings-parser.c:637,3'
          Dst:             i_panic
        - Src:             'settings-parser.c:644,7'
          Dst:             get_bool
        - Src:             'settings-parser.c:648,7'
          Dst:             get_uintmax
        - Src:             'settings-parser.c:652,7'
          Dst:             get_uint
        - Src:             'settings-parser.c:656,7'
          Dst:             get_octal
        - Src:             'settings-parser.c:660,7'
          Dst:             settings_value_is_unlimited
        - Src:             'settings-parser.c:664,7'
          Dst:             str_parse_get_interval
        - Src:             'settings-parser.c:665,4'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:670,7'
          Dst:             settings_value_is_unlimited
        - Src:             'settings-parser.c:674,7'
          Dst:             str_parse_get_interval_msecs
        - Src:             'settings-parser.c:675,4'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:680,7'
          Dst:             settings_value_is_unlimited
        - Src:             'settings-parser.c:684,7'
          Dst:             str_parse_get_size
        - Src:             'settings-parser.c:685,4'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:690,7'
          Dst:             get_in_port_zero
        - Src:             'settings-parser.c:697,31'
          Dst:             strlen
        - Src:             'settings-parser.c:697,8'
          Dst:             uni_utf8_to_nfc
        - Src:             'settings-parser.c:698,5'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:705,12'
          Dst:             p_strdup
        - Src:             'settings-parser.c:710,22'
          Dst:             t_strcut
        - Src:             'settings-parser.c:711,7'
          Dst:             strstr
        - Src:             'settings-parser.c:712,8'
          Dst:             t_var_expand
        - Src:             'settings-parser.c:713,5'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:718,7'
          Dst:             get_file
        - Src:             'settings-parser.c:730,3'
          Dst:             i_panic
        - Src:             'settings-parser.c:732,7'
          Dst:             get_enum
        - Src:             'settings-parser.c:737,3'
          Dst:             t_push
        - Src:             'settings-parser.c:738,10'
          Dst:             settings_parse_strlist
        - Src:             'settings-parser.c:741,5'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:742,5'
          Dst:             t_pop
        - Src:             'settings-parser.c:742,5'
          Dst:             i_panic
        - Src:             'settings-parser.c:747,3'
          Dst:             t_push
        - Src:             'settings-parser.c:748,10'
          Dst:             settings_parse_boollist
        - Src:             'settings-parser.c:749,5'
          Dst:             t_pop
        - Src:             'settings-parser.c:749,5'
          Dst:             i_panic
        - Src:             'settings-parser.c:759,4'
          Dst:             t_strsplit
        - Src:             'settings-parser.c:760,27'
          Dst:             str_array_length
        - Src:             'settings-parser.c:761,8'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:762,4'
          Dst:             array_create_i
        - Src:             'settings-parser.c:769,5'
          Dst:             array_get_i
        - Src:             'settings-parser.c:776,5'
          Dst:             settings_section_unescape
        - Src:             'settings-parser.c:775,24'
          Dst:             p_strdup
        - Src:             'settings-parser.c:777,8'
          Dst:             array_lsearch_i
        - Src:             'settings-parser.c:777,8'
          Dst:             i_strcmp_p
        - Src:             'settings-parser.c:780,5'
          Dst:             array_insert_i
        - Src:             'settings-parser.c:782,5'
          Dst:             array_append_i
        - Src:             'settings-parser.c:786,3'
          Dst:             array_append_space_i
        - Src:             'settings-parser.c:787,3'
          Dst:             array_count_i
        - Src:             'settings-parser.c:787,3'
          Dst:             array_delete_i
        - Src:             'settings-parser.c:791,34'
          Dst:             t_strdup_printf
        - Src:             'settings-parser.c:791,3'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:795,3'
          Dst:             i_unreached
    - functionName:    settings_parse_keyvalue_nodup
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_parse_keyvalue_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:864,9'
          Dst:             settings_parse_keyvalue_real
    - functionName:    settings_parse_keyvalue_real
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - settings_find_key
        - settings_parse
        - settings_parser_set_error
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:836,7'
          Dst:             settings_find_key
        - Src:             'settings-parser.c:838,4'
          Dst:             t_strconcat
        - Src:             'settings-parser.c:837,3'
          Dst:             settings_parser_set_error
        - Src:             'settings-parser.c:842,6'
          Dst:             settings_parse
    - functionName:    settings_parse_keyidx_value
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_parse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:857,9'
          Dst:             settings_parse
    - functionName:    settings_parse_keyvalue
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_parse_keyvalue_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:850,9'
          Dst:             settings_parse_keyvalue_real
    - functionName:    settings_file_get_value
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - malloc_add_check
        - p_malloc
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:522,20'
          Dst:             strlen
        - Src:             'settings-parser.c:523,23'
          Dst:             strlen
        - Src:             'settings-parser.c:524,22'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:524,22'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:525,15'
          Dst:             malloc_add_check
        - Src:             'settings-parser.c:527,16'
          Dst:             p_malloc
        - Src:             'settings-parser.c:528,2'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:530,2'
          Dst:             i_memcpy
    - functionName:    settings_file_has_path
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:512,18'
          Dst:             strchr
        - Src:             'settings-parser.c:514,3'
          Dst:             i_panic
    - functionName:    settings_file_get
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_strdup_until
        - strchr
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:502,6'
          Dst:             strchr
        - Src:             'settings-parser.c:504,3'
          Dst:             i_panic
        - Src:             'settings-parser.c:505,17'
          Dst:             p_strdup_until
    - functionName:    settings_boollist_get
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
        - i_panic
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:478,6'
          Dst:             array_is_created_i
        - Src:             'settings-parser.c:479,13'
          Dst:             array_get_i
        - Src:             'settings-parser.c:480,3'
          Dst:             i_panic
    - functionName:    settings_parser_get_error
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 167
      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:    settings_parser_get_set
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    setting_parser_info_find_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          220
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - str_begins
        - str_begins_builtin_success
        - strlen
        - strncmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:134,8'
          Dst:             str_begins
        - Src:             'settings-parser.c:134,8'
          Dst:             strlen
        - Src:             'settings-parser.c:134,8'
          Dst:             strncmp
        - Src:             'settings-parser.c:134,8'
          Dst:             strlen
        - Src:             'settings-parser.c:134,8'
          Dst:             str_begins_builtin_success
    - functionName:    setting_parser_info_get_define_count
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    settings_parser_unref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:111,2'
          Dst:             i_panic
        - Src:             'settings-parser.c:114,2'
          Dst:             p_free_internal
        - Src:             'settings-parser.c:115,2'
          Dst:             pool_unref
        - Src:             'settings-parser.c:116,2'
          Dst:             pool_unref
    - functionName:    settings_parser_ref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:99,2'
          Dst:             i_panic
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    setting_parser_copy_defaults
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - p_strdup_until
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'settings-parser.c:55,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings-parser.c:53,2'
          Dst:             i_memcpy
        - Src:             'settings-parser.c:60,8'
          Dst:             strchr
        - Src:             'settings-parser.c:62,13'
          Dst:             p_strdup_until
    - functionName:    settings_parser_init
      functionSourceFile: '/src/dovecot/src/lib-settings/settings-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          77
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_ref
        - setting_parser_copy_defaults
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings-parser.c:78,16'
          Dst:             pool_alloconly_create
        - Src:             'settings-parser.c:80,8'
          Dst:             malloc_multiply_check
        - Src:             'settings-parser.c:80,8'
          Dst:             p_malloc
        - Src:             'settings-parser.c:89,4'
          Dst:             p_malloc
        - Src:             'settings-parser.c:90,3'
          Dst:             setting_parser_copy_defaults
        - Src:             'settings-parser.c:93,2'
          Dst:             pool_ref
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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-settings/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_filter_array_str_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2814
      functionLinenumberEnd: 2815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2815,9'
          Dst:             strcmp
    - functionName:    settings_filter_array_uint_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2803
      functionLinenumberEnd: 2809
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    settings_override_find_filter_check
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2037
      functionLinenumberEnd: 2047
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - event_filter_match
        - null_strcmp
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2042,3'
          Dst:             strcmp
        - Src:             'settings.c:2043,3'
          Dst:             null_strcmp
        - Src:             'settings.c:2047,3'
          Dst:             event_filter_match
    - functionName:    settings_key_part_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1821
      functionLinenumberEnd: 1846
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - setting_parser_info_find_key
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1823,3'
          Dst:             i_panic
        - Src:             'settings.c:1830,4'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1832,7'
          Dst:             setting_parser_info_find_key
        - Src:             'settings.c:1838,18'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1839,7'
          Dst:             setting_parser_info_find_key
        - Src:             'settings.c:1845,9'
          Dst:             setting_parser_info_find_key
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    settings_instance_override_add_default
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2201
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          245
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - event_filter_create_with_pool
        - event_filter_merge
        - event_filter_parse_case_sensitive
        - i_panic
        - p_strdup
        - p_strdup_printf
        - pool_ref
        - settings_override_set_blocks
        - settings_section_escape
        - strrchr
        - t_strdup_printf
        - t_strsplit
        - wildcard_str_escape
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2129,2'
          Dst:             i_panic
        - Src:             'settings.c:2148,3'
          Dst:             t_strsplit
        - Src:             'settings.c:2151,4'
          Dst:             array_append_space_i
        - Src:             'settings.c:2155,19'
          Dst:             p_strdup_printf
        - Src:             'settings.c:2165,16'
          Dst:             p_strdup
        - Src:             'settings.c:2170,28'
          Dst:             strrchr
        - Src:             'settings.c:2179,36'
          Dst:             settings_section_escape
        - Src:             'settings.c:2179,16'
          Dst:             wildcard_str_escape
        - Src:             'settings.c:2177,31'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2182,7'
          Dst:             settings_override_set_blocks
        - Src:             'settings.c:2186,17'
          Dst:             event_filter_create_with_pool
        - Src:             'settings.c:2187,3'
          Dst:             pool_ref
        - Src:             'settings.c:2188,7'
          Dst:             event_filter_parse_case_sensitive
        - Src:             'settings.c:2190,4'
          Dst:             i_panic
        - Src:             'settings.c:2196,4'
          Dst:             event_filter_merge
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    settings_override_set_blocks
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1852
      functionLinenumberEnd: 1901
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          169
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcpy
        - malloc_multiply_check
        - p_malloc
        - settings_override_key_part_find
        - t_strcut
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1854,20'
          Dst:             t_strcut
        - Src:             'settings.c:1866,7'
          Dst:             settings_override_key_part_find
        - Src:             'settings.c:1869,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1875,2'
          Dst:             i_memcpy
        - Src:             'settings.c:1879,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1883,29'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:1883,29'
          Dst:             p_malloc
        - Src:             'settings.c:1885,3'
          Dst:             i_memcpy
        - Src:             'settings.c:1889,15'
          Dst:             t_strdup_printf
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_override_key_part_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1791
      functionLinenumberEnd: 1814
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - settings_mmap_lookup_key
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1793,3'
          Dst:             i_panic
        - Src:             'settings.c:1800,4'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1802,7'
          Dst:             settings_mmap_lookup_key
        - Src:             'settings.c:1807,18'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1808,7'
          Dst:             settings_mmap_lookup_key
        - Src:             'settings.c:1813,9'
          Dst:             settings_mmap_lookup_key
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    settings_mmap_lookup_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1760
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          107
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - settings_mmap_registered_lookup_key
        - str_hash
        - strcmp
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1762,10'
          Dst:             settings_mmap_registered_lookup_key
        - Src:             'settings.c:1765,56'
          Dst:             str_hash
        - Src:             'settings.c:1773,6'
          Dst:             strcmp
        - Src:             'settings.c:1777,25'
          Dst:             strlen
        - Src:             'settings.c:1779,2'
          Dst:             i_memcpy
    - functionName:    settings_mmap_registered_lookup_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1755
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - i_memcpy
        - setting_parser_info_find_key
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1743,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:1747,2'
          Dst:             i_memcpy
        - Src:             'settings.c:1749,7'
          Dst:             setting_parser_info_find_key
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_override_get_value
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2077
      functionLinenumberEnd: 2118
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          256
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - settings_key_part_find
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strncmp
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2081,7'
          Dst:             settings_key_part_find
        - Src:             'settings.c:2089,21'
          Dst:             strchr
        - Src:             'settings.c:2093,9'
          Dst:             t_strconcat
        - Src:             'settings.c:2098,12'
          Dst:             t_strconcat
        - Src:             'settings.c:2104,8'
          Dst:             str_begins
        - Src:             'settings.c:2104,8'
          Dst:             strncmp
        - Src:             'settings.c:2104,8'
          Dst:             str_begins_builtin_success
        - Src:             'settings.c:2108,15'
          Dst:             t_strconcat
        - Src:             'settings.c:2116,13'
          Dst:             t_strconcat
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_include_group_add_or_update
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2318
      functionLinenumberEnd: 2332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          84
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - buffer_get_modifiable_data
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2323,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2324,7'
          Dst:             strcmp
        - Src:             'settings.c:2329,18'
          Dst:             array_append_space_i
    - functionName:    settings_override_cmp_filter_order
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1735
      functionLinenumberEnd: 1737
      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:    settings_group_event_create
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1251
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - event_create
        - event_strlist_append
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1240,24'
          Dst:             event_create
        - Src:             'settings.c:1245,30'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1248,3'
          Dst:             event_strlist_append
    - functionName:    get_invalid_setting_error
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - settings_parser_get_error
        - str_c
        - str_printfa
        - strchr
        - strcmp
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:789,16'
          Dst:             strchr
        - Src:             'settings.c:790,3'
          Dst:             i_panic
        - Src:             'settings.c:793,18'
          Dst:             t_str_new
        - Src:             'settings.c:794,2'
          Dst:             str_printfa
        - Src:             'settings.c:795,6'
          Dst:             strcmp
        - Src:             'settings.c:796,3'
          Dst:             str_printfa
        - Src:             'settings.c:797,27'
          Dst:             settings_parser_get_error
        - Src:             'settings.c:797,2'
          Dst:             str_printfa
        - Src:             'settings.c:798,9'
          Dst:             str_c
    - functionName:    settings_mmap_apply_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          201
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - get_invalid_setting_error
        - settings_parse_keyidx_value_nodup
        - settings_var_expand
        - strchr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:893,9'
          Dst:             t_strdup_printf
        - Src:             'settings.c:903,11'
          Dst:             strchr
        - Src:             'settings.c:916,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:927,6'
          Dst:             settings_var_expand
        - Src:             'settings.c:928,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:936,6'
          Dst:             settings_parse_keyidx_value_nodup
        - Src:             'settings.c:938,14'
          Dst:             get_invalid_setting_error
    - functionName:    settings_var_expand
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          362
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - p_strdup
        - settings_file_get
        - settings_parse_read_file
        - str_c
        - str_truncate
        - strchr
        - strcmp
        - var_expand_program_create
        - var_expand_program_execute
        - var_expand_program_free
        - var_expand_program_import_sized
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:812,12'
          Dst:             strchr
        - Src:             'settings.c:830,3'
          Dst:             settings_file_get
        - Src:             'settings.c:842,22'
          Dst:             strchr
        - Src:             'settings.c:851,4'
          Dst:             i_panic
        - Src:             'settings.c:853,8'
          Dst:             var_expand_program_import_sized
        - Src:             'settings.c:857,14'
          Dst:             var_expand_program_create
        - Src:             'settings.c:862,3'
          Dst:             str_truncate
        - Src:             'settings.c:863,13'
          Dst:             var_expand_program_execute
        - Src:             'settings.c:865,3'
          Dst:             var_expand_program_free
        - Src:             'settings.c:868,28'
          Dst:             str_c
        - Src:             'settings.c:868,13'
          Dst:             strcmp
        - Src:             'settings.c:874,15'
          Dst:             str_c
        - Src:             'settings.c:875,7'
          Dst:             settings_parse_read_file
        - Src:             'settings.c:880,40'
          Dst:             str_c
        - Src:             'settings.c:880,12'
          Dst:             p_strdup
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    settings_event_filter_node_name_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - settings_event_filter_node_name_find
        - strcmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'settings.c:344,2'
          Branch Sides:    []
      Callsites:
        - Src:             'settings.c:348,7'
          Dst:             strcmp
        - Src:             'settings.c:350,7'
          Dst:             strcmp
        - Src:             'settings.c:355,7'
          Dst:             settings_event_filter_node_name_find
        - Src:             'settings.c:358,7'
          Dst:             settings_event_filter_node_name_find
        - Src:             'settings.c:363,10'
          Dst:             settings_event_filter_node_name_find
    - functionName:    settings_mmap_apply_blob
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          470
      EdgeCount:       87
      CyclomaticComplexity: 23
      functionsReached:
        - array_idx_get_space_i
        - i_memcpy
        - i_panic
        - settings_mmap_apply_key
        - settings_parse_array_stop
        - settings_parse_list_has_key
        - settings_section_unescape
        - settings_var_expand
        - strlen
        - t_pop_pass_str
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1010,3'
          Dst:             i_memcpy
        - Src:             'settings.c:1013,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1024,4'
          Dst:             array_idx_get_space_i
        - Src:             'settings.c:1042,16'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1053,14'
          Dst:             strlen
        - Src:             'settings.c:1059,8'
          Dst:             settings_var_expand
        - Src:             'settings.c:1061,16'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1068,15'
          Dst:             settings_section_unescape
        - Src:             'settings.c:1067,6'
          Dst:             settings_parse_list_has_key
        - Src:             'settings.c:1076,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1083,13'
          Dst:             strlen
        - Src:             'settings.c:1085,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1092,3'
          Dst:             t_push
        - Src:             'settings.c:1094,11'
          Dst:             settings_mmap_apply_key
        - Src:             'settings.c:1101,5'
          Dst:             settings_parse_array_stop
        - Src:             'settings.c:1103,5'
          Dst:             t_pop_pass_str
        - Src:             'settings.c:1103,5'
          Dst:             i_panic
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    settings_event_filter_name_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_get_root_node
        - i_panic
        - settings_event_filter_node_name_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:377,35'
          Dst:             event_filter_get_root_node
        - Src:             'settings.c:378,2'
          Dst:             i_panic
        - Src:             'settings.c:379,2'
          Dst:             event_filter_get_root_node
        - Src:             'settings.c:379,2'
          Dst:             i_panic
        - Src:             'settings.c:380,9'
          Dst:             settings_event_filter_node_name_find
    - functionName:    settings_apply_groups
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1259
      functionLinenumberEnd: 1305
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          218
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - array_is_created_i
        - event_filter_match
        - event_unref
        - i_panic
        - settings_group_event_create
        - settings_mmap_apply_filter
        - settings_mmap_get_filter_idx
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1265,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:1274,7'
          Dst:             settings_mmap_get_filter_idx
        - Src:             'settings.c:1283,3'
          Dst:             i_panic
        - Src:             'settings.c:1286,3'
          Dst:             i_panic
        - Src:             'settings.c:1290,22'
          Dst:             t_push
        - Src:             'settings.c:1291,12'
          Dst:             settings_group_event_create
        - Src:             'settings.c:1292,5'
          Dst:             t_pop
        - Src:             'settings.c:1292,5'
          Dst:             i_panic
        - Src:             'settings.c:1293,7'
          Dst:             event_filter_match
        - Src:             'settings.c:1294,8'
          Dst:             settings_mmap_apply_filter
        - Src:             'settings.c:1303,2'
          Dst:             event_unref
    - functionName:    settings_mmap_get_filter_idx
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1149
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1152,14'
          Dst:             t_strdup_printf
    - functionName:    settings_mmap_apply_filter
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1236
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          289
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - i_memcpy
        - settings_event_filter_name_find
        - settings_instance_override
        - settings_mmap_apply_blob
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1170,2'
          Dst:             i_memcpy
        - Src:             'settings.c:1182,19'
          Dst:             strlen
        - Src:             'settings.c:1185,2'
          Dst:             i_memcpy
        - Src:             'settings.c:1191,6'
          Dst:             settings_event_filter_name_find
        - Src:             'settings.c:1194,2'
          Dst:             array_clear_i
        - Src:             'settings.c:1197,4'
          Dst:             array_append_space_i
        - Src:             'settings.c:1200,20'
          Dst:             strlen
        - Src:             'settings.c:1204,20'
          Dst:             strlen
        - Src:             'settings.c:1215,12'
          Dst:             settings_instance_override
        - Src:             'settings.c:1223,6'
          Dst:             settings_mmap_apply_blob
        - Src:             'settings.c:1228,9'
          Dst:             settings_instance_override
    - functionName:    settings_instance_override
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2338
      functionLinenumberEnd: 2550
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         150
      ICount:          959
      EdgeCount:       200
      CyclomaticComplexity: 52
      functionsReached:
        - array_idx_get_space_i
        - array_idx_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - i_panic
        - i_unreached
        - null_strcmp
        - p_strdup
        - pool_add_external_ref
        - settings_include_group_add_or_update
        - settings_instance_override_add_default
        - settings_override_cmp_filter_order
        - settings_override_free
        - settings_override_get_value
        - settings_parse_array_stop
        - settings_parse_keyidx_value_nodup
        - settings_parse_list_has_key
        - settings_parser_get_error
        - settings_section_unescape
        - settings_var_expand
        - str_begins
        - str_begins_builtin_success
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - t_strconcat
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'settings.c:2440,4'
          Branch Sides:    []
      Callsites:
        - Src:             'settings.c:2347,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2359,7'
          Dst:             settings_override_cmp_filter_order
        - Src:             'settings.c:2369,7'
          Dst:             strcmp
        - Src:             'settings.c:2370,7'
          Dst:             null_strcmp
        - Src:             'settings.c:2377,4'
          Dst:             settings_include_group_add_or_update
        - Src:             'settings.c:2381,9'
          Dst:             settings_override_get_value
        - Src:             'settings.c:2398,9'
          Dst:             settings_instance_override_add_default
        - Src:             'settings.c:2405,9'
          Dst:             str_begins
        - Src:             'settings.c:2405,9'
          Dst:             strlen
        - Src:             'settings.c:2405,9'
          Dst:             strncmp
        - Src:             'settings.c:2405,9'
          Dst:             strlen
        - Src:             'settings.c:2405,9'
          Dst:             str_begins_builtin_success
        - Src:             'settings.c:2406,5'
          Dst:             i_unreached
        - Src:             'settings.c:2415,9'
          Dst:             settings_var_expand
        - Src:             'settings.c:2417,17'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2422,11'
          Dst:             t_strconcat
        - Src:             'settings.c:2424,20'
          Dst:             strlen
        - Src:             'settings.c:2429,5'
          Dst:             i_panic
        - Src:             'settings.c:2432,6'
          Dst:             settings_section_unescape
        - Src:             'settings.c:2430,15'
          Dst:             settings_parse_list_has_key
        - Src:             'settings.c:2439,5'
          Dst:             array_idx_get_space_i
        - Src:             'settings.c:2460,4'
          Dst:             settings_override_free
        - Src:             'settings.c:2468,10'
          Dst:             settings_var_expand
        - Src:             'settings.c:2470,16'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2482,7'
          Dst:             strncmp
        - Src:             'settings.c:2482,7'
          Dst:             str_begins_with
        - Src:             'settings.c:2483,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2490,12'
          Dst:             p_strdup
        - Src:             'settings.c:2500,8'
          Dst:             array_is_created_i
        - Src:             'settings.c:2501,5'
          Dst:             array_idx_i
        - Src:             'settings.c:2501,5'
          Dst:             i_panic
        - Src:             'settings.c:2503,5'
          Dst:             pool_add_external_ref
        - Src:             'settings.c:2521,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2528,7'
          Dst:             settings_parse_keyidx_value_nodup
        - Src:             'settings.c:2536,17'
          Dst:             settings_parser_get_error
        - Src:             'settings.c:2532,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2545,4'
          Dst:             settings_parse_array_stop
    - functionName:    settings_override_free
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:205,3'
          Dst:             event_filter_unref
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    settings_mmap_validate
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          139
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - settings_block_read_str
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1122,7'
          Dst:             settings_block_read_str
        - Src:             'settings.c:1128,7'
          Dst:             strcmp
        - Src:             'settings.c:1129,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1136,14'
          Dst:             t_strdup_printf
    - functionName:    settings_block_read_str
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - t_strdup_printf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:279,13'
          Dst:             strlen
        - Src:             'settings.c:281,14'
          Dst:             t_strdup_printf
    - functionName:    setting_override_match_info
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1905
      functionLinenumberEnd: 1915
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1911,7'
          Dst:             strcmp
    - functionName:    settings_override_filter_match
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 2033
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          456
      EdgeCount:       85
      CyclomaticComplexity: 23
      functionsReached:
        - event_filter_create_with_pool
        - event_filter_match
        - event_filter_parse_case_sensitive
        - i_panic
        - p_strdup
        - pool_ref
        - setting_override_match_info
        - settings_override_key_part_find
        - settings_override_set_blocks
        - settings_section_escape
        - str_append
        - str_begins
        - str_begins_builtin_success
        - str_c
        - str_printfa
        - strchr
        - strncmp
        - t_str_new
        - t_strdup_printf
        - t_strdup_until
        - wildcard_str_escape
      functionUses:    1
      BranchProfiles:
        - Branch String:   'settings.c:1975,3'
          Branch Sides:    []
      Callsites:
        - Src:             'settings.c:1931,8'
          Dst:             setting_override_match_info
        - Src:             'settings.c:1935,10'
          Dst:             event_filter_match
        - Src:             'settings.c:1939,6'
          Dst:             str_begins
        - Src:             'settings.c:1939,6'
          Dst:             strncmp
        - Src:             'settings.c:1939,6'
          Dst:             str_begins_builtin_success
        - Src:             'settings.c:1941,13'
          Dst:             settings_override_set_blocks
        - Src:             'settings.c:1948,10'
          Dst:             setting_override_match_info
        - Src:             'settings.c:1954,14'
          Dst:             strchr
        - Src:             'settings.c:1955,22'
          Dst:             t_strdup_until
        - Src:             'settings.c:1959,8'
          Dst:             settings_override_key_part_find
        - Src:             'settings.c:1963,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1972,20'
          Dst:             t_str_new
        - Src:             'settings.c:1974,4'
          Dst:             str_append
        - Src:             'settings.c:1980,9'
          Dst:             wildcard_str_escape
        - Src:             'settings.c:1979,4'
          Dst:             str_printfa
        - Src:             'settings.c:1985,8'
          Dst:             strchr
        - Src:             'settings.c:1987,16'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1993,24'
          Dst:             t_strdup_until
        - Src:             'settings.c:1995,46'
          Dst:             settings_section_escape
        - Src:             'settings.c:1995,26'
          Dst:             wildcard_str_escape
        - Src:             'settings.c:1994,4'
          Dst:             str_printfa
        - Src:             'settings.c:2000,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2009,26'
          Dst:             p_strdup
        - Src:             'settings.c:2011,28'
          Dst:             p_strdup
        - Src:             'settings.c:2013,12'
          Dst:             settings_override_set_blocks
        - Src:             'settings.c:2020,17'
          Dst:             event_filter_create_with_pool
        - Src:             'settings.c:2021,41'
          Dst:             str_c
        - Src:             'settings.c:2021,7'
          Dst:             event_filter_parse_case_sensitive
        - Src:             'settings.c:2024,27'
          Dst:             str_c
        - Src:             'settings.c:2023,4'
          Dst:             i_panic
        - Src:             'settings.c:2026,3'
          Dst:             pool_ref
        - Src:             'settings.c:2029,7'
          Dst:             setting_override_match_info
        - Src:             'settings.c:2032,3'
          Dst:             event_filter_match
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    settings_apply_override_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1730
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          133
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_instance_overrides_add_filters
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2224
      functionLinenumberEnd: 2243
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          117
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - settings_apply_add_override
        - settings_override_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2233,9'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:2233,9'
          Dst:             p_malloc
        - Src:             'settings.c:2238,14'
          Dst:             settings_apply_add_override
        - Src:             'settings.c:2239,4'
          Dst:             i_panic
        - Src:             'settings.c:2241,4'
          Dst:             settings_override_free
    - functionName:    settings_apply_add_override
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2206
      functionLinenumberEnd: 2219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_count_i
        - i_panic
        - settings_override_filter_match
        - t_pop_pass_str
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2208,2'
          Dst:             t_push
        - Src:             'settings.c:2209,9'
          Dst:             settings_override_filter_match
        - Src:             'settings.c:2210,4'
          Dst:             t_pop_pass_str
        - Src:             'settings.c:2210,4'
          Dst:             i_panic
        - Src:             'settings.c:2215,3'
          Dst:             array_append_space_i
        - Src:             'settings.c:2217,20'
          Dst:             array_count_i
    - functionName:    settings_var_expand_init_add
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1641
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         107
      ICount:          544
      EdgeCount:       136
      CyclomaticComplexity: 31
      functionsReached:
        - array_append_i
        - array_count_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1565,3'
          Dst:             i_panic
        - Src:             'settings.c:1566,3'
          Dst:             array_append_i
        - Src:             'settings.c:1568,3'
          Dst:             array_append_i
        - Src:             'settings.c:1571,3'
          Dst:             i_panic
        - Src:             'settings.c:1572,3'
          Dst:             array_append_i
        - Src:             'settings.c:1574,3'
          Dst:             array_append_i
        - Src:             'settings.c:1577,3'
          Dst:             array_append_i
        - Src:             'settings.c:1597,5'
          Dst:             array_append_i
        - Src:             'settings.c:1600,5'
          Dst:             array_append_i
        - Src:             'settings.c:1603,5'
          Dst:             array_append_i
        - Src:             'settings.c:1606,5'
          Dst:             array_append_i
        - Src:             'settings.c:1626,4'
          Dst:             array_append_i
        - Src:             'settings.c:1628,3'
          Dst:             i_panic
        - Src:             'settings.c:1633,4'
          Dst:             array_append_i
        - Src:             'settings.c:1637,28'
          Dst:             array_count_i
        - Src:             'settings.c:1638,27'
          Dst:             array_count_i
        - Src:             'settings.c:1639,25'
          Dst:             array_count_i
        - Src:             'settings.c:1640,2'
          Dst:             i_panic
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    14
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    p_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    pool_get_name
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    settings_mmap_pool_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1493
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_get_max_easy_alloc_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1497,9'
          Dst:             p_get_max_easy_alloc_size
    - functionName:    settings_mmap_pool_realloc
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1484,9'
          Dst:             p_realloc
    - functionName:    settings_mmap_pool_free
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1475,2'
          Dst:             p_free_internal
    - functionName:    settings_mmap_pool_malloc
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1467
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1467,9'
          Dst:             p_malloc
    - functionName:    settings_mmap_pool_unref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1460
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          136
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - pool_external_refs_unref
        - pool_unref
        - settings_mmap_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1450,2'
          Dst:             i_panic
        - Src:             'settings.c:1457,2'
          Dst:             settings_mmap_unref
        - Src:             'settings.c:1458,2'
          Dst:             pool_external_refs_unref
        - Src:             'settings.c:1459,2'
          Dst:             pool_unref
    - functionName:    settings_mmap_unref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - event_filter_unref
        - hash_table_destroy
        - i_error
        - i_panic
        - munmap
        - pool_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1374,2'
          Dst:             i_panic
        - Src:             'settings.c:1383,4'
          Dst:             event_filter_unref
        - Src:             'settings.c:1385,2'
          Dst:             hash_table_destroy
        - Src:             'settings.c:1387,6'
          Dst:             munmap
        - Src:             'settings.c:1388,3'
          Dst:             i_error
        - Src:             'settings.c:1389,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_mmap_pool_ref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1443
      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:             'settings.c:1441,2'
          Dst:             i_panic
    - functionName:    settings_mmap_pool_get_name
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1429
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_get_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1433,9'
          Dst:             pool_get_name
    - functionName:    settings_mmap_ref
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1367
      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:             'settings.c:1364,2'
          Dst:             i_panic
    - functionName:    settings_overrides_find_filter
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2051
      functionLinenumberEnd: 2070
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - settings_override_find_filter_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2057,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:2058,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2059,8'
          Dst:             settings_override_find_filter_check
        - Src:             'settings.c:2063,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:2064,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2065,8'
          Dst:             settings_override_find_filter_check
    - functionName:    settings_mmap_apply_defaults
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          226
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - array_idx_get_space_i
        - get_invalid_setting_error
        - i_panic
        - settings_parse_keyidx_value
        - settings_var_expand
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:957,4'
          Dst:             array_idx_get_space_i
        - Src:             'settings.c:974,4'
          Dst:             i_panic
        - Src:             'settings.c:977,13'
          Dst:             settings_var_expand
        - Src:             'settings.c:979,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:985,7'
          Dst:             settings_parse_keyidx_value
        - Src:             'settings.c:987,15'
          Dst:             get_invalid_setting_error
    - functionName:    settings_apply_ctx_overrides_deinit
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2306
      functionLinenumberEnd: 2313
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_get_modifiable_data
        - settings_override_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2309,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2311,4'
          Dst:             settings_override_free
    - functionName:    settings_mmap_apply
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          231
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - event_filter_match
        - hash_table_lookup
        - i_panic
        - settings_apply_groups
        - settings_mmap_apply_filter
        - settings_mmap_get_filter_idx
        - settings_mmap_validate
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1312,3'
          Dst:             hash_table_lookup
        - Src:             'settings.c:1314,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:1322,7'
          Dst:             settings_mmap_validate
        - Src:             'settings.c:1338,7'
          Dst:             settings_mmap_get_filter_idx
        - Src:             'settings.c:1346,5'
          Dst:             event_filter_match
        - Src:             'settings.c:1347,4'
          Dst:             i_panic
        - Src:             'settings.c:1348,8'
          Dst:             settings_mmap_apply_filter
        - Src:             'settings.c:1353,8'
          Dst:             settings_apply_groups
    - functionName:    settings_instance_override_init
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2248
      functionLinenumberEnd: 2302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          281
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - array_create_i
        - array_is_created_i
        - array_sort_i
        - buffer_get_modifiable_data
        - i_memcpy
        - pool_alloconly_create
        - pool_datastack_create
        - settings_apply_add_override
        - settings_apply_override_cmp
        - settings_info_register
        - settings_instance_overrides_add_filters
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2254,3'
          Dst:             settings_info_register
        - Src:             'settings.c:2257,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:2257,2'
          Dst:             array_create_i
        - Src:             'settings.c:2258,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:2259,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2262,8'
          Dst:             settings_apply_add_override
        - Src:             'settings.c:2266,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:2267,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:2270,8'
          Dst:             settings_apply_add_override
        - Src:             'settings.c:2275,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:2295,20'
          Dst:             pool_alloconly_create
        - Src:             'settings.c:2296,3'
          Dst:             i_memcpy
        - Src:             'settings.c:2297,4'
          Dst:             settings_instance_overrides_add_filters
        - Src:             'settings.c:2300,2'
          Dst:             array_sort_i
        - Src:             'settings.c:2300,2'
          Dst:             settings_apply_override_cmp
    - functionName:    settings_info_register
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3355
      functionLinenumberEnd: 3363
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - array_lsearch_i
        - lib_atexit
        - set_registered_infos_free
        - setting_parser_info_cmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3356,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:3357,3'
          Dst:             array_create_i
        - Src:             'settings.c:3358,3'
          Dst:             lib_atexit
        - Src:             'settings.c:3358,3'
          Dst:             set_registered_infos_free
        - Src:             'settings.c:3360,6'
          Dst:             array_lsearch_i
        - Src:             'settings.c:3360,6'
          Dst:             setting_parser_info_cmp
        - Src:             'settings.c:3362,3'
          Dst:             array_append_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    12
      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:    set_registered_infos_free
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3343
      functionLinenumberEnd: 3345
      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:             'settings.c:3344,2'
          Dst:             array_free_i
    - functionName:    setting_parser_info_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3350
      functionLinenumberEnd: 3351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    settings_var_expand_init
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1645
      functionLinenumberEnd: 1697
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          196
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - event_get_parent
        - event_get_ptr
        - i_panic
        - pool_datastack_create
        - settings_var_expand_init_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1651,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:1651,2'
          Dst:             array_create_i
        - Src:             'settings.c:1652,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:1652,2'
          Dst:             array_create_i
        - Src:             'settings.c:1653,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:1653,2'
          Dst:             array_create_i
        - Src:             'settings.c:1657,4'
          Dst:             event_get_ptr
        - Src:             'settings.c:1659,29'
          Dst:             event_get_ptr
        - Src:             'settings.c:1663,4'
          Dst:             settings_var_expand_init_add
        - Src:             'settings.c:1666,5'
          Dst:             event_get_ptr
        - Src:             'settings.c:1668,5'
          Dst:             settings_var_expand_init_add
        - Src:             'settings.c:1671,11'
          Dst:             event_get_parent
        - Src:             'settings.c:1675,28'
          Dst:             array_count_i
        - Src:             'settings.c:1676,27'
          Dst:             array_count_i
        - Src:             'settings.c:1677,25'
          Dst:             array_count_i
        - Src:             'settings.c:1678,2'
          Dst:             i_panic
        - Src:             'settings.c:1680,2'
          Dst:             array_append_space_i
        - Src:             'settings.c:1681,2'
          Dst:             array_append_space_i
        - Src:             'settings.c:1683,2'
          Dst:             array_append_i
        - Src:             'settings.c:1685,31'
          Dst:             array_idx_i
        - Src:             'settings.c:1686,34'
          Dst:             array_idx_i
        - Src:             'settings.c:1687,29'
          Dst:             array_idx_i
    - functionName:    settings_mmap_pool_create
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          113
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - settings_mmap_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1523,3'
          Dst:             pool_alloconly_create
        - Src:             'settings.c:1525,10'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:1525,10'
          Dst:             p_malloc
        - Src:             'settings.c:1535,3'
          Dst:             settings_mmap_ref
    - functionName:    settings_mmap_pool_clear
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1489
      functionLinenumberEnd: 1489
      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:             'settings.c:1489,2'
          Dst:             i_panic
    - functionName:    settings_instance_get
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2557
      functionLinenumberEnd: 2635
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          344
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - array_create_i
        - event_add_str
        - event_find_field_recursive
        - i_panic
        - pool_datastack_create
        - pool_unref
        - settings_apply_ctx_overrides_deinit
        - settings_check
        - settings_instance_override
        - settings_instance_override_init
        - settings_mmap_apply
        - settings_mmap_apply_defaults
        - settings_mmap_pool_create
        - settings_overrides_find_filter
        - settings_parser_get_set
        - settings_parser_init
        - settings_var_expand_init
        - str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2562,2'
          Dst:             i_panic
        - Src:             'settings.c:2566,6'
          Dst:             event_find_field_recursive
        - Src:             'settings.c:2567,3'
          Dst:             event_add_str
        - Src:             'settings.c:2569,15'
          Dst:             settings_mmap_pool_create
        - Src:             'settings.c:2572,16'
          Dst:             settings_parser_init
        - Src:             'settings.c:2577,20'
          Dst:             settings_parser_get_set
        - Src:             'settings.c:2582,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:2582,2'
          Dst:             array_create_i
        - Src:             'settings.c:2583,13'
          Dst:             str_new
        - Src:             'settings.c:2584,2'
          Dst:             array_create_i
        - Src:             'settings.c:2587,3'
          Dst:             settings_var_expand_init
        - Src:             'settings.c:2589,6'
          Dst:             settings_instance_override_init
        - Src:             'settings.c:2592,9'
          Dst:             settings_mmap_apply
        - Src:             'settings.c:2594,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2602,9'
          Dst:             settings_instance_override
        - Src:             'settings.c:2607,2'
          Dst:             settings_apply_ctx_overrides_deinit
        - Src:             'settings.c:2610,9'
          Dst:             settings_mmap_apply_defaults
        - Src:             'settings.c:2612,3'
          Dst:             pool_unref
        - Src:             'settings.c:2618,7'
          Dst:             settings_overrides_find_filter
        - Src:             'settings.c:2619,3'
          Dst:             pool_unref
        - Src:             'settings.c:2624,8'
          Dst:             settings_check
        - Src:             'settings.c:2626,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2628,4'
          Dst:             pool_unref
    - functionName:    settings_event_convert_filter_names
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2639
      functionLinenumberEnd: 2667
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_get_ptr
        - event_strlist_append
        - str_append
        - str_c
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2641,3'
          Dst:             event_get_ptr
        - Src:             'settings.c:2644,2'
          Dst:             event_strlist_append
        - Src:             'settings.c:2649,16'
          Dst:             event_get_ptr
        - Src:             'settings.c:2652,2'
          Dst:             event_strlist_append
        - Src:             'settings.c:2656,18'
          Dst:             t_str_new
        - Src:             'settings.c:2657,2'
          Dst:             str_append
        - Src:             'settings.c:2659,3'
          Dst:             str_truncate
        - Src:             'settings.c:2660,3'
          Dst:             str_printfa
        - Src:             'settings.c:2661,42'
          Dst:             str_c
        - Src:             'settings.c:2661,17'
          Dst:             event_get_ptr
        - Src:             'settings.c:2664,3'
          Dst:             event_strlist_append
    - functionName:    settings_sort_filter_array
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2825
      functionLinenumberEnd: 2945
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          444
      EdgeCount:       63
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_get_i
        - array_get_modifiable_i
        - array_is_created_i
        - array_sort_i
        - i_panic
        - i_unreached
        - pool_datastack_create
        - pool_unref
        - setting_parser_info_find_key
        - settings_filter_array_str_cmp
        - settings_filter_array_uint_cmp
        - settings_get_real
        - t_pop_pass_str
        - t_push
        - t_strdup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'settings.c:2850,2'
          Branch Sides:    []
        - Branch String:   'settings.c:2903,3'
          Branch Sides:    []
        - Branch String:   'settings.c:2921,2'
          Branch Sides:    []
      Callsites:
        - Src:             'settings.c:2829,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:2833,7'
          Dst:             setting_parser_info_find_key
        - Src:             'settings.c:2835,3'
          Dst:             i_panic
        - Src:             'settings.c:2862,3'
          Dst:             i_panic
        - Src:             'settings.c:2866,3'
          Dst:             i_panic
        - Src:             'settings.c:2874,10'
          Dst:             array_get_modifiable_i
        - Src:             'settings.c:2875,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:2875,2'
          Dst:             array_create_i
        - Src:             'settings.c:2880,3'
          Dst:             t_push
        - Src:             'settings.c:2881,10'
          Dst:             settings_get_real
        - Src:             'settings.c:2885,5'
          Dst:             t_pop_pass_str
        - Src:             'settings.c:2885,5'
          Dst:             i_panic
        - Src:             'settings.c:2889,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2900,10'
          Dst:             array_append_space_i
        - Src:             'settings.c:2911,22'
          Dst:             t_strdup
        - Src:             'settings.c:2914,4'
          Dst:             i_unreached
        - Src:             'settings.c:2917,3'
          Dst:             pool_unref
        - Src:             'settings.c:2923,3'
          Dst:             array_sort_i
        - Src:             'settings.c:2923,3'
          Dst:             settings_filter_array_uint_cmp
        - Src:             'settings.c:2926,3'
          Dst:             array_sort_i
        - Src:             'settings.c:2926,3'
          Dst:             settings_filter_array_str_cmp
        - Src:             'settings.c:2929,3'
          Dst:             i_unreached
        - Src:             'settings.c:2936,10'
          Dst:             array_get_i
        - Src:             'settings.c:2937,2'
          Dst:             i_panic
    - functionName:    settings_get_real
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2677
      functionLinenumberEnd: 2765
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          347
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - array_free_i
        - event_add_str
        - event_create
        - event_get_parent
        - event_get_ptr
        - event_strlist_append
        - event_unref
        - i_panic
        - pool_unref
        - settings_event_convert_filter_names
        - settings_instance_get
        - settings_parser_unref
        - settings_section_escape
        - str_free
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2685,17'
          Dst:             event_create
        - Src:             'settings.c:2688,4'
          Dst:             settings_section_escape
        - Src:             'settings.c:2687,17'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2691,3'
          Dst:             event_add_str
        - Src:             'settings.c:2692,3'
          Dst:             event_strlist_append
        - Src:             'settings.c:2697,3'
          Dst:             event_strlist_append
        - Src:             'settings.c:2703,15'
          Dst:             event_get_ptr
        - Src:             'settings.c:2704,19'
          Dst:             event_get_ptr
        - Src:             'settings.c:2720,3'
          Dst:             settings_event_convert_filter_names
        - Src:             'settings.c:2721,16'
          Dst:             event_get_parent
        - Src:             'settings.c:2725,3'
          Dst:             i_panic
        - Src:             'settings.c:2752,12'
          Dst:             settings_instance_get
        - Src:             'settings.c:2757,4'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2755,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:2760,2'
          Dst:             settings_parser_unref
        - Src:             'settings.c:2761,2'
          Dst:             event_unref
        - Src:             'settings.c:2762,2'
          Dst:             array_free_i
        - Src:             'settings.c:2763,2'
          Dst:             str_free
        - Src:             'settings.c:2764,2'
          Dst:             pool_unref
    - functionName:    settings_block_read_size
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          93
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:253,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:259,2'
          Dst:             i_memcpy
        - Src:             'settings.c:262,14'
          Dst:             t_strdup_printf
    - functionName:    settings_filter_node_match_service
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          209
      EdgeCount:       49
      CyclomaticComplexity: 13
      functionsReached:
        - settings_filter_node_match_service
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strncmp
      functionUses:    6
      BranchProfiles:
        - Branch String:   'settings.c:296,2'
          Branch Sides:    []
      Callsites:
        - Src:             'settings.c:299,7'
          Dst:             strcmp
        - Src:             'settings.c:301,7'
          Dst:             str_begins
        - Src:             'settings.c:301,7'
          Dst:             strncmp
        - Src:             'settings.c:301,7'
          Dst:             str_begins_builtin_success
        - Src:             'settings.c:302,17'
          Dst:             strcmp
        - Src:             'settings.c:307,8'
          Dst:             settings_filter_node_match_service
        - Src:             'settings.c:309,8'
          Dst:             settings_filter_node_match_service
        - Src:             'settings.c:314,8'
          Dst:             settings_filter_node_match_service
        - Src:             'settings.c:316,8'
          Dst:             settings_filter_node_match_service
        - Src:             'settings.c:321,10'
          Dst:             settings_filter_node_match_service
    - functionName:    settings_local_name_cmp
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_match_wildcard
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:198,9'
          Dst:             dns_match_wildcard
    - functionName:    settings_filter_match_service
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_get_root_node
        - i_panic
        - settings_filter_node_match_service
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:333,35'
          Dst:             event_filter_get_root_node
        - Src:             'settings.c:334,2'
          Dst:             i_panic
        - Src:             'settings.c:335,2'
          Dst:             event_filter_get_root_node
        - Src:             'settings.c:335,2'
          Dst:             i_panic
        - Src:             'settings.c:336,9'
          Dst:             settings_filter_node_match_service
    - functionName:    settings_block_read_uint64
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:215,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:221,2'
          Dst:             i_memcpy
    - functionName:    settings_block_read_uint32
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - t_strdup_printf
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:234,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:240,2'
          Dst:             i_memcpy
    - functionName:    settings_block_read
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          378
      EdgeCount:       62
      CyclomaticComplexity: 19
      functionsReached:
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - settings_block_read_size
        - settings_block_read_str
        - settings_block_read_uint32
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:585,6'
          Dst:             settings_block_read_size
        - Src:             'settings.c:595,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:603,6'
          Dst:             settings_block_read_str
        - Src:             'settings.c:608,3'
          Dst:             hash_table_lookup
        - Src:             'settings.c:610,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:615,10'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:615,10'
          Dst:             p_malloc
        - Src:             'settings.c:618,2'
          Dst:             hash_table_insert
        - Src:             'settings.c:621,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:628,7'
          Dst:             settings_block_read_str
        - Src:             'settings.c:634,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:644,7'
          Dst:             settings_block_read_size
        - Src:             'settings.c:652,7'
          Dst:             settings_block_read_str
        - Src:             'settings.c:659,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:668,8'
          Dst:             settings_block_read_str
        - Src:             'settings.c:676,8'
          Dst:             settings_block_read_str
        - Src:             'settings.c:696,14'
          Dst:             t_strdup_printf
    - functionName:    settings_read_filters
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          309
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - array_append_i
        - array_lsearch_i
        - event_filter_create
        - event_filter_create_with_pool
        - event_filter_find_field_exact
        - event_filter_has_field_prefix
        - event_filter_merge
        - event_filter_parse_case_sensitive
        - event_filter_register_cmp
        - event_filter_unref
        - i_strcmp_p
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - settings_block_read_str
        - settings_block_read_uint32
        - settings_filter_match_service
        - settings_local_name_cmp
        - strcmp
        - t_strconcat
        - t_strdup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:495,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:502,3'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:502,3'
          Dst:             p_malloc
        - Src:             'settings.c:508,7'
          Dst:             settings_block_read_str
        - Src:             'settings.c:512,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:523,37'
          Dst:             event_filter_create
        - Src:             'settings.c:524,7'
          Dst:             event_filter_parse_case_sensitive
        - Src:             'settings.c:526,15'
          Dst:             t_strdup_printf
        - Src:             'settings.c:529,4'
          Dst:             event_filter_unref
        - Src:             'settings.c:534,4'
          Dst:             event_filter_find_field_exact
        - Src:             'settings.c:537,13'
          Dst:             t_strconcat
        - Src:             'settings.c:538,8'
          Dst:             array_lsearch_i
        - Src:             'settings.c:538,8'
          Dst:             i_strcmp_p
        - Src:             'settings.c:539,13'
          Dst:             t_strdup
        - Src:             'settings.c:540,5'
          Dst:             array_append_i
        - Src:             'settings.c:544,9'
          Dst:             strcmp
        - Src:             'settings.c:548,5'
          Dst:             event_filter_unref
        - Src:             'settings.c:553,8'
          Dst:             settings_filter_match_service
        - Src:             'settings.c:556,4'
          Dst:             event_filter_unref
        - Src:             'settings.c:560,4'
          Dst:             event_filter_has_field_prefix
        - Src:             'settings.c:564,24'
          Dst:             event_filter_create_with_pool
        - Src:             'settings.c:565,3'
          Dst:             event_filter_register_cmp
        - Src:             'settings.c:565,3'
          Dst:             settings_local_name_cmp
        - Src:             'settings.c:567,3'
          Dst:             pool_ref
        - Src:             'settings.c:568,3'
          Dst:             event_filter_merge
        - Src:             'settings.c:570,3'
          Dst:             event_filter_unref
    - functionName:    settings_read_all_keys
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          161
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - settings_block_read_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:452,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:462,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:467,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:476,6'
          Dst:             settings_block_read_uint32
    - functionName:    settings_read_config_paths
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          302
      EdgeCount:       71
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - settings_block_read_str
        - settings_block_read_uint32
        - settings_block_read_uint64
        - stat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:389,6'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:396,7'
          Dst:             settings_block_read_str
        - Src:             'settings.c:401,7'
          Dst:             settings_block_read_uint64
        - Src:             'settings.c:405,7'
          Dst:             settings_block_read_uint64
        - Src:             'settings.c:410,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:414,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:419,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:423,7'
          Dst:             settings_block_read_uint32
        - Src:             'settings.c:432,7'
          Dst:             stat
        - Src:             'settings.c:433,8'
          Dst:             __errno_location
        - Src:             'settings.c:433,27'
          Dst:             __errno_location
        - Src:             'settings.c:433,27'
          Dst:             __errno_location
        - Src:             'settings.c:433,27'
          Dst:             __errno_location
        - Src:             'settings.c:435,15'
          Dst:             t_strdup_printf
    - functionName:    settings_simple_deinit
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3390
      functionLinenumberEnd: 3394
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - settings_instance_free
        - settings_root_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3391,2'
          Dst:             settings_instance_free
        - Src:             'settings.c:3392,2'
          Dst:             settings_root_deinit
        - Src:             'settings.c:3393,2'
          Dst:             event_unref
    - functionName:    settings_instance_free
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3282
      functionLinenumberEnd: 3296
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - pool_unref
        - settings_override_free
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3291,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:3292,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:3293,4'
          Dst:             settings_override_free
        - Src:             'settings.c:3295,2'
          Dst:             pool_unref
    - functionName:    settings_root_deinit
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3307
      functionLinenumberEnd: 3327
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - i_warning
        - pool_unref
        - settings_mmap_unref
        - settings_override_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3316,6'
          Dst:             array_is_created_i
        - Src:             'settings.c:3317,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:3318,4'
          Dst:             settings_override_free
        - Src:             'settings.c:3320,2'
          Dst:             settings_mmap_unref
        - Src:             'settings.c:3323,3'
          Dst:             i_warning
        - Src:             'settings.c:3326,2'
          Dst:             pool_unref
    - functionName:    settings_simple_update
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3398
      functionLinenumberEnd: 3406
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          68
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - event_set_ptr
        - settings_instance_free
        - settings_instance_new
        - settings_override
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3399,2'
          Dst:             settings_instance_free
        - Src:             'settings.c:3400,18'
          Dst:             settings_instance_new
        - Src:             'settings.c:3402,3'
          Dst:             settings_override
        - Src:             'settings.c:3405,2'
          Dst:             event_set_ptr
    - functionName:    settings_instance_new
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3246
      functionLinenumberEnd: 3250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_instance_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3247,39'
          Dst:             settings_instance_alloc
    - functionName:    settings_override
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3136
      functionLinenumberEnd: 3143
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - settings_override_fill
      functionUses:    49
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3137,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:3138,3'
          Dst:             array_create_i
        - Src:             'settings.c:3140,3'
          Dst:             array_append_space_i
        - Src:             'settings.c:3142,2'
          Dst:             settings_override_fill
    - functionName:    settings_override_fill
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3115
      functionLinenumberEnd: 3131
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          145
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - p_strdup
        - strlen
        - t_pop
        - t_push
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3118,15'
          Dst:             strlen
        - Src:             'settings.c:3119,2'
          Dst:             t_push
        - Src:             'settings.c:3124,22'
          Dst:             __ctype_b_loc
        - Src:             'settings.c:3126,10'
          Dst:             t_strndup
        - Src:             'settings.c:3128,30'
          Dst:             p_strdup
        - Src:             'settings.c:3129,16'
          Dst:             p_strdup
        - Src:             'settings.c:3130,4'
          Dst:             t_pop
        - Src:             'settings.c:3130,4'
          Dst:             i_panic
    - functionName:    settings_instance_alloc
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3236
      functionLinenumberEnd: 3241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3237,16'
          Dst:             pool_alloconly_create
        - Src:             'settings.c:3239,3'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:3239,3'
          Dst:             p_malloc
    - functionName:    settings_simple_init
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3380
      functionLinenumberEnd: 3387
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_create
        - event_set_ptr
        - settings_root_init
        - settings_simple_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3382,16'
          Dst:             settings_root_init
        - Src:             'settings.c:3383,17'
          Dst:             event_create
        - Src:             'settings.c:3384,2'
          Dst:             event_set_ptr
        - Src:             'settings.c:3386,3'
          Dst:             settings_simple_update
    - functionName:    settings_root_init
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3299
      functionLinenumberEnd: 3303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3300,16'
          Dst:             pool_alloconly_create
        - Src:             'settings.c:3301,31'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:3301,31'
          Dst:             p_malloc
    - functionName:    settings_instance_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3366
      functionLinenumberEnd: 3376
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_get_parent
        - event_get_ptr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3370,14'
          Dst:             event_get_ptr
        - Src:             'settings.c:3373,11'
          Dst:             event_get_parent
    - functionName:    settings_root_find
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3330
      functionLinenumberEnd: 3340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_get_parent
        - event_get_ptr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3334,10'
          Dst:             event_get_ptr
        - Src:             'settings.c:3337,11'
          Dst:             event_get_parent
    - functionName:    settings_instance_dup
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3255
      functionLinenumberEnd: 3279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          141
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - p_strdup
        - settings_instance_alloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3256,35'
          Dst:             settings_instance_alloc
        - Src:             'settings.c:3260,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:3263,2'
          Dst:             array_count_i
        - Src:             'settings.c:3263,2'
          Dst:             array_create_i
        - Src:             'settings.c:3268,4'
          Dst:             array_append_space_i
        - Src:             'settings.c:3273,24'
          Dst:             p_strdup
        - Src:             'settings.c:3275,21'
          Dst:             p_strdup
    - functionName:    settings_event_add_list_filter_name
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3226
      functionLinenumberEnd: 3232
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_get_pool
        - event_set_ptr
        - p_strconcat
        - settings_event_get_free_filter_name_key
        - settings_section_escape
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3228,15'
          Dst:             event_get_pool
        - Src:             'settings.c:3229,18'
          Dst:             settings_section_escape
        - Src:             'settings.c:3228,3'
          Dst:             p_strconcat
        - Src:             'settings.c:3230,23'
          Dst:             settings_event_get_free_filter_name_key
        - Src:             'settings.c:3230,2'
          Dst:             event_set_ptr
    - functionName:    settings_event_get_free_filter_name_key
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3203
      functionLinenumberEnd: 3216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - event_get_ptr
        - str_append
        - str_c
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3204,6'
          Dst:             event_get_ptr
        - Src:             'settings.c:3207,18'
          Dst:             t_str_new
        - Src:             'settings.c:3208,2'
          Dst:             str_append
        - Src:             'settings.c:3210,3'
          Dst:             str_truncate
        - Src:             'settings.c:3211,3'
          Dst:             str_printfa
        - Src:             'settings.c:3212,28'
          Dst:             str_c
        - Src:             'settings.c:3212,7'
          Dst:             event_get_ptr
        - Src:             'settings.c:3215,9'
          Dst:             str_c
    - functionName:    settings_event_add_filter_name
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3219
      functionLinenumberEnd: 3222
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_get_pool
        - event_set_ptr
        - p_strdup
        - settings_event_get_free_filter_name_key
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3220,23'
          Dst:             settings_event_get_free_filter_name_key
        - Src:             'settings.c:3221,18'
          Dst:             event_get_pool
        - Src:             'settings.c:3221,9'
          Dst:             p_strdup
        - Src:             'settings.c:3220,2'
          Dst:             event_set_ptr
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-settings/../../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:    settings_override_equals
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3160
      functionLinenumberEnd: 3178
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          123
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3161,19'
          Dst:             strlen
        - Src:             'settings.c:3171,20'
          Dst:             strlen
        - Src:             'settings.c:3175,11'
          Dst:             strncmp
        - Src:             'settings.c:3177,10'
          Dst:             strcmp
    - functionName:    settings_root_override_remove
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3183
      functionLinenumberEnd: 3200
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_delete_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - settings_override_equals
        - settings_override_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3184,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:3189,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'settings.c:3190,8'
          Dst:             settings_override_equals
        - Src:             'settings.c:3193,3'
          Dst:             settings_override_free
        - Src:             'settings.c:3194,3'
          Dst:             array_delete_i
    - functionName:    settings_root_override
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3148
      functionLinenumberEnd: 3155
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - settings_override_fill
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3149,7'
          Dst:             array_is_created_i
        - Src:             'settings.c:3150,3'
          Dst:             array_create_i
        - Src:             'settings.c:3152,3'
          Dst:             array_append_space_i
        - Src:             'settings.c:3154,2'
          Dst:             settings_override_fill
    - functionName:    settings_get_or_fatal
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3101
      functionLinenumberEnd: 3108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3105,6'
          Dst:             settings_get
        - Src:             'settings.c:3107,3'
          Dst:             i_fatal
    - functionName:    settings_get
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3018
      functionLinenumberEnd: 3026
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - settings_get_full
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3022,12'
          Dst:             settings_get_full
        - Src:             'settings.c:3025,2'
          Dst:             i_panic
    - functionName:    settings_get_full
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2955
      functionLinenumberEnd: 3009
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          248
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - pool_unref
        - settings_get_real
        - settings_sort_filter_array
        - t_pop_pass_str
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2960,2'
          Dst:             t_push
        - Src:             'settings.c:2961,9'
          Dst:             settings_get_real
        - Src:             'settings.c:2964,4'
          Dst:             t_pop_pass_str
        - Src:             'settings.c:2964,4'
          Dst:             i_panic
        - Src:             'settings.c:2990,3'
          Dst:             i_panic
        - Src:             'settings.c:2993,3'
          Dst:             t_push
        - Src:             'settings.c:2994,10'
          Dst:             settings_sort_filter_array
        - Src:             'settings.c:2998,5'
          Dst:             t_pop_pass_str
        - Src:             'settings.c:2998,5'
          Dst:             i_panic
        - Src:             'settings.c:3002,4'
          Dst:             pool_unref
    - functionName:    settings_try_get_filter
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3083
      functionLinenumberEnd: 3092
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - settings_get_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3084,2'
          Dst:             i_panic
        - Src:             'settings.c:3085,2'
          Dst:             i_panic
        - Src:             'settings.c:3090,9'
          Dst:             settings_get_full
    - functionName:    settings_get_filter
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3052
      functionLinenumberEnd: 3073
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - settings_get_full
        - t_strdup_printf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3053,2'
          Dst:             i_panic
        - Src:             'settings.c:3054,2'
          Dst:             i_panic
        - Src:             'settings.c:3059,12'
          Dst:             settings_get_full
        - Src:             'settings.c:3066,14'
          Dst:             t_strdup_printf
    - functionName:    settings_get_params
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 3036
      functionLinenumberEnd: 3041
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - settings_get_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:3037,12'
          Dst:             settings_get_full
        - Src:             'settings.c:3040,2'
          Dst:             i_panic
    - functionName:    settings_key_exists
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 2769
      functionLinenumberEnd: 2789
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          123
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - event_get_parent
        - event_get_ptr
        - i_panic
        - settings_mmap_lookup_key
        - strlen
        - t_pop
        - t_push
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:2772,10'
          Dst:             event_get_ptr
        - Src:             'settings.c:2773,11'
          Dst:             event_get_parent
        - Src:             'settings.c:2776,3'
          Dst:             i_panic
        - Src:             'settings.c:2779,2'
          Dst:             t_push
        - Src:             'settings.c:2780,16'
          Dst:             strlen
        - Src:             'settings.c:2782,10'
          Dst:             t_strndup
        - Src:             'settings.c:2786,9'
          Dst:             settings_mmap_lookup_key
        - Src:             'settings.c:2788,4'
          Dst:             t_pop
        - Src:             'settings.c:2788,4'
          Dst:             i_panic
    - functionName:    settings_has_mmap
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1424
      functionLinenumberEnd: 1425
      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:    settings_mmap_parse
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          248
      EdgeCount:       48
      CyclomaticComplexity: 15
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - i_memcpy
        - memchr
        - memcmp
        - pool_datastack_create
        - settings_block_read
        - settings_read_all_keys
        - settings_read_config_paths
        - settings_read_filters
        - strlen
        - t_strdup_printf
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:721,2'
          Dst:             pool_datastack_create
        - Src:             'settings.c:721,2'
          Dst:             array_create_i
        - Src:             'settings.c:724,40'
          Dst:             strlen
        - Src:             'settings.c:725,29'
          Dst:             memchr
        - Src:             'settings.c:727,6'
          Dst:             memcmp
        - Src:             'settings.c:736,4'
          Dst:             t_strdup_until
        - Src:             'settings.c:734,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:743,2'
          Dst:             i_memcpy
        - Src:             'settings.c:747,14'
          Dst:             t_strdup_printf
        - Src:             'settings.c:756,13'
          Dst:             settings_read_config_paths
        - Src:             'settings.c:758,6'
          Dst:             settings_read_all_keys
        - Src:             'settings.c:760,6'
          Dst:             settings_read_filters
        - Src:             'settings.c:765,7'
          Dst:             settings_block_read
        - Src:             'settings.c:769,6'
          Dst:             array_count_i
        - Src:             'settings.c:770,3'
          Dst:             array_append_space_i
        - Src:             'settings.c:771,27'
          Dst:             array_idx_i
    - functionName:    settings_read
      functionSourceFile: '/src/dovecot/src/lib-settings/settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 1397
      functionLinenumberEnd: 1420
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          142
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_create
        - i_fatal
        - malloc_multiply_check
        - mmap_ro_file
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - settings_mmap_parse
        - settings_mmap_unref
        - str_hash
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'settings.c:1398,16'
          Dst:             pool_alloconly_create
        - Src:             'settings.c:1399,31'
          Dst:             malloc_multiply_check
        - Src:             'settings.c:1399,31'
          Dst:             p_malloc
        - Src:             'settings.c:1402,20'
          Dst:             mmap_ro_file
        - Src:             'settings.c:1404,3'
          Dst:             i_fatal
        - Src:             'settings.c:1406,3'
          Dst:             i_fatal
        - Src:             'settings.c:1408,24'
          Dst:             p_strdup
        - Src:             'settings.c:1410,2'
          Dst:             settings_mmap_unref
        - Src:             'settings.c:1413,2'
          Dst:             hash_table_create
        - Src:             'settings.c:1413,2'
          Dst:             str_hash
        - Src:             'settings.c:1413,2'
          Dst:             strcmp
        - Src:             'settings.c:1415,12'
          Dst:             settings_mmap_parse
        - Src:             'settings.c:1419,3'
          Dst:             settings_mmap_unref
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_class_deinit_modules
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_dir_unload
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:126,2'
          Dst:             module_dir_unload
    - functionName:    fs_driver_module_name
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 131
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:131,9'
          Dst:             t_str_replace
    - functionName:    fs_class_try_load_plugin
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_class_deinit_modules
        - fs_class_register
        - fs_driver_module_name
        - lib_atexit
        - module_dir_find
        - module_dir_init
        - module_dir_load_missing
        - module_get_symbol
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:137,28'
          Dst:             fs_driver_module_name
        - Src:             'fs-api.c:137,3'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:148,15'
          Dst:             module_dir_load_missing
        - Src:             'fs-api.c:150,2'
          Dst:             module_dir_init
        - Src:             'fs-api.c:152,11'
          Dst:             module_dir_find
        - Src:             'fs-api.c:155,19'
          Dst:             fs_driver_module_name
        - Src:             'fs-api.c:154,29'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:154,3'
          Dst:             module_get_symbol
        - Src:             'fs-api.c:157,3'
          Dst:             fs_class_register
        - Src:             'fs-api.c:159,2'
          Dst:             lib_atexit
        - Src:             'fs-api.c:159,2'
          Dst:             fs_class_deinit_modules
    - functionName:    fs_class_register
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_is_created_i
        - fs_classes_init
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:73,7'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:74,3'
          Dst:             fs_classes_init
        - Src:             'fs-api.c:75,2'
          Dst:             array_append_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_classes_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - fs_class_register
        - fs_classes_deinit
        - lib_atexit_priority
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:99,2'
          Dst:             array_create_i
        - Src:             'fs-api.c:100,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:101,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:102,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:103,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:104,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:105,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:106,2'
          Dst:             fs_class_register
        - Src:             'fs-api.c:107,2'
          Dst:             lib_atexit_priority
        - Src:             'fs-api.c:107,2'
          Dst:             fs_classes_deinit
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    4
      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:    fs_classes_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 95
      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:             'fs-api.c:94,2'
          Dst:             array_free_i
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    fs_class_find
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - fs_classes_init
        - i_memcpy
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:114,7'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:115,3'
          Dst:             fs_classes_init
        - Src:             'fs-api.c:117,2'
          Dst:             i_memcpy
        - Src:             'fs-api.c:118,7'
          Dst:             strcmp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    fs_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          173
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_create_i
        - event_set_ptr
        - fs_class_find
        - fs_class_try_load_plugin
        - fs_create_event
        - i_panic
        - i_strconcat
        - i_strdup
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:171,13'
          Dst:             fs_class_find
        - Src:             'fs-api.c:173,3'
          Dst:             t_push
        - Src:             'fs-api.c:174,4'
          Dst:             fs_class_try_load_plugin
        - Src:             'fs-api.c:175,5'
          Dst:             t_pop
        - Src:             'fs-api.c:175,5'
          Dst:             i_panic
        - Src:             'fs-api.c:176,14'
          Dst:             fs_class_find
        - Src:             'fs-api.c:179,14'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:186,17'
          Dst:             i_strdup
        - Src:             'fs-api.c:187,19'
          Dst:             i_strdup
        - Src:             'fs-api.c:188,2'
          Dst:             array_create_i
        - Src:             'fs-api.c:189,14'
          Dst:             fs_create_event
        - Src:             'fs-api.c:190,2'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:195,25'
          Dst:             i_strconcat
    - functionName:    fs_create_event
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:64,10'
          Dst:             event_create
        - Src:             'fs-api.c:65,2'
          Dst:             event_add_category
        - Src:             'fs-api.c:67,3'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:66,2'
          Dst:             event_set_append_log_prefix
    - functionName:    fs_get_event
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1589
      functionLinenumberEnd: 1590
      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:    fs_iter_init_parent
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1583
      functionLinenumberEnd: 1585
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_iter_init_with_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1584,9'
          Dst:             fs_iter_init_with_event
    - functionName:    fs_iter_init_with_event
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1415
      functionLinenumberEnd: 1440
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          216
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - event_set_ptr
        - fs_create_event
        - fs_get_properties
        - i_gettimeofday
        - i_panic
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1419,2'
          Dst:             fs_get_properties
        - Src:             'fs-api.c:1419,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1424,3'
          Dst:             i_gettimeofday
        - Src:             'fs-api.c:1426,10'
          Dst:             malloc_multiply_check
        - Src:             'fs-api.c:1426,10'
          Dst:             p_malloc
        - Src:             'fs-api.c:1430,16'
          Dst:             fs_create_event
        - Src:             'fs-api.c:1431,2'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:1432,2'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:1433,31'
          Dst:             t_push
        - Src:             'fs-api.c:1435,16'
          Dst:             i_strdup
        - Src:             'fs-api.c:1437,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1437,4'
          Dst:             i_panic
    - functionName:    fs_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_file_init_parent
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1577
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_init_with_event
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1576,9'
          Dst:             fs_file_init_with_event
    - functionName:    fs_file_init_with_event
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          180
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - event_set_ptr
        - fs_create_event
        - fs_set_metadata
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:428,2'
          Dst:             i_panic
        - Src:             'fs-api.c:429,2'
          Dst:             i_panic
        - Src:             'fs-api.c:432,2'
          Dst:             t_push
        - Src:             'fs-api.c:436,17'
          Dst:             fs_create_event
        - Src:             'fs-api.c:437,3'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:438,3'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:441,4'
          Dst:             t_pop
        - Src:             'fs-api.c:441,4'
          Dst:             i_panic
        - Src:             'fs-api.c:446,2'
          Dst:             fs_set_metadata
    - functionName:    fs_set_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - strchr
        - strncmp
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:616,2'
          Dst:             i_panic
        - Src:             'fs-api.c:617,2'
          Dst:             i_panic
        - Src:             'fs-api.c:618,2'
          Dst:             strchr
        - Src:             'fs-api.c:618,2'
          Dst:             i_panic
        - Src:             'fs-api.c:620,40'
          Dst:             t_push
        - Src:             'fs-api.c:622,7'
          Dst:             strncmp
        - Src:             'fs-api.c:628,4'
          Dst:             t_pop
        - Src:             'fs-api.c:628,4'
          Dst:             i_panic
    - functionName:    fs_stats_get_write_usecs
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1565
      functionLinenumberEnd: 1569
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_stats_count_ops
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1569,9'
          Dst:             fs_stats_count_ops
    - functionName:    fs_stats_count_ops
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1545
      functionLinenumberEnd: 1552
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - stats_dist_get_sum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1550,11'
          Dst:             stats_dist_get_sum
    - functionName:    fs_stats_get_read_usecs
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1556
      functionLinenumberEnd: 1561
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_stats_count_ops
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1561,9'
          Dst:             fs_stats_count_ops
    - functionName:    fs_set_error_errno
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fs_set_verror
        - i_panic
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1530,2'
          Dst:             __errno_location
        - Src:             'fs-api.c:1530,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1533,2'
          Dst:             fs_set_verror
    - functionName:    fs_set_verror
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          335
      EdgeCount:       79
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - e_debug
        - e_error
        - event_get_parent
        - event_get_ptr
        - event_send_abort
        - event_want_level
        - fs_file_get_error_file
        - fs_file_path
        - i_panic
        - i_strdup_vprintf
        - p_free_internal
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:757,17'
          Dst:             event_get_ptr
        - Src:             'fs-api.c:758,17'
          Dst:             event_get_ptr
        - Src:             'fs-api.c:759,14'
          Dst:             event_get_parent
        - Src:             'fs-api.c:760,3'
          Dst:             i_panic
        - Src:             'fs-api.c:763,20'
          Dst:             i_strdup_vprintf
        - Src:             'fs-api.c:766,6'
          Dst:             __errno_location
        - Src:             'fs-api.c:767,3'
          Dst:             event_want_level
        - Src:             'fs-api.c:767,3'
          Dst:             e_debug
        - Src:             'fs-api.c:767,3'
          Dst:             event_send_abort
        - Src:             'fs-api.c:769,3'
          Dst:             event_send_abort
        - Src:             'fs-api.c:773,10'
          Dst:             fs_file_get_error_file
        - Src:             'fs-api.c:777,4'
          Dst:             i_panic
        - Src:             'fs-api.c:778,14'
          Dst:             strcmp
        - Src:             'fs-api.c:783,4'
          Dst:             fs_file_path
        - Src:             'fs-api.c:783,4'
          Dst:             e_error
        - Src:             'fs-api.c:786,7'
          Dst:             __errno_location
        - Src:             'fs-api.c:786,26'
          Dst:             __errno_location
        - Src:             'fs-api.c:786,45'
          Dst:             __errno_location
        - Src:             'fs-api.c:787,7'
          Dst:             __errno_location
        - Src:             'fs-api.c:796,3'
          Dst:             p_free_internal
        - Src:             'fs-api.c:799,3'
          Dst:             i_panic
        - Src:             'fs-api.c:801,7'
          Dst:             strcmp
        - Src:             'fs-api.c:806,4'
          Dst:             e_error
        - Src:             'fs-api.c:809,3'
          Dst:             p_free_internal
    - functionName:    fs_file_get_error_file
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_file_path
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_get_stats
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1510
      functionLinenumberEnd: 1511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_iter_set_async_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1499
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_iter_have_more
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1505
      functionLinenumberEnd: 1506
      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:    fs_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - fs_iter_have_more
        - fs_timing_end
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1480,2'
          Dst:             t_push
        - Src:             'fs-api.c:1482,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1482,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1484,23'
          Dst:             fs_iter_have_more
        - Src:             'fs-api.c:1488,3'
          Dst:             fs_timing_end
    - functionName:    fs_timing_end
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_gettimeofday
        - stats_dist_add
        - stats_dist_init
        - timeval_diff_usecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:645,2'
          Dst:             i_gettimeofday
        - Src:             'fs-api.c:647,9'
          Dst:             timeval_diff_usecs
        - Src:             'fs-api.c:650,14'
          Dst:             stats_dist_init
        - Src:             'fs-api.c:651,3'
          Dst:             stats_dist_add
    - functionName:    fs_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1444
      functionLinenumberEnd: 1472
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          208
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - event_unref
        - fs_set_error
        - i_panic
        - p_free_internal
        - t_pop
        - t_push
        - t_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1460,3'
          Dst:             fs_set_error
        - Src:             'fs-api.c:1462,9'
          Dst:             t_push
        - Src:             'fs-api.c:1464,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1464,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1466,14'
          Dst:             t_strdup
        - Src:             'fs-api.c:1467,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:1468,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:1469,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:1470,2'
          Dst:             event_unref
    - functionName:    fs_set_error
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1515
      functionLinenumberEnd: 1524
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fs_set_verror
        - i_panic
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1518,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1520,2'
          Dst:             __errno_location
        - Src:             'fs-api.c:1522,2'
          Dst:             fs_set_verror
    - functionName:    fs_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1409
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_iter_init_with_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1409,9'
          Dst:             fs_iter_init_with_event
    - functionName:    fs_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1392
      functionLinenumberEnd: 1403
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - i_panic
        - t_pop
        - t_push
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1395,2'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1396,2'
          Dst:             t_push
        - Src:             'fs-api.c:1398,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1398,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1399,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1401,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_file_timing_start
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_gettimeofday
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:636,3'
          Dst:             i_gettimeofday
    - functionName:    fs_file_timing_end
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_timing_end
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:660,2'
          Dst:             fs_timing_end
    - functionName:    fs_rename
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1378,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1380,2'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1381,2'
          Dst:             t_push
        - Src:             'fs-api.c:1383,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1383,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1384,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1386,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_copy_finish_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1360,2'
          Dst:             t_push
        - Src:             'fs-api.c:1362,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1362,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1363,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1364,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1331
      functionLinenumberEnd: 1354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          152
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_set_error
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1334,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1337,3'
          Dst:             fs_set_error
        - Src:             'fs-api.c:1341,2'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1342,2'
          Dst:             t_push
        - Src:             'fs-api.c:1344,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1344,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1345,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1346,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_default_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          232
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
        - fs_read_stream
        - fs_write_stream
        - fs_write_stream_abort_error
        - fs_write_stream_finish
        - fs_write_stream_finish_async
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_unref
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_send_istream
      functionUses:    1
      BranchProfiles:
        - Branch String:   'fs-api.c:1297,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-api.c:1284,3'
          Dst:             i_panic
        - Src:             'fs-api.c:1286,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1287,8'
          Dst:             fs_write_stream_finish_async
        - Src:             'fs-api.c:1294,22'
          Dst:             fs_read_stream
        - Src:             'fs-api.c:1295,23'
          Dst:             fs_write_stream
        - Src:             'fs-api.c:1297,10'
          Dst:             o_stream_send_istream
        - Src:             'fs-api.c:1302,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-api.c:1307,10'
          Dst:             i_stream_get_name
        - Src:             'fs-api.c:1308,10'
          Dst:             i_stream_get_error
        - Src:             'fs-api.c:1305,3'
          Dst:             fs_write_stream_abort_error
        - Src:             'fs-api.c:1309,3'
          Dst:             __errno_location
        - Src:             'fs-api.c:1310,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:1317,10'
          Dst:             o_stream_get_name
        - Src:             'fs-api.c:1318,10'
          Dst:             o_stream_get_error
        - Src:             'fs-api.c:1315,3'
          Dst:             fs_write_stream_abort_error
        - Src:             'fs-api.c:1319,3'
          Dst:             __errno_location
        - Src:             'fs-api.c:1320,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:1323,2'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:1324,6'
          Dst:             fs_write_stream_finish
    - functionName:    fs_write_stream_finish_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_write_stream_finish_int
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1087,9'
          Dst:             fs_write_stream_finish_int
    - functionName:    fs_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          323
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - fs_file_istream_destroyed
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_wait_async
        - i_panic
        - i_stream_add_destroy_callback
        - i_stream_create_fs_stats
        - i_stream_create_limit
        - i_stream_create_seekable_path
        - i_stream_get_name
        - i_stream_read_more
        - i_stream_ref
        - i_stream_seek
        - i_stream_set_name
        - i_stream_skip
        - i_stream_unref
        - t_pop
        - t_push
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:913,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:918,11'
          Dst:             i_stream_create_limit
        - Src:             'fs-api.c:919,3'
          Dst:             i_stream_seek
        - Src:             'fs-api.c:922,2'
          Dst:             i_panic
        - Src:             'fs-api.c:923,2'
          Dst:             t_push
        - Src:             'fs-api.c:925,4'
          Dst:             t_pop
        - Src:             'fs-api.c:925,4'
          Dst:             i_panic
        - Src:             'fs-api.c:928,3'
          Dst:             fs_file_timing_end
        - Src:             'fs-api.c:932,28'
          Dst:             i_stream_create_fs_stats
        - Src:             'fs-api.c:934,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:947,11'
          Dst:             i_stream_create_seekable_path
        - Src:             'fs-api.c:949,28'
          Dst:             i_stream_get_name
        - Src:             'fs-api.c:949,3'
          Dst:             i_stream_set_name
        - Src:             'fs-api.c:950,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:953,2'
          Dst:             i_stream_ref
        - Src:             'fs-api.c:957,17'
          Dst:             i_stream_read_more
        - Src:             'fs-api.c:958,4'
          Dst:             i_stream_skip
        - Src:             'fs-api.c:960,5'
          Dst:             fs_wait_async
        - Src:             'fs-api.c:962,3'
          Dst:             i_stream_seek
        - Src:             'fs-api.c:965,2'
          Dst:             i_stream_add_destroy_callback
        - Src:             'fs-api.c:965,2'
          Dst:             fs_file_istream_destroyed
    - functionName:    fs_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - o_stream_cork
        - t_pop
        - t_push
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1023,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1024,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1028,2'
          Dst:             t_push
        - Src:             'fs-api.c:1030,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1030,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1031,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1032,2'
          Dst:             o_stream_cork
    - functionName:    fs_file_set_error_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1538
      functionLinenumberEnd: 1540
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_set_error
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1539,2'
          Dst:             fs_set_error
    - functionName:    fs_write_stream_abort_error
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_get_error_file
        - fs_set_verror
        - fs_write_stream_abort
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1117,2'
          Dst:             fs_set_verror
        - Src:             'fs-api.c:1120,2'
          Dst:             fs_file_get_error_file
        - Src:             'fs-api.c:1121,2'
          Dst:             fs_write_stream_abort
    - functionName:    fs_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - fs_set_error
        - fs_write_stream_finish_int
        - i_panic
        - o_stream_finish
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_uncork
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1066,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1067,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1071,3'
          Dst:             o_stream_uncork
        - Src:             'fs-api.c:1072,14'
          Dst:             o_stream_finish
        - Src:             'fs-api.c:1073,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1076,10'
          Dst:             o_stream_get_name
        - Src:             'fs-api.c:1077,10'
          Dst:             o_stream_get_error
        - Src:             'fs-api.c:1074,4'
          Dst:             fs_set_error
        - Src:             'fs-api.c:1082,9'
          Dst:             fs_write_stream_finish_int
    - functionName:    fs_write_stream_finish_int
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          145
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - fs_file_timing_end
        - fs_file_timing_start
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1040,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1042,2'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1043,2'
          Dst:             t_push
        - Src:             'fs-api.c:1045,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1045,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1047,3'
          Dst:             fs_file_timing_end
        - Src:             'fs-api.c:1052,3'
          Dst:             i_panic
        - Src:             'fs-api.c:1055,3'
          Dst:             i_panic
    - functionName:    fs_write_stream_abort
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - fs_write_stream_finish_int
        - i_panic
        - o_stream_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1097,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1098,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1103,2'
          Dst:             o_stream_abort
        - Src:             'fs-api.c:1105,8'
          Dst:             fs_write_stream_finish_int
        - Src:             'fs-api.c:1110,2'
          Dst:             i_panic
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    fs_wait_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1156,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1158,32'
          Dst:             t_push
        - Src:             'fs-api.c:1161,3'
          Dst:             i_panic
        - Src:             'fs-api.c:1163,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1163,4'
          Dst:             i_panic
    - functionName:    fs_file_istream_destroyed
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:897,2'
          Dst:             i_panic
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    fs_get_nlinks
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1250
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          158
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_stat
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1256,7'
          Dst:             fs_stat
        - Src:             'fs-api.c:1266,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1268,2'
          Dst:             t_push
        - Src:             'fs-api.c:1270,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1270,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1271,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1272,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          147
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_set_error
        - i_panic
        - t_pop
        - t_push
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1231,3'
          Dst:             fs_set_error
        - Src:             'fs-api.c:1239,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1241,2'
          Dst:             t_push
        - Src:             'fs-api.c:1243,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1243,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1244,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1245,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_exists
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_stat
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1210,7'
          Dst:             fs_stat
        - Src:             'fs-api.c:1213,11'
          Dst:             __errno_location
        - Src:             'fs-api.c:1215,2'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1216,2'
          Dst:             t_push
        - Src:             'fs-api.c:1218,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1218,4'
          Dst:             i_panic
        - Src:             'fs-api.c:1219,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:1221,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_unlock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1198,2'
          Dst:             t_push
        - Src:             'fs-api.c:1200,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1200,4'
          Dst:             i_panic
    - functionName:    fs_lock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1187
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1184,2'
          Dst:             t_push
        - Src:             'fs-api.c:1186,4'
          Dst:             t_pop
        - Src:             'fs-api.c:1186,4'
          Dst:             i_panic
    - functionName:    fs_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - fs_switch_ioloop
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1171,3'
          Dst:             t_push
        - Src:             'fs-api.c:1173,5'
          Dst:             t_pop
        - Src:             'fs-api.c:1173,5'
          Dst:             i_panic
        - Src:             'fs-api.c:1175,9'
          Dst:             fs_switch_ioloop
    - functionName:    fs_file_set_async_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1151
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_write_set_hash
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1134
      functionLinenumberEnd: 1140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_malloc
        - i_memcpy
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1137,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:1138,23'
          Dst:             i_malloc
        - Src:             'fs-api.c:1139,2'
          Dst:             i_memcpy
    - functionName:    fs_write_stream_abort_parent
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_last_error
        - fs_write_stream_abort
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1127,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1128,2'
          Dst:             fs_file_last_error
        - Src:             'fs-api.c:1128,2'
          Dst:             i_panic
        - Src:             'fs-api.c:1129,2'
          Dst:             fs_write_stream_abort
    - functionName:    fs_file_last_error
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_get_error_file
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:816,31'
          Dst:             fs_file_get_error_file
    - functionName:    fs_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_write_via_stream
        - i_panic
        - t_pop
        - t_push
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:1004,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:1005,3'
          Dst:             t_push
        - Src:             'fs-api.c:1007,5'
          Dst:             t_pop
        - Src:             'fs-api.c:1007,5'
          Dst:             i_panic
        - Src:             'fs-api.c:1008,20'
          Dst:             __errno_location
        - Src:             'fs-api.c:1011,4'
          Dst:             fs_file_timing_end
        - Src:             'fs-api.c:1018,9'
          Dst:             fs_write_via_stream
    - functionName:    fs_write_via_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          123
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
        - fs_write_stream
        - fs_write_stream_abort_error
        - fs_write_stream_finish
        - fs_write_stream_finish_async
        - i_panic
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_send
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:976,12'
          Dst:             fs_write_stream
        - Src:             'fs-api.c:977,14'
          Dst:             o_stream_send
        - Src:             'fs-api.c:978,10'
          Dst:             __errno_location
        - Src:             'fs-api.c:980,11'
          Dst:             o_stream_get_name
        - Src:             'fs-api.c:981,11'
          Dst:             o_stream_get_error
        - Src:             'fs-api.c:979,4'
          Dst:             fs_write_stream_abort_error
        - Src:             'fs-api.c:982,4'
          Dst:             __errno_location
        - Src:             'fs-api.c:985,3'
          Dst:             i_panic
        - Src:             'fs-api.c:986,9'
          Dst:             fs_write_stream_finish
        - Src:             'fs-api.c:988,9'
          Dst:             fs_write_stream_finish_async
        - Src:             'fs-api.c:991,3'
          Dst:             fs_file_set_error_async
    - functionName:    fs_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          130
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_read_via_stream
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:878,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:882,3'
          Dst:             t_push
        - Src:             'fs-api.c:884,5'
          Dst:             t_pop
        - Src:             'fs-api.c:884,5'
          Dst:             i_panic
        - Src:             'fs-api.c:885,20'
          Dst:             __errno_location
        - Src:             'fs-api.c:886,4'
          Dst:             fs_file_timing_end
        - Src:             'fs-api.c:892,9'
          Dst:             fs_read_via_stream
    - functionName:    fs_read_via_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          158
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - fs_file_set_error_async
        - fs_read_stream
        - fs_set_error
        - i_memcpy
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_bytes
        - i_stream_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:846,2'
          Dst:             i_panic
        - Src:             'fs-api.c:849,30'
          Dst:             fs_read_stream
        - Src:             'fs-api.c:850,8'
          Dst:             i_stream_read_bytes
        - Src:             'fs-api.c:853,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-api.c:860,9'
          Dst:             i_stream_get_name
        - Src:             'fs-api.c:861,9'
          Dst:             i_stream_get_error
        - Src:             'fs-api.c:857,3'
          Dst:             fs_set_error
        - Src:             'fs-api.c:865,4'
          Dst:             i_memcpy
        - Src:             'fs-api.c:867,2'
          Dst:             i_stream_unref
    - functionName:    fs_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_timing_end
        - fs_file_timing_start
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:831,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:833,2'
          Dst:             t_push
        - Src:             'fs-api.c:835,4'
          Dst:             t_pop
        - Src:             'fs-api.c:835,4'
          Dst:             i_panic
        - Src:             'fs-api.c:836,2'
          Dst:             fs_file_timing_end
    - functionName:    fs_file_event
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 735
      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:    fs_file_fs
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 730
      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:    fs_lookup_loaded_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          32
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_metadata_full
        - fs_metadata_find
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:717,6'
          Dst:             fs_get_metadata_full
        - Src:             'fs-api.c:718,3'
          Dst:             i_panic
        - Src:             'fs-api.c:719,9'
          Dst:             fs_metadata_find
    - functionName:    fs_get_metadata_full
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          162
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - array_is_created_i
        - fs_file_timing_end
        - fs_file_timing_start
        - fs_set_error
        - i_panic
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:672,7'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:677,3'
          Dst:             fs_set_error
        - Src:             'fs-api.c:686,3'
          Dst:             fs_file_timing_start
        - Src:             'fs-api.c:688,2'
          Dst:             t_push
        - Src:             'fs-api.c:690,4'
          Dst:             t_pop
        - Src:             'fs-api.c:690,4'
          Dst:             i_panic
        - Src:             'fs-api.c:691,19'
          Dst:             __errno_location
        - Src:             'fs-api.c:692,3'
          Dst:             fs_file_timing_end
    - functionName:    fs_metadata_find
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_is_created_i
        - fs_metadata_find_md
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:607,7'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:610,7'
          Dst:             fs_metadata_find_md
    - functionName:    fs_metadata_find_md
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_get_modifiable_data
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:581,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'fs-api.c:582,7'
          Dst:             strcmp
    - functionName:    fs_lookup_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_get_metadata
        - fs_metadata_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:707,6'
          Dst:             fs_get_metadata
        - Src:             'fs-api.c:709,13'
          Dst:             fs_metadata_find
    - functionName:    fs_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_metadata_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:699,9'
          Dst:             fs_get_metadata_full
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_default_set_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - fs_metadata_find_md
        - fs_metadata_init
        - p_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:593,2'
          Dst:             fs_metadata_init
        - Src:             'fs-api.c:594,13'
          Dst:             fs_metadata_find_md
        - Src:             'fs-api.c:596,14'
          Dst:             array_append_space_i
        - Src:             'fs-api.c:597,19'
          Dst:             p_strdup
        - Src:             'fs-api.c:599,20'
          Dst:             p_strdup
    - functionName:    fs_metadata_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_is_created_i
        - i_panic
        - pool_alloconly_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:550,3'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:550,3'
          Dst:             i_panic
        - Src:             'fs-api.c:551,25'
          Dst:             pool_alloconly_create
        - Src:             'fs-api.c:552,3'
          Dst:             array_create_i
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    fs_metadata_init_or_clear
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_array_i
        - array_append_i
        - array_clear_i
        - array_create_i
        - fs_metadata_init
        - i_panic
        - pool_datastack_create
        - strncmp
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:559,3'
          Dst:             fs_metadata_init
        - Src:             'fs-api.c:560,7'
          Dst:             t_push
        - Src:             'fs-api.c:564,3'
          Dst:             pool_datastack_create
        - Src:             'fs-api.c:564,3'
          Dst:             array_create_i
        - Src:             'fs-api.c:566,8'
          Dst:             strncmp
        - Src:             'fs-api.c:568,5'
          Dst:             array_append_i
        - Src:             'fs-api.c:570,3'
          Dst:             array_clear_i
        - Src:             'fs-api.c:571,3'
          Dst:             array_append_array_i
        - Src:             'fs-api.c:572,4'
          Dst:             t_pop
        - Src:             'fs-api.c:572,4'
          Dst:             i_panic
    - functionName:    fs_file_set_flags
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_file_set_flags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:510,3'
          Dst:             fs_file_set_flags
    - functionName:    fs_file_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - event_unref
        - fs_file_deinit
        - fs_file_path
        - p_free_internal
        - pool_unref
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:492,3'
          Dst:             fs_file_path
        - Src:             'fs-api.c:492,3'
          Dst:             e_error
        - Src:             'fs-api.c:496,2'
          Dst:             fs_file_deinit
        - Src:             'fs-api.c:497,2'
          Dst:             event_unref
        - Src:             'fs-api.c:498,2'
          Dst:             pool_unref
        - Src:             'fs-api.c:499,2'
          Dst:             p_free_internal
    - functionName:    fs_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          160
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - fs_file_close
        - i_panic
        - t_pop
        - t_push
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:457,2'
          Dst:             i_panic
        - Src:             'fs-api.c:461,2'
          Dst:             fs_file_close
        - Src:             'fs-api.c:465,2'
          Dst:             t_push
        - Src:             'fs-api.c:467,4'
          Dst:             t_pop
        - Src:             'fs-api.c:467,4'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          195
      EdgeCount:       42
      CyclomaticComplexity: 7
      functionsReached:
        - fs_write_stream_abort_error
        - i_panic
        - i_stream_unref
        - o_stream_get_name
        - p_free_internal
        - t_pop
        - t_push
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:518,2'
          Dst:             i_panic
        - Src:             'fs-api.c:519,2'
          Dst:             i_panic
        - Src:             'fs-api.c:522,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:524,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:527,3'
          Dst:             i_stream_unref
        - Src:             'fs-api.c:529,10'
          Dst:             o_stream_get_name
        - Src:             'fs-api.c:528,3'
          Dst:             fs_write_stream_abort_error
        - Src:             'fs-api.c:531,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:532,38'
          Dst:             t_push
        - Src:             'fs-api.c:534,4'
          Dst:             t_pop
        - Src:             'fs-api.c:534,4'
          Dst:             i_panic
        - Src:             'fs-api.c:539,2'
          Dst:             i_panic
    - functionName:    fs_file_equals
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:477,6'
          Dst:             strcmp
        - Src:             'fs-api.c:481,2'
          Dst:             i_panic
    - functionName:    fs_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_init_with_event
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:420,9'
          Dst:             fs_file_init_with_event
    - functionName:    fs_get_root_driver
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_root_fs
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:415,9'
          Dst:             fs_get_root_fs
    - functionName:    fs_get_root_fs
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 410
      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:    fs_get_driver
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 403
      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:    fs_get_parent
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 398
      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:    fs_ref
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:349,2'
          Dst:             i_panic
    - functionName:    fs_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:344,2'
          Dst:             fs_unref
    - functionName:    fs_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          230
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - event_unref
        - fs_deinit
        - fs_file_path
        - i_panic
        - p_free_internal
        - stats_dist_deinit
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:365,2'
          Dst:             i_panic
        - Src:             'fs-api.c:374,36'
          Dst:             fs_file_path
        - Src:             'fs-api.c:373,3'
          Dst:             i_panic
        - Src:             'fs-api.c:376,2'
          Dst:             i_panic
        - Src:             'fs-api.c:381,2'
          Dst:             fs_deinit
        - Src:             'fs-api.c:382,2'
          Dst:             event_unref
        - Src:             'fs-api.c:383,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:384,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:385,2'
          Dst:             p_free_internal
        - Src:             'fs-api.c:388,4'
          Dst:             stats_dist_deinit
        - Src:             'fs-api.c:390,2'
          Dst:             t_push
        - Src:             'fs-api.c:392,4'
          Dst:             t_pop
        - Src:             'fs-api.c:392,4'
          Dst:             i_panic
        - Src:             'fs-api.c:393,2'
          Dst:             array_free_i
    - functionName:    fs_init_parent
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          88
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - event_create
        - event_drop_parent_log_prefixes
        - event_get_parent
        - event_get_ptr
        - event_set_ptr
        - event_unref
        - fs_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:315,34'
          Dst:             array_count_i
        - Src:             'fs-api.c:322,35'
          Dst:             event_get_parent
        - Src:             'fs-api.c:322,21'
          Dst:             event_get_ptr
        - Src:             'fs-api.c:324,16'
          Dst:             event_get_parent
        - Src:             'fs-api.c:324,2'
          Dst:             event_set_ptr
        - Src:             'fs-api.c:327,24'
          Dst:             event_create
        - Src:             'fs-api.c:329,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'fs-api.c:330,12'
          Dst:             fs_init
        - Src:             'fs-api.c:334,2'
          Dst:             event_unref
        - Src:             'fs-api.c:337,16'
          Dst:             event_get_parent
        - Src:             'fs-api.c:337,2'
          Dst:             event_set_ptr
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          216
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - array_idx_i
        - event_add_str
        - event_set_ptr
        - fs_alloc
        - fs_unref
        - i_panic
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get_filter
        - t_pop_pass_str
        - t_push
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:227,12'
          Dst:             array_idx_i
        - Src:             'fs-api.c:228,6'
          Dst:             settings_get_filter
        - Src:             'fs-api.c:234,3'
          Dst:             pool_unref
        - Src:             'fs-api.c:238,2'
          Dst:             event_add_str
        - Src:             'fs-api.c:239,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'fs-api.c:241,8'
          Dst:             fs_alloc
        - Src:             'fs-api.c:242,2'
          Dst:             pool_unref
        - Src:             'fs-api.c:250,2'
          Dst:             t_push
        - Src:             'fs-api.c:252,4'
          Dst:             t_pop_pass_str
        - Src:             'fs-api.c:252,4'
          Dst:             i_panic
        - Src:             'fs-api.c:254,14'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:255,3'
          Dst:             fs_unref
        - Src:             'fs-api.c:264,2'
          Dst:             event_set_ptr
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    fs_settings_check
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_init_auto
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          199
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - event_create
        - event_unref
        - fs_init
        - fs_unref
        - pool_unref
        - settings_get
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:278,6'
          Dst:             settings_get
        - Src:             'fs-api.c:281,6'
          Dst:             array_is_created_i
        - Src:             'fs-api.c:282,3'
          Dst:             pool_unref
        - Src:             'fs-api.c:287,10'
          Dst:             event_create
        - Src:             'fs-api.c:288,8'
          Dst:             fs_init
        - Src:             'fs-api.c:290,2'
          Dst:             event_unref
        - Src:             'fs-api.c:292,38'
          Dst:             array_count_i
        - Src:             'fs-api.c:294,4'
          Dst:             array_idx_i
        - Src:             'fs-api.c:296,4'
          Dst:             array_idx_i
        - Src:             'fs-api.c:297,14'
          Dst:             t_strdup_printf
        - Src:             'fs-api.c:301,3'
          Dst:             pool_unref
        - Src:             'fs-api.c:302,3'
          Dst:             fs_unref
        - Src:             'fs-api.c:305,2'
          Dst:             pool_unref
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_class_unregister
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-api.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-api.c:84,4'
          Dst:             array_delete_i
        - Src:             'fs-api.c:89,2'
          Dst:             i_panic
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-fs/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    fs_dict_write_rename_if_needed
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_metadata_find
        - p_strconcat
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:240,14'
          Dst:             fs_metadata_find
        - Src:             'fs-dict.c:244,20'
          Dst:             p_strdup
        - Src:             'fs-dict.c:245,40'
          Dst:             p_strdup
        - Src:             'fs-dict.c:246,3'
          Dst:             p_strconcat
    - functionName:    fs_dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          105
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dict_lookup
        - fs_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:196,8'
          Dst:             dict_lookup
        - Src:             'fs-dict.c:200,3'
          Dst:             fs_set_error
        - Src:             'fs-dict.c:204,3'
          Dst:             fs_set_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_dict_value_encoding_parse
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:81,6'
          Dst:             strcmp
        - Src:             'fs-dict.c:83,11'
          Dst:             strcmp
        - Src:             'fs-dict.c:85,11'
          Dst:             strcmp
        - Src:             'fs-dict.c:88,14'
          Dst:             t_strdup_printf
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fs_dict_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_iterate_deinit
        - fs_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:363,8'
          Dst:             dict_iterate_deinit
        - Src:             'fs-dict.c:365,3'
          Dst:             fs_set_error
    - functionName:    fs_dict_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_iterate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:352,7'
          Dst:             dict_iterate
    - functionName:    fs_dict_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_iterate_init
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:339,10'
          Dst:             t_strconcat
        - Src:             'fs-dict.c:344,20'
          Dst:             dict_iterate_init
    - functionName:    fs_dict_iter_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:327,30'
          Dst:             malloc_multiply_check
        - Src:             'fs-dict.c:327,30'
          Dst:             p_malloc
    - functionName:    fs_dict_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dict_transaction_begin
        - dict_transaction_commit
        - dict_unset
        - fs_set_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:315,10'
          Dst:             dict_transaction_begin
        - Src:             'fs-dict.c:316,2'
          Dst:             dict_unset
        - Src:             'fs-dict.c:317,6'
          Dst:             dict_transaction_commit
        - Src:             'fs-dict.c:318,3'
          Dst:             fs_set_error
    - functionName:    fs_dict_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_dict_lookup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:299,6'
          Dst:             fs_dict_lookup
        - Src:             'fs-dict.c:301,18'
          Dst:             strlen
    - functionName:    fs_dict_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          182
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - base64_encode
        - binary_to_hex_append
        - dict_set
        - dict_transaction_begin
        - dict_transaction_commit
        - fs_dict_write_rename_if_needed
        - fs_set_error
        - o_stream_destroy
        - str_c
        - t_str_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fs-dict.c:265,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-dict.c:256,2'
          Dst:             o_stream_destroy
        - Src:             'fs-dict.c:263,2'
          Dst:             fs_dict_write_rename_if_needed
        - Src:             'fs-dict.c:264,10'
          Dst:             dict_transaction_begin
        - Src:             'fs-dict.c:267,30'
          Dst:             str_c
        - Src:             'fs-dict.c:267,3'
          Dst:             dict_set
        - Src:             'fs-dict.c:270,19'
          Dst:             t_str_new
        - Src:             'fs-dict.c:271,3'
          Dst:             binary_to_hex_append
        - Src:             'fs-dict.c:273,30'
          Dst:             str_c
        - Src:             'fs-dict.c:273,3'
          Dst:             dict_set
        - Src:             'fs-dict.c:279,22'
          Dst:             t_str_new
        - Src:             'fs-dict.c:280,3'
          Dst:             base64_encode
        - Src:             'fs-dict.c:282,30'
          Dst:             str_c
        - Src:             'fs-dict.c:282,3'
          Dst:             dict_set
        - Src:             'fs-dict.c:285,6'
          Dst:             dict_transaction_commit
        - Src:             'fs-dict.c:286,3'
          Dst:             fs_set_error
    - functionName:    fs_dict_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - i_panic
        - o_stream_create_buffer
        - o_stream_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:228,2'
          Dst:             i_panic
        - Src:             'fs-dict.c:230,23'
          Dst:             buffer_create_dynamic
        - Src:             'fs-dict.c:231,18'
          Dst:             o_stream_create_buffer
        - Src:             'fs-dict.c:232,2'
          Dst:             o_stream_set_name
    - functionName:    fs_dict_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fs_dict_lookup
        - fs_file_last_error
        - i_stream_create_error_str
        - i_stream_create_from_data
        - i_stream_set_name
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:216,6'
          Dst:             fs_dict_lookup
        - Src:             'fs-dict.c:217,37'
          Dst:             __errno_location
        - Src:             'fs-dict.c:217,50'
          Dst:             fs_file_last_error
        - Src:             'fs-dict.c:217,11'
          Dst:             i_stream_create_error_str
        - Src:             'fs-dict.c:219,50'
          Dst:             strlen
        - Src:             'fs-dict.c:219,11'
          Dst:             i_stream_create_from_data
        - Src:             'fs-dict.c:220,2'
          Dst:             i_stream_set_name
    - functionName:    fs_dict_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_dict_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_free
        - i_panic
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:171,2'
          Dst:             i_panic
        - Src:             'fs-dict.c:173,2'
          Dst:             fs_file_free
        - Src:             'fs-dict.c:174,2'
          Dst:             pool_unref
    - functionName:    fs_dict_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          132
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - i_panic
        - p_strconcat
        - p_strdup
        - p_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:152,2'
          Dst:             i_panic
        - Src:             'fs-dict.c:153,2'
          Dst:             i_panic
        - Src:             'fs-dict.c:156,21'
          Dst:             p_strdup
        - Src:             'fs-dict.c:158,3'
          Dst:             guid_128_generate
        - Src:             'fs-dict.c:160,9'
          Dst:             guid_128_to_string
        - Src:             'fs-dict.c:159,21'
          Dst:             p_strdup_printf
        - Src:             'fs-dict.c:163,3'
          Dst:             p_strdup
        - Src:             'fs-dict.c:164,3'
          Dst:             p_strconcat
    - functionName:    fs_dict_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:138,9'
          Dst:             pool_alloconly_create
        - Src:             'fs-dict.c:139,9'
          Dst:             malloc_multiply_check
        - Src:             'fs-dict.c:139,9'
          Dst:             p_malloc
    - functionName:    fs_dict_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_dict_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - dict_deinit
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:124,24'
          Dst:             dict_deinit
        - Src:             'fs-dict.c:125,2'
          Dst:             p_free_internal
    - functionName:    fs_dict_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dict_init_auto
        - event_create
        - event_unref
        - fs_dict_value_encoding_parse
        - pool_unref
        - settings_event_add_filter_name
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:102,6'
          Dst:             settings_get
        - Src:             'fs-dict.c:105,8'
          Dst:             fs_dict_value_encoding_parse
        - Src:             'fs-dict.c:107,2'
          Dst:             pool_unref
        - Src:             'fs-dict.c:111,24'
          Dst:             event_create
        - Src:             'fs-dict.c:112,2'
          Dst:             settings_event_add_filter_name
        - Src:             'fs-dict.c:113,8'
          Dst:             dict_init_auto
        - Src:             'fs-dict.c:114,2'
          Dst:             event_unref
    - functionName:    fs_dict_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-dict.c:44,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-dict.c:44,7'
          Dst:             p_malloc
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_metawrap_create_updated_istream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          81
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_metawrap_append_metadata
        - i_stream_create_concat
        - i_stream_create_from_data
        - i_stream_create_limit
        - i_stream_seek
        - i_stream_unref
        - str_data
        - str_len
        - str_new
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:337,3'
          Dst:             str_truncate
        - Src:             'fs-metawrap.c:339,27'
          Dst:             str_new
        - Src:             'fs-metawrap.c:340,2'
          Dst:             fs_metawrap_append_metadata
        - Src:             'fs-metawrap.c:341,40'
          Dst:             str_data
        - Src:             'fs-metawrap.c:342,13'
          Dst:             str_len
        - Src:             'fs-metawrap.c:341,14'
          Dst:             i_stream_create_from_data
        - Src:             'fs-metawrap.c:344,2'
          Dst:             i_stream_seek
        - Src:             'fs-metawrap.c:345,14'
          Dst:             i_stream_create_limit
        - Src:             'fs-metawrap.c:347,11'
          Dst:             i_stream_create_concat
        - Src:             'fs-metawrap.c:348,2'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:349,2'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:351,30'
          Dst:             str_len
    - functionName:    fs_metawrap_append_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
        - str_append_tabescaped
        - str_begins_with
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:275,7'
          Dst:             strncmp
        - Src:             'fs-metawrap.c:275,7'
          Dst:             str_begins_with
        - Src:             'fs-metawrap.c:278,3'
          Dst:             str_append_tabescaped
        - Src:             'fs-metawrap.c:279,3'
          Dst:             str_append_c
        - Src:             'fs-metawrap.c:280,3'
          Dst:             str_append_tabescaped
        - Src:             'fs-metawrap.c:281,3'
          Dst:             str_append_c
        - Src:             'fs-metawrap.c:283,2'
          Dst:             str_append_c
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    fs_metawrap_write_metadata_to
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_metawrap_append_metadata
        - i_panic
        - o_stream_close
        - o_stream_send
        - str_data
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:290,18'
          Dst:             t_str_new
        - Src:             'fs-metawrap.c:293,2'
          Dst:             fs_metawrap_append_metadata
        - Src:             'fs-metawrap.c:294,30'
          Dst:             str_len
        - Src:             'fs-metawrap.c:296,30'
          Dst:             str_data
        - Src:             'fs-metawrap.c:296,45'
          Dst:             str_len
        - Src:             'fs-metawrap.c:296,8'
          Dst:             o_stream_send
        - Src:             'fs-metawrap.c:298,3'
          Dst:             o_stream_close
        - Src:             'fs-metawrap.c:300,3'
          Dst:             str_len
        - Src:             'fs-metawrap.c:300,3'
          Dst:             i_panic
    - functionName:    fs_metawrap_write_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_metawrap_write_metadata_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:308,2'
          Dst:             fs_metawrap_write_metadata_to
    - functionName:    fs_metawrap_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - fs_default_set_metadata
        - i_panic
        - str_tabunescape
        - t_pop
        - t_push
        - t_strdup_noconst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:226,2'
          Dst:             t_push
        - Src:             'fs-metawrap.c:227,25'
          Dst:             t_strdup_noconst
        - Src:             'fs-metawrap.c:227,9'
          Dst:             str_tabunescape
        - Src:             'fs-metawrap.c:228,27'
          Dst:             t_strdup_noconst
        - Src:             'fs-metawrap.c:228,11'
          Dst:             str_tabunescape
        - Src:             'fs-metawrap.c:229,3'
          Dst:             fs_default_set_metadata
        - Src:             'fs-metawrap.c:230,4'
          Dst:             t_pop
        - Src:             'fs-metawrap.c:230,4'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fs_metawrap_get_nlinks
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_default_set_metadata
        - fs_get_nlinks
        - fs_lookup_loaded_metadata
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:484,6'
          Dst:             fs_get_nlinks
        - Src:             'fs-metawrap.c:490,3'
          Dst:             fs_lookup_loaded_metadata
        - Src:             'fs-metawrap.c:492,3'
          Dst:             fs_default_set_metadata
    - functionName:    fs_metawrap_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_default_copy
        - fs_wrapper_copy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:477,10'
          Dst:             fs_wrapper_copy
        - Src:             'fs-metawrap.c:479,10'
          Dst:             fs_default_copy
    - functionName:    fs_metawrap_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          202
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fs_file_path
        - fs_read_stream
        - fs_set_error
        - fs_stat
        - i_panic
        - i_stream_get_error
        - i_stream_get_size
        - i_stream_ref
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:425,10'
          Dst:             fs_stat
        - Src:             'fs-metawrap.c:429,7'
          Dst:             fs_stat
        - Src:             'fs-metawrap.c:435,5'
          Dst:             fs_file_path
        - Src:             'fs-metawrap.c:432,4'
          Dst:             fs_set_error
        - Src:             'fs-metawrap.c:444,11'
          Dst:             fs_read_stream
        - Src:             'fs-metawrap.c:447,3'
          Dst:             i_stream_ref
        - Src:             'fs-metawrap.c:449,13'
          Dst:             i_stream_get_size
        - Src:             'fs-metawrap.c:452,9'
          Dst:             fs_file_path
        - Src:             'fs-metawrap.c:452,30'
          Dst:             i_stream_get_error
        - Src:             'fs-metawrap.c:450,3'
          Dst:             fs_set_error
        - Src:             'fs-metawrap.c:453,3'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:456,2'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:460,9'
          Dst:             fs_file_path
        - Src:             'fs-metawrap.c:459,3'
          Dst:             fs_set_error
        - Src:             'fs-metawrap.c:464,6'
          Dst:             fs_stat
        - Src:             'fs-metawrap.c:465,3'
          Dst:             __errno_location
        - Src:             'fs-metawrap.c:465,3'
          Dst:             i_panic
    - functionName:    fs_metawrap_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          292
      EdgeCount:       57
      CyclomaticComplexity: 11
      functionsReached:
        - fs_metawrap_create_updated_istream
        - fs_write_stream
        - fs_write_stream_abort_parent
        - fs_write_stream_finish
        - fs_write_stream_finish_async
        - i_panic
        - i_stream_unref
        - iostream_temp_finish
        - o_stream_destroy
        - o_stream_nsend_istream
        - o_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:365,4'
          Dst:             o_stream_unref
        - Src:             'fs-metawrap.c:370,4'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:371,4'
          Dst:             fs_write_stream_abort_parent
        - Src:             'fs-metawrap.c:373,4'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:374,4'
          Dst:             o_stream_destroy
        - Src:             'fs-metawrap.c:381,3'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:382,10'
          Dst:             fs_write_stream_finish
        - Src:             'fs-metawrap.c:386,3'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:387,10'
          Dst:             fs_write_stream_finish_async
        - Src:             'fs-metawrap.c:396,10'
          Dst:             iostream_temp_finish
        - Src:             'fs-metawrap.c:403,11'
          Dst:             fs_metawrap_create_updated_istream
        - Src:             'fs-metawrap.c:404,3'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:406,23'
          Dst:             fs_write_stream
        - Src:             'fs-metawrap.c:407,2'
          Dst:             o_stream_nsend_istream
        - Src:             'fs-metawrap.c:410,2'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:412,8'
          Dst:             fs_write_stream_finish
        - Src:             'fs-metawrap.c:413,2'
          Dst:             i_stream_unref
    - functionName:    fs_metawrap_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_path
        - fs_metawrap_write_metadata
        - fs_write_stream
        - i_panic
        - iostream_temp_create_named
        - o_stream_create_metawrap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:315,2'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:318,24'
          Dst:             fs_write_stream
        - Src:             'fs-metawrap.c:324,10'
          Dst:             fs_file_path
        - Src:             'fs-metawrap.c:322,4'
          Dst:             iostream_temp_create_named
        - Src:             'fs-metawrap.c:325,19'
          Dst:             o_stream_create_metawrap
        - Src:             'fs-metawrap.c:325,19'
          Dst:             fs_metawrap_write_metadata
    - functionName:    fs_metawrap_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_write
        - fs_write_via_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:265,10'
          Dst:             fs_write
        - Src:             'fs-metawrap.c:266,9'
          Dst:             fs_write_via_stream
    - functionName:    fs_metawrap_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          106
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - fs_metawrap_callback
        - fs_read_stream
        - i_stream_create_metawrap
        - i_stream_ref
        - i_stream_seek
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:240,10'
          Dst:             fs_read_stream
        - Src:             'fs-metawrap.c:243,3'
          Dst:             i_stream_ref
        - Src:             'fs-metawrap.c:244,3'
          Dst:             i_stream_seek
        - Src:             'fs-metawrap.c:248,10'
          Dst:             fs_read_stream
        - Src:             'fs-metawrap.c:251,3'
          Dst:             i_stream_ref
        - Src:             'fs-metawrap.c:254,16'
          Dst:             i_stream_create_metawrap
        - Src:             'fs-metawrap.c:254,16'
          Dst:             fs_metawrap_callback
        - Src:             'fs-metawrap.c:255,2'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:256,2'
          Dst:             i_stream_ref
    - functionName:    fs_metawrap_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_read
        - fs_read_via_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:212,10'
          Dst:             fs_read
        - Src:             'fs-metawrap.c:213,9'
          Dst:             fs_read_via_stream
    - functionName:    fs_metawrap_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_prefetch
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:202,10'
          Dst:             fs_prefetch
        - Src:             'fs-metawrap.c:204,10'
          Dst:             fs_prefetch
    - functionName:    fs_metawrap_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          206
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - fs_get_metadata_full
        - fs_read
        - fs_set_error
        - fs_wait_async
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:166,10'
          Dst:             fs_get_metadata_full
        - Src:             'fs-metawrap.c:173,7'
          Dst:             fs_read
        - Src:             'fs-metawrap.c:177,17'
          Dst:             i_stream_read
        - Src:             'fs-metawrap.c:181,4'
          Dst:             i_panic
        - Src:             'fs-metawrap.c:182,4'
          Dst:             fs_wait_async
        - Src:             'fs-metawrap.c:187,10'
          Dst:             i_stream_get_name
        - Src:             'fs-metawrap.c:188,10'
          Dst:             i_stream_get_error
        - Src:             'fs-metawrap.c:185,4'
          Dst:             fs_set_error
        - Src:             'fs-metawrap.c:191,3'
          Dst:             i_panic
    - functionName:    fs_metawrap_set_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fs_default_set_metadata
        - fs_set_metadata
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:146,6'
          Dst:             strcmp
        - Src:             'fs-metawrap.c:147,3'
          Dst:             fs_set_metadata
        - Src:             'fs-metawrap.c:149,3'
          Dst:             fs_default_set_metadata
        - Src:             'fs-metawrap.c:151,4'
          Dst:             fs_set_metadata
    - functionName:    fs_metawrap_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_close
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:134,2'
          Dst:             i_stream_unref
        - Src:             'fs-metawrap.c:135,2'
          Dst:             fs_file_close
        - Src:             'fs-metawrap.c:136,2'
          Dst:             fs_file_close
    - functionName:    fs_metawrap_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_deinit
        - fs_file_free
        - p_free_internal
        - str_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:123,3'
          Dst:             fs_file_deinit
        - Src:             'fs-metawrap.c:124,2'
          Dst:             str_free
        - Src:             'fs-metawrap.c:125,2'
          Dst:             fs_file_free
        - Src:             'fs-metawrap.c:126,2'
          Dst:             p_free_internal
        - Src:             'fs-metawrap.c:127,2'
          Dst:             p_free_internal
    - functionName:    fs_metawrap_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fs_file_init_parent
        - fs_metadata_init
        - i_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:97,20'
          Dst:             i_strdup
        - Src:             'fs-metawrap.c:104,22'
          Dst:             fs_file_init_parent
        - Src:             'fs-metawrap.c:109,22'
          Dst:             fs_file_init_parent
        - Src:             'fs-metawrap.c:115,2'
          Dst:             fs_metadata_init
    - functionName:    fs_metawrap_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:86,34'
          Dst:             malloc_multiply_check
        - Src:             'fs-metawrap.c:86,34'
          Dst:             p_malloc
    - functionName:    fs_metawrap_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_get_properties
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:72,10'
          Dst:             fs_get_properties
    - functionName:    fs_metawrap_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:64,2'
          Dst:             p_free_internal
    - functionName:    fs_metawrap_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_get_properties
        - fs_init_parent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:53,6'
          Dst:             fs_init_parent
        - Src:             'fs-metawrap.c:55,7'
          Dst:             fs_get_properties
    - functionName:    fs_metawrap_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-metawrap.c:43,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-metawrap.c:43,7'
          Dst:             p_malloc
    - functionName:    fs_posix_iter_want
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - lstat
        - stat
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:953,2'
          Dst:             t_push
        - Src:             'fs-posix.c:954,22'
          Dst:             t_strdup_printf
        - Src:             'fs-posix.c:957,7'
          Dst:             stat
        - Src:             'fs-posix.c:958,7'
          Dst:             lstat
        - Src:             'fs-posix.c:964,4'
          Dst:             t_pop
        - Src:             'fs-posix.c:964,4'
          Dst:             i_panic
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    fs_posix_rmdir_parents
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          203
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - fs_set_error_errno
        - rmdir
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
        - strrchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:257,14'
          Dst:             strrchr
        - Src:             'fs-posix.c:258,10'
          Dst:             t_strdup_until
        - Src:             'fs-posix.c:259,33'
          Dst:             strcmp
        - Src:             'fs-posix.c:260,7'
          Dst:             strlen
        - Src:             'fs-posix.c:260,7'
          Dst:             strncmp
        - Src:             'fs-posix.c:260,7'
          Dst:             str_begins_with
        - Src:             'fs-posix.c:262,7'
          Dst:             rmdir
        - Src:             'fs-posix.c:264,14'
          Dst:             __errno_location
        - Src:             'fs-posix.c:264,36'
          Dst:             __errno_location
        - Src:             'fs-posix.c:267,14'
          Dst:             __errno_location
        - Src:             'fs-posix.c:267,32'
          Dst:             __errno_location
        - Src:             'fs-posix.c:271,4'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_write_finish_link
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fs_posix_mkdir_parents
        - fs_set_error_errno
        - link
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:542,8'
          Dst:             link
        - Src:             'fs-posix.c:543,20'
          Dst:             __errno_location
        - Src:             'fs-posix.c:545,7'
          Dst:             fs_posix_mkdir_parents
        - Src:             'fs-posix.c:547,9'
          Dst:             link
        - Src:             'fs-posix.c:551,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_mkdir_parents
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fs_posix_get_mode
        - fs_set_error_errno
        - mkdir_parents
        - strrchr
        - t_strdup_until
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:224,10'
          Dst:             strrchr
        - Src:             'fs-posix.c:227,8'
          Dst:             t_strdup_until
        - Src:             'fs-posix.c:229,6'
          Dst:             fs_posix_get_mode
        - Src:             'fs-posix.c:236,6'
          Dst:             mkdir_parents
        - Src:             'fs-posix.c:238,11'
          Dst:             __errno_location
        - Src:             'fs-posix.c:241,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_get_mode
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fs_set_error_errno
        - stat
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:198,9'
          Dst:             stat
        - Src:             'fs-posix.c:199,7'
          Dst:             __errno_location
        - Src:             'fs-posix.c:200,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:204,7'
          Dst:             strrchr
        - Src:             'fs-posix.c:206,11'
          Dst:             t_strdup_until
        - Src:             'fs-posix.c:207,12'
          Dst:             strcmp
    - functionName:    fs_posix_write_rename_if_needed
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_metadata_find
        - i_strconcat
        - i_strdup
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:525,14'
          Dst:             fs_metadata_find
        - Src:             'fs-posix.c:529,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:530,20'
          Dst:             i_strdup
        - Src:             'fs-posix.c:532,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:533,20'
          Dst:             i_strconcat
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_posix_write_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          301
      EdgeCount:       53
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - fdatasync
        - fs_posix_file_close
        - fs_posix_mkdir_parents
        - fs_posix_write_finish_link
        - fs_posix_write_rename_if_needed
        - fs_set_error_errno
        - i_gettimeofday
        - i_unreached
        - p_free_internal
        - rename
        - unlink
        - utimes
      functionUses:    2
      BranchProfiles:
        - Branch String:   'fs-posix.c:589,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:565,7'
          Dst:             fdatasync
        - Src:             'fs-posix.c:566,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:578,3'
          Dst:             i_gettimeofday
        - Src:             'fs-posix.c:580,8'
          Dst:             utimes
        - Src:             'fs-posix.c:581,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:588,2'
          Dst:             fs_posix_write_rename_if_needed
        - Src:             'fs-posix.c:592,9'
          Dst:             fs_posix_write_finish_link
        - Src:             'fs-posix.c:593,15'
          Dst:             __errno_location
        - Src:             'fs-posix.c:594,7'
          Dst:             unlink
        - Src:             'fs-posix.c:595,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:599,3'
          Dst:             __errno_location
        - Src:             'fs-posix.c:601,4'
          Dst:             fs_posix_file_close
        - Src:             'fs-posix.c:602,4'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:607,9'
          Dst:             rename
        - Src:             'fs-posix.c:608,21'
          Dst:             __errno_location
        - Src:             'fs-posix.c:610,8'
          Dst:             fs_posix_mkdir_parents
        - Src:             'fs-posix.c:612,10'
          Dst:             rename
        - Src:             'fs-posix.c:616,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:623,3'
          Dst:             i_unreached
        - Src:             'fs-posix.c:625,2'
          Dst:             p_free_internal
    - functionName:    utimes
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_posix_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - e_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:392,7'
          Dst:             close
        - Src:             'fs-posix.c:393,4'
          Dst:             e_error
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_posix_create
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fs_posix_get_mode
        - fs_posix_mkdir_parents
        - fs_set_error_errno
        - i_panic
        - i_strdup
        - safe_mkstemp_hostpid
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - strrchr
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:282,18'
          Dst:             t_str_new
        - Src:             'fs-posix.c:288,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:290,15'
          Dst:             strrchr
        - Src:             'fs-posix.c:291,3'
          Dst:             str_append_data
        - Src:             'fs-posix.c:292,31'
          Dst:             str_c
        - Src:             'fs-posix.c:292,7'
          Dst:             fs_posix_get_mode
        - Src:             'fs-posix.c:294,3'
          Dst:             str_append_c
        - Src:             'fs-posix.c:296,7'
          Dst:             fs_posix_get_mode
        - Src:             'fs-posix.c:299,2'
          Dst:             str_append
        - Src:             'fs-posix.c:301,7'
          Dst:             safe_mkstemp_hostpid
        - Src:             'fs-posix.c:302,21'
          Dst:             __errno_location
        - Src:             'fs-posix.c:304,36'
          Dst:             str_c
        - Src:             'fs-posix.c:304,7'
          Dst:             fs_posix_mkdir_parents
        - Src:             'fs-posix.c:306,8'
          Dst:             safe_mkstemp_hostpid
        - Src:             'fs-posix.c:311,39'
          Dst:             str_c
        - Src:             'fs-posix.c:310,3'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:314,29'
          Dst:             str_c
        - Src:             'fs-posix.c:314,20'
          Dst:             i_strdup
    - functionName:    fs_posix_open
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          158
      EdgeCount:       32
      CyclomaticComplexity: 4
      functionsReached:
        - fs_posix_create
        - fs_set_error_errno
        - i_panic
        - open
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:
        - Branch String:   'fs-posix.c:324,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:322,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:326,14'
          Dst:             open
        - Src:             'fs-posix.c:328,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:332,14'
          Dst:             open
        - Src:             'fs-posix.c:334,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:340,3'
          Dst:             t_push
        - Src:             'fs-posix.c:341,15'
          Dst:             fs_posix_create
        - Src:             'fs-posix.c:342,5'
          Dst:             t_pop
        - Src:             'fs-posix.c:342,5'
          Dst:             i_panic
    - functionName:    fs_posix_open_for_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - fs_posix_open
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:442,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:443,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:446,7'
          Dst:             fs_posix_open
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_posix_init_common
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:140,3'
          Dst:             i_strdup
        - Src:             'fs-posix.c:140,40'
          Dst:             i_strdup
        - Src:             'fs-posix.c:141,29'
          Dst:             strlen
        - Src:             'fs-posix.c:142,18'
          Dst:             i_strdup
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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-fs/../../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:    fs_posix_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - closedir
        - fs_set_error_errno
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:1020,27'
          Dst:             closedir
        - Src:             'fs-posix.c:1021,15'
          Dst:             __errno_location
        - Src:             'fs-posix.c:1022,3'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:1026,3'
          Dst:             __errno_location
        - Src:             'fs-posix.c:1029,2'
          Dst:             p_free_internal
    - functionName:    fs_posix_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 1012
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          184
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fs_posix_iter_want
        - fs_set_error_errno
        - readdir
        - strcmp
        - strncmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fs-posix.c:987,3'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:978,2'
          Dst:             __errno_location
        - Src:             'fs-posix.c:979,14'
          Dst:             readdir
        - Src:             'fs-posix.c:980,7'
          Dst:             strcmp
        - Src:             'fs-posix.c:981,7'
          Dst:             strcmp
        - Src:             'fs-posix.c:983,7'
          Dst:             strncmp
        - Src:             'fs-posix.c:989,8'
          Dst:             fs_posix_iter_want
        - Src:             'fs-posix.c:979,43'
          Dst:             __errno_location
        - Src:             'fs-posix.c:1006,6'
          Dst:             __errno_location
        - Src:             'fs-posix.c:1007,15'
          Dst:             __errno_location
        - Src:             'fs-posix.c:1008,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          111
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_set_error_errno
        - i_strconcat
        - i_strdup
        - opendir
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:936,15'
          Dst:             i_strconcat
        - Src:             'fs-posix.c:938,3'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:939,16'
          Dst:             i_strdup
        - Src:             'fs-posix.c:941,14'
          Dst:             opendir
        - Src:             'fs-posix.c:942,27'
          Dst:             __errno_location
        - Src:             'fs-posix.c:943,15'
          Dst:             __errno_location
        - Src:             'fs-posix.c:944,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_iter_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:924,31'
          Dst:             malloc_multiply_check
        - Src:             'fs-posix.c:924,31'
          Dst:             p_malloc
    - functionName:    fs_posix_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fs_posix_rmdir_parents
        - fs_set_error_errno
        - rmdir
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:904,6'
          Dst:             unlink
        - Src:             'fs-posix.c:905,8'
          Dst:             __errno_location
        - Src:             'fs-posix.c:905,8'
          Dst:             __errno_location
        - Src:             'fs-posix.c:906,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:912,7'
          Dst:             rmdir
        - Src:             'fs-posix.c:913,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:918,8'
          Dst:             fs_posix_rmdir_parents
    - functionName:    fs_posix_rename
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fs_posix_mkdir_parents
        - fs_set_error_errno
        - rename
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:883,8'
          Dst:             rename
        - Src:             'fs-posix.c:884,20'
          Dst:             __errno_location
        - Src:             'fs-posix.c:886,7'
          Dst:             fs_posix_mkdir_parents
        - Src:             'fs-posix.c:888,9'
          Dst:             rename
        - Src:             'fs-posix.c:892,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          161
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fs_posix_mkdir_parents
        - fs_posix_write_rename_if_needed
        - fs_set_error_errno
        - i_unlink_if_exists
        - link
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:851,2'
          Dst:             fs_posix_write_rename_if_needed
        - Src:             'fs-posix.c:852,8'
          Dst:             link
        - Src:             'fs-posix.c:853,17'
          Dst:             __errno_location
        - Src:             'fs-posix.c:856,3'
          Dst:             i_unlink_if_exists
        - Src:             'fs-posix.c:857,9'
          Dst:             link
        - Src:             'fs-posix.c:859,20'
          Dst:             __errno_location
        - Src:             'fs-posix.c:861,7'
          Dst:             fs_posix_mkdir_parents
        - Src:             'fs-posix.c:863,9'
          Dst:             link
        - Src:             'fs-posix.c:867,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fs_default_set_metadata
        - fs_set_error_errno
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - stat
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:822,7'
          Dst:             fstat
        - Src:             'fs-posix.c:823,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:828,7'
          Dst:             stat
        - Src:             'fs-posix.c:829,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:837,5'
          Dst:             gnu_dev_major
        - Src:             'fs-posix.c:837,26'
          Dst:             gnu_dev_minor
        - Src:             'fs-posix.c:836,3'
          Dst:             t_strdup_printf
        - Src:             'fs-posix.c:835,2'
          Dst:             fs_default_set_metadata
    - functionName:    fs_posix_exists
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fs_set_error_errno
        - stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:802,6'
          Dst:             stat
        - Src:             'fs-posix.c:803,7'
          Dst:             __errno_location
        - Src:             'fs-posix.c:804,4'
          Dst:             fs_set_error_errno
    - functionName:    fs_posix_unlock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_delete
        - file_unlock
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:790,3'
          Dst:             file_unlock
        - Src:             'fs-posix.c:792,3'
          Dst:             file_dotlock_delete
        - Src:             'fs-posix.c:793,2'
          Dst:             p_free_internal
    - functionName:    fs_posix_lock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          176
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - file_dotlock_create
        - file_try_lock
        - file_wait_lock
        - fs_set_error_errno
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fs-posix.c:731,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:743,10'
          Dst:             file_try_lock
        - Src:             'fs-posix.c:747,10'
          Dst:             file_wait_lock
        - Src:             'fs-posix.c:752,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:764,9'
          Dst:             file_dotlock_create
        - Src:             'fs-posix.c:769,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:778,13'
          Dst:             malloc_multiply_check
        - Src:             'fs-posix.c:778,13'
          Dst:             p_malloc
    - functionName:    fs_posix_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - fs_posix_write
        - fs_posix_write_finish
        - i_unreached
        - o_stream_destroy
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fs-posix.c:698,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:696,2'
          Dst:             o_stream_destroy
        - Src:             'fs-posix.c:701,10'
          Dst:             fs_posix_write
        - Src:             'fs-posix.c:704,3'
          Dst:             buffer_free
        - Src:             'fs-posix.c:710,10'
          Dst:             fs_posix_write_finish
        - Src:             'fs-posix.c:713,3'
          Dst:             i_unreached
    - functionName:    fs_posix_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - fs_posix_open
        - fs_posix_write_finish
        - fs_set_error
        - fs_set_error_errno
        - i_panic
        - write
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:639,7'
          Dst:             fs_posix_open
        - Src:             'fs-posix.c:641,3'
          Dst:             i_panic
        - Src:             'fs-posix.c:645,7'
          Dst:             write_full
        - Src:             'fs-posix.c:646,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:650,10'
          Dst:             fs_posix_write_finish
        - Src:             'fs-posix.c:654,8'
          Dst:             write
        - Src:             'fs-posix.c:656,3'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:661,3'
          Dst:             fs_set_error
    - functionName:    fs_posix_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - buffer_create_dynamic
        - fs_file_last_error
        - fs_posix_open
        - i_panic
        - o_stream_create_buffer
        - o_stream_create_error_str
        - o_stream_create_fd_file
        - o_stream_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:674,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:677,21'
          Dst:             buffer_create_dynamic
        - Src:             'fs-posix.c:678,19'
          Dst:             o_stream_create_buffer
        - Src:             'fs-posix.c:679,31'
          Dst:             fs_posix_open
        - Src:             'fs-posix.c:680,45'
          Dst:             __errno_location
        - Src:             'fs-posix.c:681,4'
          Dst:             fs_file_last_error
        - Src:             'fs-posix.c:680,19'
          Dst:             o_stream_create_error_str
        - Src:             'fs-posix.c:683,3'
          Dst:             i_panic
        - Src:             'fs-posix.c:684,19'
          Dst:             o_stream_create_fd_file
        - Src:             'fs-posix.c:687,2'
          Dst:             o_stream_set_name
    - functionName:    fs_posix_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - dup
        - fs_file_last_error
        - fs_posix_open_for_read
        - i_stream_create_error_str
        - i_stream_create_fd_autoclose
        - i_stream_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:505,6'
          Dst:             fs_posix_open_for_read
        - Src:             'fs-posix.c:506,37'
          Dst:             __errno_location
        - Src:             'fs-posix.c:506,50'
          Dst:             fs_file_last_error
        - Src:             'fs-posix.c:506,11'
          Dst:             i_stream_create_error_str
        - Src:             'fs-posix.c:507,21'
          Dst:             dup
        - Src:             'fs-posix.c:508,37'
          Dst:             __errno_location
        - Src:             'fs-posix.c:508,11'
          Dst:             i_stream_create_error_str
        - Src:             'fs-posix.c:514,11'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'fs-posix.c:516,2'
          Dst:             i_stream_set_name
    - functionName:    fs_posix_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fs_posix_file_close
        - fs_posix_open_for_read
        - fs_set_error_errno
        - lseek
        - read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:476,6'
          Dst:             fs_posix_open_for_read
        - Src:             'fs-posix.c:481,7'
          Dst:             lseek
        - Src:             'fs-posix.c:482,4'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:489,8'
          Dst:             read
        - Src:             'fs-posix.c:491,3'
          Dst:             fs_set_error_errno
        - Src:             'fs-posix.c:493,2'
          Dst:             fs_posix_file_close
    - functionName:    fs_posix_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - e_error
        - fs_posix_open_for_read
        - posix_fadvise
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:457,6'
          Dst:             fs_posix_open_for_read
        - Src:             'fs-posix.c:462,15'
          Dst:             posix_fadvise
        - Src:             'fs-posix.c:462,7'
          Dst:             __errno_location
        - Src:             'fs-posix.c:463,3'
          Dst:             e_error
    - functionName:    fs_posix_file_equals
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:406,9'
          Dst:             strcmp
    - functionName:    fs_posix_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - fs_file_free
        - i_panic
        - p_free_internal
        - unlink
      functionUses:    0
      BranchProfiles:
        - Branch String:   'fs-posix.c:416,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fs-posix.c:414,2'
          Dst:             i_panic
        - Src:             'fs-posix.c:426,7'
          Dst:             unlink
        - Src:             'fs-posix.c:427,4'
          Dst:             e_error
        - Src:             'fs-posix.c:433,2'
          Dst:             fs_file_free
        - Src:             'fs-posix.c:434,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:435,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:436,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:437,2'
          Dst:             p_free_internal
    - functionName:    fs_posix_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          118
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - i_strconcat
        - i_strdup
        - i_strdup_printf
        - strlen
        - t_strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:364,20'
          Dst:             strlen
        - Src:             'fs-posix.c:369,10'
          Dst:             t_strndup
        - Src:             'fs-posix.c:373,21'
          Dst:             i_strdup
        - Src:             'fs-posix.c:375,3'
          Dst:             guid_128_generate
        - Src:             'fs-posix.c:377,9'
          Dst:             guid_128_to_string
        - Src:             'fs-posix.c:376,21'
          Dst:             i_strdup_printf
        - Src:             'fs-posix.c:379,20'
          Dst:             i_strconcat
    - functionName:    fs_posix_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:352,31'
          Dst:             malloc_multiply_check
        - Src:             'fs-posix.c:352,31'
          Dst:             p_malloc
    - functionName:    fs_posix_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_posix_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:163,2'
          Dst:             pool_unref
        - Src:             'fs-posix.c:164,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:165,2'
          Dst:             p_free_internal
        - Src:             'fs-posix.c:166,2'
          Dst:             p_free_internal
    - functionName:    fs_posix_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_posix_init_common
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:151,6'
          Dst:             settings_get
        - Src:             'fs-posix.c:155,2'
          Dst:             fs_posix_init_common
    - functionName:    fs_posix_settings_check
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:125,6'
          Dst:             strcmp
        - Src:             'fs-posix.c:127,11'
          Dst:             strcmp
    - functionName:    fs_posix_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-posix.c:115,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-posix.c:115,7'
          Dst:             p_malloc
    - functionName:    i_rand_minmax
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/lib.h:138,2'
          Dst:             i_panic
        - Src:             '../../src/lib/lib.h:139,19'
          Dst:             i_rand_limit
    - functionName:    fs_random_fail_range
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_random_fail
        - i_rand_minmax
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:285,7'
          Dst:             fs_random_fail
        - Src:             'fs-randomfail.c:287,14'
          Dst:             i_rand_minmax
    - functionName:    fs_random_fail
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fs_set_error
        - i_rand_limit
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:249,20'
          Dst:             i_rand_limit
        - Src:             'fs-randomfail.c:250,3'
          Dst:             fs_set_error
    - functionName:    fs_file_random_fail_end
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_random_fail
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:271,18'
          Dst:             __errno_location
        - Src:             'fs-randomfail.c:272,7'
          Dst:             fs_random_fail
    - functionName:    fs_file_random_fail_begin
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_random_fail
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:260,7'
          Dst:             fs_random_fail
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_op_find
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:86,7'
          Dst:             strcmp
    - functionName:    fs_randomfail_add_probability_range
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          140
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - str_to_uoff
        - strchr
        - strcmp
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:134,6'
          Dst:             strcmp
        - Src:             'fs-randomfail.c:136,11'
          Dst:             strcmp
        - Src:             'fs-randomfail.c:138,11'
          Dst:             strcmp
        - Src:             'fs-randomfail.c:143,6'
          Dst:             strchr
        - Src:             'fs-randomfail.c:145,7'
          Dst:             str_to_uoff
        - Src:             'fs-randomfail.c:150,25'
          Dst:             t_strdup_until
        - Src:             'fs-randomfail.c:150,13'
          Dst:             str_to_uoff
        - Src:             'fs-randomfail.c:151,6'
          Dst:             str_to_uoff
    - functionName:    fs_randomfail_add_probability
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          119
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - fs_op_find
        - str_to_uint
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:103,6'
          Dst:             str_to_uint
        - Src:             'fs-randomfail.c:105,6'
          Dst:             fs_op_find
        - Src:             'fs-randomfail.c:113,6'
          Dst:             strcmp
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_randomfail_op_add
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - fs_randomfail_add_probability
        - fs_randomfail_add_probability_range
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:166,13'
          Dst:             fs_randomfail_add_probability
        - Src:             'fs-randomfail.c:171,13'
          Dst:             fs_randomfail_add_probability_range
        - Src:             'fs-randomfail.c:176,13'
          Dst:             t_strdup_printf
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fs_randomfail_get_nlinks
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_get_nlinks
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:427,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:429,8'
          Dst:             fs_get_nlinks
        - Src:             'fs-randomfail.c:430,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_iter_deinit
        - fs_set_error
        - fs_set_error_errno
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:513,13'
          Dst:             fs_iter_deinit
        - Src:             'fs-randomfail.c:514,3'
          Dst:             fs_set_error_errno
        - Src:             'fs-randomfail.c:516,3'
          Dst:             fs_set_error
    - functionName:    fs_randomfail_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_iter_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:502,10'
          Dst:             fs_iter_next
    - functionName:    fs_randomfail_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_iter_init_parent
        - fs_random_fail_range
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:483,16'
          Dst:             fs_iter_init_parent
        - Src:             'fs-randomfail.c:484,6'
          Dst:             fs_random_fail_range
    - functionName:    fs_randomfail_iter_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:472,36'
          Dst:             malloc_multiply_check
        - Src:             'fs-randomfail.c:472,36'
          Dst:             p_malloc
    - functionName:    fs_randomfail_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_delete
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:464,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:466,8'
          Dst:             fs_delete
        - Src:             'fs-randomfail.c:467,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_rename
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_rename
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:453,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:455,8'
          Dst:             fs_rename
        - Src:             'fs-randomfail.c:456,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_copy
        - fs_copy_finish_async
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:438,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:442,9'
          Dst:             fs_copy
        - Src:             'fs-randomfail.c:444,9'
          Dst:             fs_copy_finish_async
        - Src:             'fs-randomfail.c:445,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:416,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:418,8'
          Dst:             fs_stat
        - Src:             'fs-randomfail.c:419,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_exists
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_exists
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:405,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:407,8'
          Dst:             fs_exists
        - Src:             'fs-randomfail.c:408,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_lock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_lock
        - fs_random_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:390,6'
          Dst:             fs_random_fail
        - Src:             'fs-randomfail.c:392,9'
          Dst:             fs_lock
    - functionName:    fs_randomfail_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fs_random_fail
        - fs_write_stream_abort_error
        - fs_write_stream_abort_parent
        - fs_write_stream_finish
        - o_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:374,4'
          Dst:             o_stream_unref
        - Src:             'fs-randomfail.c:376,4'
          Dst:             fs_write_stream_abort_parent
        - Src:             'fs-randomfail.c:379,7'
          Dst:             fs_random_fail
        - Src:             'fs-randomfail.c:380,4'
          Dst:             fs_write_stream_abort_error
        - Src:             'fs-randomfail.c:384,9'
          Dst:             fs_write_stream_finish
    - functionName:    fs_randomfail_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_random_fail_range
        - fs_write_stream
        - i_panic
        - o_stream_create_failure_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:355,2'
          Dst:             i_panic
        - Src:             'fs-randomfail.c:357,23'
          Dst:             fs_write_stream
        - Src:             'fs-randomfail.c:358,7'
          Dst:             fs_random_fail_range
        - Src:             'fs-randomfail.c:361,19'
          Dst:             o_stream_create_failure_at
    - functionName:    fs_randomfail_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:344,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:346,8'
          Dst:             fs_write
        - Src:             'fs-randomfail.c:347,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_random_fail_range
        - fs_read_stream
        - i_stream_create_failure_at
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:331,10'
          Dst:             fs_read_stream
        - Src:             'fs-randomfail.c:332,7'
          Dst:             fs_random_fail_range
        - Src:             'fs-randomfail.c:334,11'
          Dst:             i_stream_create_failure_at
        - Src:             'fs-randomfail.c:335,2'
          Dst:             i_stream_unref
    - functionName:    fs_randomfail_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:317,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:319,8'
          Dst:             fs_read
        - Src:             'fs-randomfail.c:320,6'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_prefetch
        - fs_random_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:307,6'
          Dst:             fs_random_fail
        - Src:             'fs-randomfail.c:309,9'
          Dst:             fs_prefetch
    - functionName:    fs_randomfail_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_random_fail_begin
        - fs_file_random_fail_end
        - fs_get_metadata_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:299,6'
          Dst:             fs_file_random_fail_begin
        - Src:             'fs-randomfail.c:301,8'
          Dst:             fs_get_metadata_full
        - Src:             'fs-randomfail.c:302,9'
          Dst:             fs_file_random_fail_end
    - functionName:    fs_randomfail_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_free
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:236,2'
          Dst:             fs_file_free
        - Src:             'fs-randomfail.c:237,2'
          Dst:             p_free_internal
        - Src:             'fs-randomfail.c:238,2'
          Dst:             p_free_internal
    - functionName:    fs_randomfail_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_init_parent
        - i_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:228,20'
          Dst:             i_strdup
        - Src:             'fs-randomfail.c:229,22'
          Dst:             fs_file_init_parent
    - functionName:    fs_randomfail_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:218,36'
          Dst:             malloc_multiply_check
        - Src:             'fs-randomfail.c:218,36'
          Dst:             p_malloc
    - functionName:    fs_randomfail_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_properties
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:213,9'
          Dst:             fs_get_properties
    - functionName:    fs_randomfail_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:208,2'
          Dst:             p_free_internal
    - functionName:    fs_randomfail_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
        - fs_init_parent
        - fs_randomfail_op_add
        - pool_unref
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:189,6'
          Dst:             settings_get
        - Src:             'fs-randomfail.c:192,8'
          Dst:             array_get_i
        - Src:             'fs-randomfail.c:194,7'
          Dst:             fs_randomfail_op_add
        - Src:             'fs-randomfail.c:195,4'
          Dst:             pool_unref
        - Src:             'fs-randomfail.c:199,2'
          Dst:             pool_unref
        - Src:             'fs-randomfail.c:201,9'
          Dst:             fs_init_parent
    - functionName:    fs_randomfail_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:76,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-randomfail.c:76,7'
          Dst:             p_malloc
    - functionName:    fs_randomfail_unlock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-randomfail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-randomfail.c:397,2'
          Dst:             i_unreached
    - functionName:    fs_sis_queue_add
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - e_error
        - fs_file_deinit
        - fs_file_init_parent
        - fs_file_last_error
        - fs_file_path
        - fs_write
        - strrchr
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:120,9'
          Dst:             fs_file_path
        - Src:             'fs-sis-queue.c:121,10'
          Dst:             strrchr
        - Src:             'fs-sis-queue.c:127,15'
          Dst:             t_strdup_printf
        - Src:             'fs-sis-queue.c:128,15'
          Dst:             fs_file_init_parent
        - Src:             'fs-sis-queue.c:129,6'
          Dst:             fs_write
        - Src:             'fs-sis-queue.c:129,41'
          Dst:             __errno_location
        - Src:             'fs-sis-queue.c:130,3'
          Dst:             fs_file_last_error
        - Src:             'fs-sis-queue.c:130,3'
          Dst:             e_error
        - Src:             'fs-sis-queue.c:131,2'
          Dst:             fs_file_deinit
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fs_sis_queue_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - fs_delete
        - fs_sis_try_unlink_hash_file
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:181,2'
          Dst:             t_push
        - Src:             'fs-sis-queue.c:182,3'
          Dst:             fs_sis_try_unlink_hash_file
        - Src:             'fs-sis-queue.c:183,4'
          Dst:             t_pop
        - Src:             'fs-sis-queue.c:183,4'
          Dst:             i_panic
        - Src:             'fs-sis-queue.c:184,9'
          Dst:             fs_delete
    - functionName:    fs_sis_queue_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - fs_sis_queue_add
        - fs_write_stream_abort_parent
        - fs_write_stream_finish
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:167,4'
          Dst:             fs_write_stream_abort_parent
        - Src:             'fs-sis-queue.c:171,6'
          Dst:             fs_write_stream_finish
        - Src:             'fs-sis-queue.c:173,2'
          Dst:             t_push
        - Src:             'fs-sis-queue.c:174,3'
          Dst:             fs_sis_queue_add
        - Src:             'fs-sis-queue.c:175,4'
          Dst:             t_pop
        - Src:             'fs-sis-queue.c:175,4'
          Dst:             i_panic
    - functionName:    fs_sis_queue_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_last_error
        - fs_write_stream
        - i_panic
        - o_stream_create_error_str
        - o_stream_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:150,2'
          Dst:             i_panic
        - Src:             'fs-sis-queue.c:154,7'
          Dst:             fs_file_last_error
        - Src:             'fs-sis-queue.c:153,19'
          Dst:             o_stream_create_error_str
        - Src:             'fs-sis-queue.c:156,19'
          Dst:             fs_write_stream
        - Src:             'fs-sis-queue.c:158,2'
          Dst:             o_stream_set_name
    - functionName:    fs_sis_queue_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - fs_sis_queue_add
        - fs_write
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:140,6'
          Dst:             fs_write
        - Src:             'fs-sis-queue.c:142,2'
          Dst:             t_push
        - Src:             'fs-sis-queue.c:143,3'
          Dst:             fs_sis_queue_add
        - Src:             'fs-sis-queue.c:144,4'
          Dst:             t_pop
        - Src:             'fs-sis-queue.c:144,4'
          Dst:             i_panic
    - functionName:    fs_sis_queue_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_free
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:109,2'
          Dst:             fs_file_free
        - Src:             'fs-sis-queue.c:110,2'
          Dst:             p_free_internal
        - Src:             'fs-sis-queue.c:111,2'
          Dst:             p_free_internal
    - functionName:    fs_sis_queue_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_init_parent
        - fs_set_error
        - i_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:96,20'
          Dst:             i_strdup
        - Src:             'fs-sis-queue.c:100,3'
          Dst:             fs_set_error
        - Src:             'fs-sis-queue.c:102,23'
          Dst:             fs_file_init_parent
    - functionName:    fs_sis_queue_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:85,35'
          Dst:             malloc_multiply_check
        - Src:             'fs-sis-queue.c:85,35'
          Dst:             p_malloc
    - functionName:    fs_sis_queue_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:79,2'
          Dst:             p_free_internal
        - Src:             'fs-sis-queue.c:80,2'
          Dst:             p_free_internal
    - functionName:    fs_sis_queue_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - fs_init_parent
        - i_strdup
        - pool_unref
        - settings_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:66,6'
          Dst:             settings_get
        - Src:             'fs-sis-queue.c:69,18'
          Dst:             i_strdup
        - Src:             'fs-sis-queue.c:70,2'
          Dst:             pool_unref
        - Src:             'fs-sis-queue.c:72,9'
          Dst:             fs_init_parent
    - functionName:    fs_sis_queue_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-queue.c:54,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-sis-queue.c:54,7'
          Dst:             p_malloc
    - functionName:    fs_sis_try_link
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          160
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - e_error
        - fs_copy
        - fs_delete
        - fs_file_last_error
        - fs_stat
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:137,6'
          Dst:             i_stream_stat
        - Src:             'fs-sis.c:141,6'
          Dst:             fs_copy
        - Src:             'fs-sis.c:142,7'
          Dst:             __errno_location
        - Src:             'fs-sis.c:142,26'
          Dst:             __errno_location
        - Src:             'fs-sis.c:143,4'
          Dst:             fs_file_last_error
        - Src:             'fs-sis.c:143,4'
          Dst:             e_error
        - Src:             'fs-sis.c:149,6'
          Dst:             fs_stat
        - Src:             'fs-sis.c:150,3'
          Dst:             fs_file_last_error
        - Src:             'fs-sis.c:150,3'
          Dst:             e_error
        - Src:             'fs-sis.c:152,7'
          Dst:             fs_delete
        - Src:             'fs-sis.c:153,4'
          Dst:             fs_file_last_error
        - Src:             'fs-sis.c:153,4'
          Dst:             e_error
        - Src:             'fs-sis.c:160,7'
          Dst:             fs_delete
        - Src:             'fs-sis.c:161,4'
          Dst:             fs_file_last_error
        - Src:             'fs-sis.c:161,4'
          Dst:             e_error
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    fs_sis_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:237,9'
          Dst:             fs_delete
    - functionName:    fs_sis_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_write_stream_abort_parent
        - fs_write_stream_finish
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:227,4'
          Dst:             fs_write_stream_abort_parent
        - Src:             'fs-sis.c:232,9'
          Dst:             fs_write_stream_finish
    - functionName:    fs_sis_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_last_error
        - fs_write_stream
        - o_stream_create_error_str
        - o_stream_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:215,7'
          Dst:             fs_file_last_error
        - Src:             'fs-sis.c:214,19'
          Dst:             o_stream_create_error_str
        - Src:             'fs-sis.c:217,19'
          Dst:             fs_write_stream
        - Src:             'fs-sis.c:219,2'
          Dst:             o_stream_set_name
    - functionName:    fs_sis_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - fs_sis_try_link
        - fs_write
        - i_stream_read_eof
        - stream_cmp_block
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:199,6'
          Dst:             stream_cmp_block
        - Src:             'fs-sis.c:200,6'
          Dst:             i_stream_read_eof
        - Src:             'fs-sis.c:202,7'
          Dst:             fs_sis_try_link
        - Src:             'fs-sis.c:206,6'
          Dst:             fs_write
    - functionName:    fs_sis_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          87
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - e_warning
        - fs_lookup_metadata
        - fs_read_stream
        - i_stream_create_file
        - i_stream_create_limit
        - i_stream_create_nonuls
        - i_stream_unref
        - str_to_uoff
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:172,27'
          Dst:             fs_read_stream
        - Src:             'fs-sis.c:176,7'
          Dst:             fs_lookup_metadata
        - Src:             'fs-sis.c:178,7'
          Dst:             str_to_uoff
        - Src:             'fs-sis.c:180,3'
          Dst:             i_stream_unref
        - Src:             'fs-sis.c:181,3'
          Dst:             e_warning
        - Src:             'fs-sis.c:182,35'
          Dst:             i_stream_create_file
        - Src:             'fs-sis.c:183,34'
          Dst:             i_stream_create_nonuls
        - Src:             'fs-sis.c:184,12'
          Dst:             i_stream_create_limit
        - Src:             'fs-sis.c:185,3'
          Dst:             i_stream_unref
        - Src:             'fs-sis.c:186,3'
          Dst:             i_stream_unref
    - functionName:    fs_sis_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_close
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:127,2'
          Dst:             i_stream_unref
        - Src:             'fs-sis.c:128,2'
          Dst:             fs_file_close
        - Src:             'fs-sis.c:129,2'
          Dst:             fs_file_close
    - functionName:    fs_sis_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_deinit
        - fs_file_free
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:115,2'
          Dst:             fs_file_deinit
        - Src:             'fs-sis.c:116,2'
          Dst:             fs_file_free
        - Src:             'fs-sis.c:117,2'
          Dst:             p_free_internal
        - Src:             'fs-sis.c:118,2'
          Dst:             p_free_internal
        - Src:             'fs-sis.c:119,2'
          Dst:             p_free_internal
        - Src:             'fs-sis.c:120,2'
          Dst:             p_free_internal
    - functionName:    fs_sis_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          136
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - e_error
        - fs_file_init_parent
        - fs_read_stream
        - fs_set_error
        - fs_sis_path_parse
        - i_strdup
        - i_strdup_printf
        - i_stream_destroy
        - i_stream_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:82,20'
          Dst:             i_strdup
        - Src:             'fs-sis.c:86,3'
          Dst:             fs_set_error
        - Src:             'fs-sis.c:90,6'
          Dst:             fs_sis_path_parse
        - Src:             'fs-sis.c:94,20'
          Dst:             i_strdup_printf
        - Src:             'fs-sis.c:95,20'
          Dst:             fs_file_init_parent
        - Src:             'fs-sis.c:98,21'
          Dst:             fs_read_stream
        - Src:             'fs-sis.c:99,6'
          Dst:             i_stream_read
        - Src:             'fs-sis.c:101,7'
          Dst:             __errno_location
        - Src:             'fs-sis.c:102,4'
          Dst:             e_error
        - Src:             'fs-sis.c:105,3'
          Dst:             i_stream_destroy
        - Src:             'fs-sis.c:108,22'
          Dst:             fs_file_init_parent
    - functionName:    fs_sis_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:70,29'
          Dst:             malloc_multiply_check
        - Src:             'fs-sis.c:70,29'
          Dst:             p_malloc
    - functionName:    fs_sis_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:65,2'
          Dst:             p_free_internal
    - functionName:    fs_sis_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fs_get_properties
        - fs_init_parent
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:49,6'
          Dst:             fs_init_parent
        - Src:             'fs-sis.c:52,10'
          Dst:             fs_get_properties
        - Src:             'fs-sis.c:54,14'
          Dst:             t_strdup_printf
    - functionName:    fs_sis_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis.c:38,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-sis.c:38,7'
          Dst:             p_malloc
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    fs_test_stream_destroyed
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:148,2'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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-fs/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_test_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:379,2'
          Dst:             p_free_internal
    - functionName:    fs_test_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          189
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - array_get_i
        - i_strndup
        - p_free_internal
        - strlen
        - strncmp
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:342,29'
          Dst:             strlen
        - Src:             'fs-test.c:344,10'
          Dst:             array_get_i
        - Src:             'fs-test.c:348,7'
          Dst:             strncmp
        - Src:             'fs-test.c:350,7'
          Dst:             strrchr
        - Src:             'fs-test.c:365,7'
          Dst:             strncmp
        - Src:             'fs-test.c:367,3'
          Dst:             p_free_internal
        - Src:             'fs-test.c:368,20'
          Dst:             i_strndup
    - functionName:    fs_test_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_sort_i
        - i_strcmp_p
        - i_strdup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:330,17'
          Dst:             i_strdup
        - Src:             'fs-test.c:331,21'
          Dst:             strlen
        - Src:             'fs-test.c:332,19'
          Dst:             i_strdup
        - Src:             'fs-test.c:333,2'
          Dst:             array_sort_i
        - Src:             'fs-test.c:333,2'
          Dst:             i_strcmp_p
    - functionName:    fs_test_iter_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:319,30'
          Dst:             malloc_multiply_check
        - Src:             'fs-test.c:319,30'
          Dst:             p_malloc
    - functionName:    fs_test_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:306,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:311,3'
          Dst:             __errno_location
    - functionName:    fs_test_rename
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fs_file_set_error_async
        - fs_test_copy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:291,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:295,6'
          Dst:             fs_test_copy
    - functionName:    fs_test_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - buffer_append_buf
        - buffer_set_used_size
        - fs_file_path
        - fs_file_set_error_async
        - test_fs_file_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:263,47'
          Dst:             fs_file_path
        - Src:             'fs-test.c:263,20'
          Dst:             test_fs_file_get
        - Src:             'fs-test.c:266,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:272,3'
          Dst:             __errno_location
        - Src:             'fs-test.c:276,3'
          Dst:             __errno_location
        - Src:             'fs-test.c:279,2'
          Dst:             buffer_set_used_size
        - Src:             'fs-test.c:280,2'
          Dst:             buffer_append_buf
    - functionName:    test_fs_file_get
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_path
        - i_panic
        - strcmp
        - test_fs_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:396,8'
          Dst:             test_fs_get
        - Src:             'fs-test.c:399,3'
          Dst:             i_panic
        - Src:             'fs-test.c:400,14'
          Dst:             fs_file_path
        - Src:             'fs-test.c:400,7'
          Dst:             strcmp
    - functionName:    test_fs_get
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     externalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:385,9'
          Dst:             strcmp
        - Src:             'fs-test.c:386,3'
          Dst:             i_panic
    - functionName:    fs_test_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:241,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:245,3'
          Dst:             __errno_location
        - Src:             'fs-test.c:249,3'
          Dst:             __errno_location
    - functionName:    fs_test_exists
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:226,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:230,3'
          Dst:             __errno_location
    - functionName:    fs_test_unlock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:218,2'
          Dst:             p_free_internal
    - functionName:    fs_test_lock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:208,12'
          Dst:             malloc_multiply_check
        - Src:             'fs-test.c:208,12'
          Dst:             p_malloc
    - functionName:    fs_test_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_set_used_size
        - fs_file_set_error_async
        - o_stream_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:187,2'
          Dst:             o_stream_destroy
        - Src:             'fs-test.c:189,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:195,3'
          Dst:             buffer_set_used_size
    - functionName:    fs_test_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_set_used_size
        - i_panic
        - o_stream_create_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:177,2'
          Dst:             i_panic
        - Src:             'fs-test.c:179,2'
          Dst:             buffer_set_used_size
        - Src:             'fs-test.c:180,18'
          Dst:             o_stream_create_buffer
    - functionName:    fs_test_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - fs_test_stream_destroyed
        - i_panic
        - i_stream_add_destroy_callback
        - i_stream_create_error
        - test_istream_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:158,2'
          Dst:             i_panic
        - Src:             'fs-test.c:161,10'
          Dst:             i_stream_create_error
        - Src:             'fs-test.c:163,10'
          Dst:             i_stream_create_error
        - Src:             'fs-test.c:164,10'
          Dst:             test_istream_create_data
        - Src:             'fs-test.c:166,2'
          Dst:             i_stream_add_destroy_callback
        - Src:             'fs-test.c:166,2'
          Dst:             fs_test_stream_destroyed
    - functionName:    fs_test_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_test_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fs_file_set_error_async
        - fs_metadata_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:125,3'
          Dst:             fs_file_set_error_async
        - Src:             'fs-test.c:129,3'
          Dst:             __errno_location
        - Src:             'fs-test.c:132,2'
          Dst:             fs_metadata_init
    - functionName:    fs_test_set_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - fs_default_set_metadata
        - i_strdup
        - p_free_internal
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:104,6'
          Dst:             strcmp
        - Src:             'fs-test.c:105,3'
          Dst:             p_free_internal
        - Src:             'fs-test.c:106,17'
          Dst:             i_strdup
        - Src:             'fs-test.c:108,3'
          Dst:             fs_default_set_metadata
    - functionName:    fs_test_wait_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 98
      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:    fs_test_set_async_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_test_file_get_path
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      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:    fs_test_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 78
      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:    fs_test_file_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - fs_file_free
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:67,2'
          Dst:             fs_file_free
        - Src:             'fs-test.c:68,2'
          Dst:             buffer_free
        - Src:             'fs-test.c:69,2'
          Dst:             p_free_internal
        - Src:             'fs-test.c:70,2'
          Dst:             p_free_internal
    - functionName:    fs_test_file_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - i_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:54,20'
          Dst:             i_strdup
        - Src:             'fs-test.c:57,19'
          Dst:             buffer_create_dynamic
    - functionName:    fs_test_file_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:44,30'
          Dst:             malloc_multiply_check
        - Src:             'fs-test.c:44,30'
          Dst:             p_malloc
    - functionName:    fs_test_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 39
      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:    fs_test_free
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:31,2'
          Dst:             array_free_i
        - Src:             'fs-test.c:32,2'
          Dst:             p_free_internal
    - functionName:    fs_test_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fs_test_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-test.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-test.c:13,7'
          Dst:             malloc_multiply_check
        - Src:             'fs-test.c:13,7'
          Dst:             p_malloc
        - Src:             'fs-test.c:15,2'
          Dst:             array_create_i
    - functionName:    fs_wrapper_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_iter_deinit
        - fs_set_error_errno
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:169,13'
          Dst:             fs_iter_deinit
        - Src:             'fs-wrapper.c:170,3'
          Dst:             fs_set_error_errno
    - functionName:    fs_wrapper_iter_next
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_iter_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:158,10'
          Dst:             fs_iter_next
    - functionName:    fs_wrapper_iter_init
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_iter_init_parent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:147,17'
          Dst:             fs_iter_init_parent
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    fs_wrapper_iter_alloc
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:138,33'
          Dst:             malloc_multiply_check
        - Src:             'fs-wrapper.c:138,33'
          Dst:             p_malloc
    - functionName:    fs_wrapper_delete
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:133,9'
          Dst:             fs_delete
    - functionName:    fs_wrapper_rename
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_rename
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:128,9'
          Dst:             fs_rename
    - functionName:    fs_wrapper_copy
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_copy
        - fs_copy_finish_async
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:121,10'
          Dst:             fs_copy
        - Src:             'fs-wrapper.c:123,10'
          Dst:             fs_copy_finish_async
    - functionName:    fs_wrapper_get_nlinks
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_nlinks
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:115,9'
          Dst:             fs_get_nlinks
    - functionName:    fs_wrapper_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:110,9'
          Dst:             fs_stat
    - functionName:    fs_wrapper_exists
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:105,9'
          Dst:             fs_exists
    - functionName:    fs_wrapper_lock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_lock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:95,9'
          Dst:             fs_lock
    - functionName:    fs_wrapper_write_stream_finish
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fs_write_stream_abort_parent
        - fs_write_stream_finish
        - fs_write_stream_finish_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:83,10'
          Dst:             fs_write_stream_finish_async
        - Src:             'fs-wrapper.c:86,3'
          Dst:             fs_write_stream_abort_parent
        - Src:             'fs-wrapper.c:89,9'
          Dst:             fs_write_stream_finish
    - functionName:    fs_wrapper_write_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - fs_write_stream
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:75,2'
          Dst:             i_panic
        - Src:             'fs-wrapper.c:77,17'
          Dst:             fs_write_stream
    - functionName:    fs_wrapper_write
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:70,9'
          Dst:             fs_write
    - functionName:    fs_wrapper_read_stream
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_read_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:65,9'
          Dst:             fs_read_stream
    - functionName:    fs_wrapper_read
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:59,9'
          Dst:             fs_read
    - functionName:    fs_wrapper_prefetch
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_prefetch
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:54,9'
          Dst:             fs_prefetch
    - functionName:    fs_wrapper_get_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_metadata_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:49,9'
          Dst:             fs_get_metadata_full
    - functionName:    fs_wrapper_set_metadata
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_set_metadata
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:42,2'
          Dst:             fs_set_metadata
    - functionName:    fs_wrapper_wait_async
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_wait_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:36,2'
          Dst:             fs_wait_async
    - functionName:    fs_wrapper_set_async_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_set_async_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:31,2'
          Dst:             fs_file_set_async_callback
    - functionName:    fs_wrapper_file_get_path
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:24,9'
          Dst:             fs_file_path
    - functionName:    fs_wrapper_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:19,2'
          Dst:             fs_file_close
    - functionName:    fs_wrapper_get_properties
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_get_properties
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:14,9'
          Dst:             fs_get_properties
    - functionName:    fs_wrapper_unlock
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-wrapper.c'
      linkageType:     externalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-wrapper.c:100,2'
          Dst:             i_unreached
    - functionName:    i_stream_fs_file_read
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-fs-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_read_stream
        - i_stream_get_max_buffer_size
        - i_stream_init_parent
        - i_stream_read_copy_from_parent
        - i_stream_seek
        - i_stream_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-fs-file.c:29,4'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-fs-file.c:28,11'
          Dst:             fs_read_stream
        - Src:             'istream-fs-file.c:30,3'
          Dst:             i_stream_init_parent
        - Src:             'istream-fs-file.c:31,3'
          Dst:             i_stream_unref
        - Src:             'istream-fs-file.c:34,2'
          Dst:             i_stream_seek
        - Src:             'istream-fs-file.c:36,9'
          Dst:             i_stream_read_copy_from_parent
    - functionName:    i_stream_fs_file_close
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-fs-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_deinit
        - i_stream_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-fs-file.c:18,2'
          Dst:             i_stream_destroy
        - Src:             'istream-fs-file.c:19,2'
          Dst:             fs_file_deinit
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    i_stream_create_fs_file
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-fs-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          96
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_file_path
        - i_stream_create
        - i_stream_set_name
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-fs-file.c:45,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-fs-file.c:45,12'
          Dst:             p_malloc
        - Src:             'istream-fs-file.c:57,10'
          Dst:             i_stream_create
        - Src:             'istream-fs-file.c:59,27'
          Dst:             fs_file_path
        - Src:             'istream-fs-file.c:59,2'
          Dst:             i_stream_set_name
    - functionName:    i_stream_fs_stats_read
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-fs-stats.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_file_timing_end
        - i_stream_read_copy_from_parent
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-fs-stats.c:19,2'
          Dst:             i_stream_seek
        - Src:             'istream-fs-stats.c:22,8'
          Dst:             i_stream_read_copy_from_parent
        - Src:             'istream-fs-stats.c:28,3'
          Dst:             fs_file_timing_end
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    i_stream_create_fs_stats
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-fs-stats.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          85
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-fs-stats.c:38,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-fs-stats.c:38,12'
          Dst:             p_malloc
        - Src:             'istream-fs-stats.c:46,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-fs-stats.c:45,9'
          Dst:             i_stream_create
    - functionName:    metadata_header_read
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          182
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_read_next_line
        - io_stream_set_error
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-metawrap.c:22,17'
          Dst:             i_stream_read_next_line
        - Src:             'istream-metawrap.c:27,7'
          Dst:             strchr
        - Src:             'istream-metawrap.c:29,4'
          Dst:             io_stream_set_error
        - Src:             'istream-metawrap.c:43,4'
          Dst:             io_stream_set_error
        - Src:             'istream-metawrap.c:52,2'
          Dst:             i_panic
    - functionName:    i_stream_metawrap_stat
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_read_memarea
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-metawrap.c:111,6'
          Dst:             i_stream_stat
        - Src:             'istream-metawrap.c:118,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-metawrap.c:126,2'
          Dst:             i_panic
    - functionName:    i_stream_metawrap_seek
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          49
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_metawrap_read
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          137
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_max_buffer_size
        - i_stream_read_copy_from_parent
        - i_stream_read_memarea
        - i_stream_seek
        - i_stream_set_max_buffer_size
        - metadata_header_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-metawrap.c:61,2'
          Dst:             i_stream_seek
        - Src:             'istream-metawrap.c:65,26'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-metawrap.c:67,3'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'istream-metawrap.c:68,9'
          Dst:             metadata_header_read
        - Src:             'istream-metawrap.c:69,3'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'istream-metawrap.c:71,3'
          Dst:             i_panic
        - Src:             'istream-metawrap.c:79,4'
          Dst:             i_stream_seek
        - Src:             'istream-metawrap.c:80,11'
          Dst:             i_stream_read_memarea
        - Src:             'istream-metawrap.c:84,9'
          Dst:             i_stream_read_copy_from_parent
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    i_stream_create_metawrap
      functionSourceFile: '/src/dovecot/src/lib-fs/istream-metawrap.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          120
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-metawrap.c:137,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-metawrap.c:137,12'
          Dst:             p_malloc
        - Src:             'istream-metawrap.c:151,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-metawrap.c:150,9'
          Dst:             i_stream_create
    - functionName:    o_stream_cmp_equals
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-cmp.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_cmp_close
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-cmp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_unref
        - o_stream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-cmp.c:23,2'
          Dst:             i_stream_unref
        - Src:             'ostream-cmp.c:25,3'
          Dst:             o_stream_close
    - functionName:    o_stream_cmp_sendv
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-cmp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - o_stream_copy_error_from_parent
        - o_stream_sendv
        - stream_cmp_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-cmp.c:56,9'
          Dst:             stream_cmp_block
        - Src:             'ostream-cmp.c:64,13'
          Dst:             o_stream_sendv
        - Src:             'ostream-cmp.c:65,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    stream_cmp_block
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-cmp.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_read_bytes
        - i_stream_skip
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-cmp.c:35,9'
          Dst:             i_stream_read_bytes
        - Src:             'ostream-cmp.c:37,22'
          Dst:             memcmp
        - Src:             'ostream-cmp.c:41,3'
          Dst:             i_stream_skip
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    o_stream_create_cmp
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-cmp.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_ref
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-cmp.c:78,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-cmp.c:78,12'
          Dst:             p_malloc
        - Src:             'ostream-cmp.c:83,2'
          Dst:             i_stream_ref
        - Src:             'ostream-cmp.c:86,11'
          Dst:             o_stream_get_fd
        - Src:             'ostream-cmp.c:85,9'
          Dst:             o_stream_create
    - functionName:    o_stream_metawrap_call_callback
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_metawrap_send_istream
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_copy_error_from_parent
        - o_stream_metawrap_call_callback
        - o_stream_send_istream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-metawrap.c:50,2'
          Dst:             o_stream_metawrap_call_callback
        - Src:             'ostream-metawrap.c:51,13'
          Dst:             o_stream_send_istream
        - Src:             'ostream-metawrap.c:52,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    o_stream_metawrap_sendv
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-metawrap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_copy_error_from_parent
        - o_stream_metawrap_call_callback
        - o_stream_sendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-metawrap.c:33,2'
          Dst:             o_stream_metawrap_call_callback
        - Src:             'ostream-metawrap.c:34,13'
          Dst:             o_stream_sendv
        - Src:             'ostream-metawrap.c:35,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-fs/../../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:    o_stream_create_metawrap
      functionSourceFile: '/src/dovecot/src/lib-fs/ostream-metawrap.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-metawrap.c:63,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-metawrap.c:63,12'
          Dst:             p_malloc
        - Src:             'ostream-metawrap.c:70,11'
          Dst:             o_stream_get_fd
        - Src:             'ostream-metawrap.c:69,9'
          Dst:             o_stream_create
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    fd_copy_stat_permissions
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - dec2str
        - fchmod
        - fchown
        - fstat
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:422,6'
          Dst:             fstat
        - Src:             'dict-file.c:423,14'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:431,7'
          Dst:             fchown
        - Src:             'dict-file.c:433,21'
          Dst:             dec2str
        - Src:             'dict-file.c:432,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:439,7'
          Dst:             fchmod
        - Src:             'dict-file.c:440,15'
          Dst:             t_strdup_printf
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    file_dict_apply_changes
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          253
      EdgeCount:       54
      CyclomaticComplexity: 11
      functionsReached:
        - hash_table_lookup_full
        - hash_table_try_remove
        - hash_table_update
        - i_memcpy
        - i_panic
        - i_unreached
        - p_strdup
        - str_to_llong
        - strlen
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-file.c:380,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-file.c:370,7'
          Dst:             hash_table_lookup_full
        - Src:             'dict-file.c:386,8'
          Dst:             str_to_llong
        - Src:             'dict-file.c:387,5'
          Dst:             i_unreached
        - Src:             'dict-file.c:389,10'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:390,14'
          Dst:             strlen
        - Src:             'dict-file.c:391,39'
          Dst:             strlen
        - Src:             'dict-file.c:392,13'
          Dst:             p_strdup
        - Src:             'dict-file.c:394,5'
          Dst:             i_memcpy
        - Src:             'dict-file.c:400,11'
          Dst:             p_strdup
        - Src:             'dict-file.c:402,13'
          Dst:             p_strdup
        - Src:             'dict-file.c:405,4'
          Dst:             hash_table_update
        - Src:             'dict-file.c:409,5'
          Dst:             hash_table_try_remove
        - Src:             'dict-file.c:409,5'
          Dst:             i_panic
    - functionName:    fd_copy_parent_dir_permissions
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fd_copy_stat_permissions
        - stat
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:468,6'
          Dst:             strrchr
        - Src:             'dict-file.c:472,13'
          Dst:             t_strdup_until
        - Src:             'dict-file.c:473,6'
          Dst:             stat
        - Src:             'dict-file.c:474,14'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:478,9'
          Dst:             fd_copy_stat_permissions
    - functionName:    fd_copy_permissions
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fd_copy_stat_permissions
        - fstat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:454,6'
          Dst:             fstat
        - Src:             'dict-file.c:455,14'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:458,9'
          Dst:             fd_copy_stat_permissions
    - functionName:    file_dict_mkdir
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          131
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - eacces_error_get
        - mkdir_parents
        - stat_first_parent
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:487,6'
          Dst:             strrchr
        - Src:             'dict-file.c:490,9'
          Dst:             t_strdup_until
        - Src:             'dict-file.c:492,6'
          Dst:             stat_first_parent
        - Src:             'dict-file.c:493,7'
          Dst:             __errno_location
        - Src:             'dict-file.c:494,15'
          Dst:             eacces_error_get
        - Src:             'dict-file.c:496,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:504,6'
          Dst:             mkdir_parents
        - Src:             'dict-file.c:504,39'
          Dst:             __errno_location
        - Src:             'dict-file.c:505,7'
          Dst:             __errno_location
        - Src:             'dict-file.c:506,15'
          Dst:             eacces_error_get
        - Src:             'dict-file.c:508,15'
          Dst:             t_strdup_printf
    - functionName:    file_dict_lock
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          226
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - e_error
        - eacces_error_get
        - fd_copy_parent_dir_permissions
        - file_dict_mkdir
        - file_dict_open_latest
        - file_lock_free
        - file_wait_lock
        - open
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:521,6'
          Dst:             file_dict_open_latest
        - Src:             'dict-file.c:526,14'
          Dst:             open
        - Src:             'dict-file.c:527,25'
          Dst:             __errno_location
        - Src:             'dict-file.c:528,8'
          Dst:             file_dict_mkdir
        - Src:             'dict-file.c:530,15'
          Dst:             open
        - Src:             'dict-file.c:533,8'
          Dst:             __errno_location
        - Src:             'dict-file.c:534,16'
          Dst:             eacces_error_get
        - Src:             'dict-file.c:536,16'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:541,7'
          Dst:             fd_copy_parent_dir_permissions
        - Src:             'dict-file.c:543,4'
          Dst:             e_error
        - Src:             'dict-file.c:551,3'
          Dst:             file_lock_free
        - Src:             'dict-file.c:552,7'
          Dst:             file_wait_lock
        - Src:             'dict-file.c:555,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:562,18'
          Dst:             file_dict_open_latest
    - functionName:    file_dict_open_latest
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          99
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - eacces_error_get
        - file_dict_need_refresh
        - i_close_fd_path
        - open
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:188,7'
          Dst:             file_dict_need_refresh
        - Src:             'dict-file.c:191,2'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:195,13'
          Dst:             open
        - Src:             'dict-file.c:197,7'
          Dst:             __errno_location
        - Src:             'dict-file.c:199,7'
          Dst:             __errno_location
        - Src:             'dict-file.c:200,15'
          Dst:             eacces_error_get
        - Src:             'dict-file.c:202,15'
          Dst:             t_strdup_printf
    - functionName:    file_dict_need_refresh
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - e_error
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - nfs_safe_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:166,6'
          Dst:             nfs_safe_stat
        - Src:             'dict-file.c:167,3'
          Dst:             e_error
        - Src:             'dict-file.c:171,6'
          Dst:             fstat
        - Src:             'dict-file.c:172,7'
          Dst:             __errno_location
        - Src:             'dict-file.c:173,4'
          Dst:             e_error
        - Src:             'dict-file.c:177,7'
          Dst:             gnu_dev_major
        - Src:             'dict-file.c:177,7'
          Dst:             gnu_dev_major
        - Src:             'dict-file.c:177,7'
          Dst:             gnu_dev_minor
        - Src:             'dict-file.c:177,7'
          Dst:             gnu_dev_minor
    - functionName:    file_dict_write_changes
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          382
      EdgeCount:       71
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - e_error
        - fd_copy_parent_dir_permissions
        - fd_copy_permissions
        - file_dict_apply_changes
        - file_dict_ensure_path_home_dir
        - file_dict_lock
        - file_dict_mkdir
        - file_dict_refresh
        - file_dotlock_delete
        - file_dotlock_get_lock_path
        - file_dotlock_open
        - file_dotlock_replace
        - file_lock_free
        - file_unlock
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - i_close_fd_path
        - o_stream_cork
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - o_stream_nsend
        - open
        - rename
        - str_append_c
        - str_append_tabescaped
        - str_data
        - str_len
        - str_truncate
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-file.c:587,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-file.c:584,6'
          Dst:             file_dict_ensure_path_home_dir
        - Src:             'dict-file.c:590,7'
          Dst:             file_dict_lock
        - Src:             'dict-file.c:592,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:593,8'
          Dst:             open
        - Src:             'dict-file.c:595,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:597,4'
          Dst:             file_unlock
        - Src:             'dict-file.c:602,8'
          Dst:             file_dotlock_open
        - Src:             'dict-file.c:604,19'
          Dst:             __errno_location
        - Src:             'dict-file.c:605,8'
          Dst:             file_dict_mkdir
        - Src:             'dict-file.c:607,9'
          Dst:             file_dotlock_open
        - Src:             'dict-file.c:611,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:616,15'
          Dst:             file_dotlock_get_lock_path
        - Src:             'dict-file.c:621,6'
          Dst:             file_dict_refresh
        - Src:             'dict-file.c:623,4'
          Dst:             file_dotlock_delete
        - Src:             'dict-file.c:625,4'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:626,4'
          Dst:             file_unlock
        - Src:             'dict-file.c:632,7'
          Dst:             fd_copy_permissions
        - Src:             'dict-file.c:633,4'
          Dst:             e_error
        - Src:             'dict-file.c:636,7'
          Dst:             fd_copy_parent_dir_permissions
        - Src:             'dict-file.c:637,4'
          Dst:             e_error
        - Src:             'dict-file.c:639,2'
          Dst:             file_dict_apply_changes
        - Src:             'dict-file.c:641,11'
          Dst:             o_stream_create_fd
        - Src:             'dict-file.c:642,2'
          Dst:             o_stream_cork
        - Src:             'dict-file.c:643,9'
          Dst:             hash_table_iterate_init
        - Src:             'dict-file.c:644,8'
          Dst:             t_str_new
        - Src:             'dict-file.c:645,9'
          Dst:             hash_table_iterate
        - Src:             'dict-file.c:646,3'
          Dst:             str_truncate
        - Src:             'dict-file.c:647,3'
          Dst:             str_append_tabescaped
        - Src:             'dict-file.c:648,3'
          Dst:             str_append_c
        - Src:             'dict-file.c:649,3'
          Dst:             str_append_tabescaped
        - Src:             'dict-file.c:650,3'
          Dst:             str_append_c
        - Src:             'dict-file.c:651,26'
          Dst:             str_data
        - Src:             'dict-file.c:651,41'
          Dst:             str_len
        - Src:             'dict-file.c:651,3'
          Dst:             o_stream_nsend
        - Src:             'dict-file.c:653,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'dict-file.c:655,6'
          Dst:             o_stream_finish
        - Src:             'dict-file.c:657,9'
          Dst:             o_stream_get_error
        - Src:             'dict-file.c:656,14'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:658,3'
          Dst:             o_stream_destroy
        - Src:             'dict-file.c:660,4'
          Dst:             file_dotlock_delete
        - Src:             'dict-file.c:662,4'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:663,4'
          Dst:             file_unlock
        - Src:             'dict-file.c:667,2'
          Dst:             o_stream_destroy
        - Src:             'dict-file.c:670,7'
          Dst:             file_dotlock_replace
        - Src:             'dict-file.c:672,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:673,4'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:677,7'
          Dst:             rename
        - Src:             'dict-file.c:678,15'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:680,4'
          Dst:             file_unlock
        - Src:             'dict-file.c:681,4'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:686,3'
          Dst:             file_lock_free
        - Src:             'dict-file.c:689,2'
          Dst:             i_close_fd_path
    - functionName:    file_dict_ensure_path_home_dir
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - home_expand_tilde
        - i_strdup
        - null_strcmp
        - p_free_internal
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:91,6'
          Dst:             null_strcmp
        - Src:             'dict-file.c:95,14'
          Dst:             t_strdup_printf
        - Src:             'dict-file.c:102,24'
          Dst:             home_expand_tilde
        - Src:             'dict-file.c:102,15'
          Dst:             i_strdup
        - Src:             'dict-file.c:103,19'
          Dst:             i_strdup
        - Src:             'dict-file.c:104,2'
          Dst:             p_free_internal
    - functionName:    file_dict_refresh
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - file_dict_open_latest
        - hash_table_clear
        - hash_table_update
        - i_stream_create_fd
        - i_stream_destroy
        - i_stream_read_next_line
        - p_clear
        - p_strdup
        - str_tabunescape
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:214,6'
          Dst:             file_dict_open_latest
        - Src:             'dict-file.c:219,2'
          Dst:             hash_table_clear
        - Src:             'dict-file.c:220,2'
          Dst:             p_clear
        - Src:             'dict-file.c:223,11'
          Dst:             i_stream_create_fd
        - Src:             'dict-file.c:225,17'
          Dst:             i_stream_read_next_line
        - Src:             'dict-file.c:227,26'
          Dst:             p_strdup
        - Src:             'dict-file.c:227,10'
          Dst:             str_tabunescape
        - Src:             'dict-file.c:229,17'
          Dst:             i_stream_read_next_line
        - Src:             'dict-file.c:232,28'
          Dst:             p_strdup
        - Src:             'dict-file.c:232,12'
          Dst:             str_tabunescape
        - Src:             'dict-file.c:233,4'
          Dst:             hash_table_update
        - Src:             'dict-file.c:235,3'
          Dst:             i_stream_destroy
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-dict/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    file_dict_iterate_key_matches
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:296,6'
          Dst:             strncmp
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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-dict/../../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:    file_dict_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - file_dict_write_changes
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:706,6'
          Dst:             file_dict_write_changes
        - Src:             'dict-file.c:712,2'
          Dst:             pool_unref
    - functionName:    file_dict_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dict_transaction_memory_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:352,9'
          Dst:             pool_alloconly_create
        - Src:             'dict-file.c:353,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-file.c:353,8'
          Dst:             p_malloc
        - Src:             'dict-file.c:354,2'
          Dst:             dict_transaction_memory_init
    - functionName:    file_dict_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_iterate_deinit
        - pool_unref
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:340,13'
          Dst:             t_strdup
        - Src:             'dict-file.c:341,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'dict-file.c:342,2'
          Dst:             pool_unref
    - functionName:    file_dict_iterate
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - file_dict_iterate_key_matches
        - hash_table_iterate
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:309,9'
          Dst:             hash_table_iterate
        - Src:             'dict-file.c:312,8'
          Dst:             file_dict_iterate_key_matches
        - Src:             'dict-file.c:321,8'
          Dst:             strchr
    - functionName:    file_dict_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - file_dict_ensure_path_home_dir
        - file_dict_refresh
        - hash_table_iterate_init
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:275,9'
          Dst:             pool_alloconly_create
        - Src:             'dict-file.c:276,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-file.c:276,8'
          Dst:             p_malloc
        - Src:             'dict-file.c:280,14'
          Dst:             p_strdup
        - Src:             'dict-file.c:281,18'
          Dst:             strlen
        - Src:             'dict-file.c:284,6'
          Dst:             file_dict_ensure_path_home_dir
        - Src:             'dict-file.c:285,6'
          Dst:             file_dict_refresh
        - Src:             'dict-file.c:286,16'
          Dst:             p_strdup
        - Src:             'dict-file.c:288,14'
          Dst:             hash_table_iterate_init
    - functionName:    file_dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - file_dict_ensure_path_home_dir
        - file_dict_refresh
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:249,6'
          Dst:             file_dict_ensure_path_home_dir
        - Src:             'dict-file.c:252,6'
          Dst:             file_dict_refresh
        - Src:             'dict-file.c:255,10'
          Dst:             hash_table_lookup
        - Src:             'dict-file.c:259,24'
          Dst:             malloc_multiply_check
        - Src:             'dict-file.c:259,24'
          Dst:             p_malloc
        - Src:             'dict-file.c:260,14'
          Dst:             p_strdup
    - functionName:    file_dict_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_destroy
        - i_close_fd_path
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:140,2'
          Dst:             i_close_fd_path
        - Src:             'dict-file.c:141,2'
          Dst:             hash_table_destroy
        - Src:             'dict-file.c:142,2'
          Dst:             pool_unref
        - Src:             'dict-file.c:143,2'
          Dst:             p_free_internal
        - Src:             'dict-file.c:144,2'
          Dst:             p_free_internal
        - Src:             'dict-file.c:145,2'
          Dst:             p_free_internal
    - functionName:    file_dict_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - file_lock_method_parse
        - hash_table_create
        - i_strdup
        - i_unreached
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_unref
        - settings_get
        - str_hash
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-file.c:116,6'
          Dst:             settings_get
        - Src:             'dict-file.c:120,9'
          Dst:             malloc_multiply_check
        - Src:             'dict-file.c:120,9'
          Dst:             p_malloc
        - Src:             'dict-file.c:121,15'
          Dst:             i_strdup
        - Src:             'dict-file.c:122,7'
          Dst:             file_lock_method_parse
        - Src:             'dict-file.c:124,3'
          Dst:             i_unreached
        - Src:             'dict-file.c:125,2'
          Dst:             pool_unref
        - Src:             'dict-file.c:128,20'
          Dst:             pool_alloconly_create
        - Src:             'dict-file.c:129,2'
          Dst:             hash_table_create
        - Src:             'dict-file.c:129,2'
          Dst:             str_hash
        - Src:             'dict-file.c:129,2'
          Dst:             strcmp
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    redis_append_expire
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dec2str
        - redis_input_state_add
        - str_printfa
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:772,29'
          Dst:             dec2str
        - Src:             'dict-redis.c:775,7'
          Dst:             strlen
        - Src:             'dict-redis.c:775,25'
          Dst:             strlen
        - Src:             'dict-redis.c:774,2'
          Dst:             str_printfa
        - Src:             'dict-redis.c:776,2'
          Dst:             redis_input_state_add
    - functionName:    redis_input_state_add
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:129,2'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    redis_check_transaction
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - i_strdup
        - i_strdup_printf
        - o_stream_get_error
        - o_stream_send_str
        - redis_input_state_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:745,16'
          Dst:             i_strdup
        - Src:             'dict-redis.c:751,2'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:752,6'
          Dst:             o_stream_send_str
        - Src:             'dict-redis.c:755,4'
          Dst:             o_stream_get_error
        - Src:             'dict-redis.c:754,16'
          Dst:             i_strdup_printf
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    redis_escape_username
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-redis.c:407,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-redis.c:404,18'
          Dst:             t_str_new
        - Src:             'dict-redis.c:409,4'
          Dst:             str_append
        - Src:             'dict-redis.c:412,4'
          Dst:             str_append
        - Src:             'dict-redis.c:415,4'
          Dst:             str_append_c
        - Src:             'dict-redis.c:418,9'
          Dst:             str_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    redis_dict_select_db
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dec2str
        - o_stream_nsend_str
        - redis_input_state_add
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:560,11'
          Dst:             dec2str
        - Src:             'dict-redis.c:562,10'
          Dst:             strlen
        - Src:             'dict-redis.c:561,8'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:563,2'
          Dst:             o_stream_nsend_str
        - Src:             'dict-redis.c:564,2'
          Dst:             redis_input_state_add
    - functionName:    redis_dict_auth
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_nsend_str
        - redis_input_state_add
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:543,10'
          Dst:             strlen
        - Src:             'dict-redis.c:542,8'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:545,2'
          Dst:             o_stream_nsend_str
        - Src:             'dict-redis.c:546,2'
          Dst:             redis_input_state_add
    - functionName:    redis_dict_lookup_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - redis_disconnected
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:507,23'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:511,2'
          Dst:             redis_disconnected
    - functionName:    redis_disconnected
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          133
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - connection_disconnect
        - i_strdup
        - io_loop_stop
        - redis_reply_callback
        - t_strdup
        - timeout_remove
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:156,3'
          Dst:             t_strdup
        - Src:             'dict-redis.c:161,28'
          Dst:             i_strdup
        - Src:             'dict-redis.c:165,2'
          Dst:             connection_disconnect
        - Src:             'dict-redis.c:168,3'
          Dst:             redis_reply_callback
        - Src:             'dict-redis.c:169,2'
          Dst:             array_clear_i
        - Src:             'dict-redis.c:170,2'
          Dst:             array_clear_i
        - Src:             'dict-redis.c:171,2'
          Dst:             timeout_remove
        - Src:             'dict-redis.c:174,3'
          Dst:             io_loop_stop
    - functionName:    redis_reply_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - io_loop_set_current
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:141,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:143,3'
          Dst:             io_loop_set_current
        - Src:             'dict-redis.c:146,3'
          Dst:             io_loop_set_current
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    redis_dict_get_full_key
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          148
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
        - redis_escape_username
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strncmp
        - t_strconcat
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:518,28'
          Dst:             strchr
        - Src:             'dict-redis.c:520,6'
          Dst:             str_begins
        - Src:             'dict-redis.c:520,6'
          Dst:             strncmp
        - Src:             'dict-redis.c:520,6'
          Dst:             str_begins_builtin_success
        - Src:             'dict-redis.c:522,11'
          Dst:             str_begins
        - Src:             'dict-redis.c:522,11'
          Dst:             strncmp
        - Src:             'dict-redis.c:522,11'
          Dst:             str_begins_builtin_success
        - Src:             'dict-redis.c:525,7'
          Dst:             redis_escape_username
        - Src:             'dict-redis.c:523,9'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:528,3'
          Dst:             i_unreached
        - Src:             'dict-redis.c:531,9'
          Dst:             t_strconcat
    - functionName:    redis_dict_wait_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - redis_disconnected
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:186,23'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:190,2'
          Dst:             redis_disconnected
    - functionName:    redis_wait
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          190
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - connection_switch_ioloop
        - i_panic
        - io_loop_create
        - io_loop_destroy
        - io_loop_move_timeout
        - io_loop_run
        - io_loop_set_current
        - p_free_internal
        - redis_dict_wait_timeout
        - t_strdup
        - timeout_add
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:195,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:197,2'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:199,22'
          Dst:             io_loop_create
        - Src:             'dict-redis.c:201,14'
          Dst:             io_loop_move_timeout
        - Src:             'dict-redis.c:203,14'
          Dst:             timeout_add
        - Src:             'dict-redis.c:203,14'
          Dst:             redis_dict_wait_timeout
        - Src:             'dict-redis.c:206,2'
          Dst:             connection_switch_ioloop
        - Src:             'dict-redis.c:209,3'
          Dst:             io_loop_run
        - Src:             'dict-redis.c:210,11'
          Dst:             array_count_i
        - Src:             'dict-redis.c:212,2'
          Dst:             timeout_remove
        - Src:             'dict-redis.c:213,2'
          Dst:             io_loop_set_current
        - Src:             'dict-redis.c:214,2'
          Dst:             connection_switch_ioloop
        - Src:             'dict-redis.c:215,2'
          Dst:             io_loop_set_current
        - Src:             'dict-redis.c:216,2'
          Dst:             io_loop_destroy
        - Src:             'dict-redis.c:218,22'
          Dst:             t_strdup
        - Src:             'dict-redis.c:219,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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_len
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    2
      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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    redis_input_state_remove
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_delete_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:134,2'
          Dst:             array_delete_i
    - functionName:    redis_input_get
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          221
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_get_data
        - i_stream_next_line
        - i_stream_skip
        - io_loop_stop
        - redis_input_state_remove
        - str_append_data
        - str_len
        - str_to_uint
        - str_truncate
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:231,10'
          Dst:             i_stream_next_line
        - Src:             'dict-redis.c:234,7'
          Dst:             strcmp
        - Src:             'dict-redis.c:238,5'
          Dst:             io_loop_stop
        - Src:             'dict-redis.c:239,4'
          Dst:             redis_input_state_remove
        - Src:             'dict-redis.c:242,25'
          Dst:             str_to_uint
        - Src:             'dict-redis.c:243,15'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:250,9'
          Dst:             i_stream_get_data
        - Src:             'dict-redis.c:253,2'
          Dst:             str_append_data
        - Src:             'dict-redis.c:256,2'
          Dst:             i_stream_skip
        - Src:             'dict-redis.c:263,33'
          Dst:             str_len
        - Src:             'dict-redis.c:263,2'
          Dst:             str_truncate
        - Src:             'dict-redis.c:266,3'
          Dst:             io_loop_stop
        - Src:             'dict-redis.c:267,2'
          Dst:             redis_input_state_remove
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    redis_conn_input_more
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          347
      EdgeCount:       68
      CyclomaticComplexity: 14
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - array_idx_modifiable_i
        - i_panic
        - i_stream_next_line
        - i_unreached
        - io_loop_stop
        - redis_input_get
        - redis_input_state_remove
        - redis_reply_callback
        - str_append
        - str_to_uint
        - str_truncate
        - t_strdup_printf
        - timeout_remove
        - timeout_reset
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-redis.c:302,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-redis.c:281,11'
          Dst:             array_get_i
        - Src:             'dict-redis.c:283,10'
          Dst:             i_stream_next_line
        - Src:             'dict-redis.c:286,14'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:292,10'
          Dst:             redis_input_get
        - Src:             'dict-redis.c:294,9'
          Dst:             i_stream_next_line
        - Src:             'dict-redis.c:299,3'
          Dst:             timeout_reset
        - Src:             'dict-redis.c:301,2'
          Dst:             redis_input_state_remove
        - Src:             'dict-redis.c:304,3'
          Dst:             i_unreached
        - Src:             'dict-redis.c:313,25'
          Dst:             str_to_uint
        - Src:             'dict-redis.c:316,11'
          Dst:             array_idx_modifiable_i
        - Src:             'dict-redis.c:317,3'
          Dst:             i_panic
        - Src:             'dict-redis.c:319,15'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:329,11'
          Dst:             array_idx_modifiable_i
        - Src:             'dict-redis.c:330,3'
          Dst:             i_panic
        - Src:             'dict-redis.c:335,4'
          Dst:             redis_reply_callback
        - Src:             'dict-redis.c:336,4'
          Dst:             array_delete_i
        - Src:             'dict-redis.c:339,8'
          Dst:             array_count_i
        - Src:             'dict-redis.c:340,5'
          Dst:             timeout_remove
        - Src:             'dict-redis.c:342,6'
          Dst:             io_loop_stop
        - Src:             'dict-redis.c:347,2'
          Dst:             str_truncate
        - Src:             'dict-redis.c:348,2'
          Dst:             str_append
        - Src:             'dict-redis.c:349,13'
          Dst:             t_strdup_printf
    - functionName:    redis_conn_input
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_read
        - redis_conn_input_more
        - redis_disconnected
      functionUses:    0
      BranchProfiles:
        - Branch String:   'dict-redis.c:359,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-redis.c:359,10'
          Dst:             i_stream_read
        - Src:             'dict-redis.c:363,28'
          Dst:             i_stream_get_error
        - Src:             'dict-redis.c:363,3'
          Dst:             redis_disconnected
        - Src:             'dict-redis.c:369,16'
          Dst:             redis_conn_input_more
        - Src:             'dict-redis.c:371,3'
          Dst:             i_panic
        - Src:             'dict-redis.c:372,3'
          Dst:             redis_disconnected
    - functionName:    redis_conn_connected
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - io_loop_stop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:381,3'
          Dst:             e_error
        - Src:             'dict-redis.c:386,3'
          Dst:             io_loop_stop
    - functionName:    redis_conn_destroy
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_disconnect_reason
        - redis_disconnected
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:181,27'
          Dst:             connection_disconnect_reason
        - Src:             'dict-redis.c:181,2'
          Dst:             redis_disconnected
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    redis_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          102
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup_printf
        - o_stream_get_error
        - o_stream_send
        - redis_append_expire
        - redis_check_transaction
        - redis_dict_get_full_key
        - redis_input_state_add
        - str_data
        - str_len
        - str_printfa
        - strlen
        - t_str_new
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:838,6'
          Dst:             redis_check_transaction
        - Src:             'dict-redis.c:841,8'
          Dst:             redis_dict_get_full_key
        - Src:             'dict-redis.c:842,12'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:843,8'
          Dst:             t_str_new
        - Src:             'dict-redis.c:845,7'
          Dst:             strlen
        - Src:             'dict-redis.c:845,25'
          Dst:             strlen
        - Src:             'dict-redis.c:844,2'
          Dst:             str_printfa
        - Src:             'dict-redis.c:846,2'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:848,2'
          Dst:             redis_append_expire
        - Src:             'dict-redis.c:849,44'
          Dst:             str_data
        - Src:             'dict-redis.c:849,59'
          Dst:             str_len
        - Src:             'dict-redis.c:849,6'
          Dst:             o_stream_send
        - Src:             'dict-redis.c:851,4'
          Dst:             o_stream_get_error
        - Src:             'dict-redis.c:850,16'
          Dst:             i_strdup_printf
    - functionName:    redis_unset
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 807
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup_printf
        - o_stream_get_error
        - o_stream_send_str
        - redis_check_transaction
        - redis_dict_get_full_key
        - redis_input_state_add
        - strlen
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:814,6'
          Dst:             redis_check_transaction
        - Src:             'dict-redis.c:817,8'
          Dst:             redis_dict_get_full_key
        - Src:             'dict-redis.c:819,10'
          Dst:             strlen
        - Src:             'dict-redis.c:818,8'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:820,6'
          Dst:             o_stream_send_str
        - Src:             'dict-redis.c:822,4'
          Dst:             o_stream_get_error
        - Src:             'dict-redis.c:821,16'
          Dst:             i_strdup_printf
        - Src:             'dict-redis.c:824,2'
          Dst:             redis_input_state_add
    - functionName:    redis_set
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup_printf
        - o_stream_get_error
        - o_stream_send
        - redis_append_expire
        - redis_check_transaction
        - redis_dict_get_full_key
        - redis_input_state_add
        - str_data
        - str_len
        - str_printfa
        - strlen
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:789,6'
          Dst:             redis_check_transaction
        - Src:             'dict-redis.c:792,8'
          Dst:             redis_dict_get_full_key
        - Src:             'dict-redis.c:793,8'
          Dst:             t_str_new
        - Src:             'dict-redis.c:795,7'
          Dst:             strlen
        - Src:             'dict-redis.c:795,25'
          Dst:             strlen
        - Src:             'dict-redis.c:794,2'
          Dst:             str_printfa
        - Src:             'dict-redis.c:796,2'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:798,2'
          Dst:             redis_append_expire
        - Src:             'dict-redis.c:799,44'
          Dst:             str_data
        - Src:             'dict-redis.c:799,59'
          Dst:             str_len
        - Src:             'dict-redis.c:799,6'
          Dst:             o_stream_send
        - Src:             'dict-redis.c:801,4'
          Dst:             o_stream_get_error
        - Src:             'dict-redis.c:800,16'
          Dst:             i_strdup_printf
    - functionName:    redis_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - o_stream_nsend_str
        - p_free_internal
        - redis_disconnected
        - redis_input_state_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:723,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:728,3'
          Dst:             redis_disconnected
        - Src:             'dict-redis.c:730,3'
          Dst:             o_stream_nsend_str
        - Src:             'dict-redis.c:732,3'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:734,2'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:735,2'
          Dst:             p_free_internal
    - functionName:    redis_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          281
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_space_i
        - i_panic
        - i_strdup
        - o_stream_nsend_str
        - p_free_internal
        - redis_dict_wait_timeout
        - redis_disconnected
        - redis_input_state_add
        - redis_wait
        - timeout_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:677,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:682,3'
          Dst:             redis_disconnected
        - Src:             'dict-redis.c:687,3'
          Dst:             i_panic
        - Src:             'dict-redis.c:689,3'
          Dst:             o_stream_nsend_str
        - Src:             'dict-redis.c:691,11'
          Dst:             array_append_space_i
        - Src:             'dict-redis.c:695,3'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:697,4'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:700,16'
          Dst:             timeout_add
        - Src:             'dict-redis.c:700,16'
          Dst:             redis_dict_wait_timeout
        - Src:             'dict-redis.c:704,4'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:707,25'
          Dst:             redis_wait
        - Src:             'dict-redis.c:707,16'
          Dst:             i_strdup
        - Src:             'dict-redis.c:713,2'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:714,2'
          Dst:             p_free_internal
    - functionName:    redis_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - connection_client_connect
        - e_error
        - i_panic
        - i_strdup
        - i_strdup_printf
        - malloc_multiply_check
        - p_malloc
        - redis_dict_auth
        - redis_dict_select_db
        - redis_wait
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:644,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:647,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-redis.c:647,8'
          Dst:             p_malloc
        - Src:             'dict-redis.c:651,6'
          Dst:             connection_client_connect
        - Src:             'dict-redis.c:652,16'
          Dst:             i_strdup_printf
        - Src:             'dict-redis.c:653,3'
          Dst:             e_error
        - Src:             'dict-redis.c:656,25'
          Dst:             redis_wait
        - Src:             'dict-redis.c:656,16'
          Dst:             i_strdup
        - Src:             'dict-redis.c:658,4'
          Dst:             redis_dict_auth
        - Src:             'dict-redis.c:661,3'
          Dst:             redis_dict_select_db
    - functionName:    redis_dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          329
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - array_count_i
        - connection_client_connect
        - connection_switch_ioloop
        - e_error
        - i_panic
        - io_loop_create
        - io_loop_destroy
        - io_loop_run
        - io_loop_set_current
        - malloc_multiply_check
        - o_stream_nsend_str
        - p_malloc
        - p_strdup
        - redis_dict_auth
        - redis_dict_get_full_key
        - redis_dict_lookup_timeout
        - redis_dict_select_db
        - redis_disconnected
        - redis_input_state_add
        - str_c
        - str_truncate
        - strlen
        - t_strdup_printf
        - timeout_add
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:576,8'
          Dst:             redis_dict_get_full_key
        - Src:             'dict-redis.c:581,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:584,22'
          Dst:             io_loop_create
        - Src:             'dict-redis.c:585,2'
          Dst:             connection_switch_ioloop
        - Src:             'dict-redis.c:588,6'
          Dst:             connection_client_connect
        - Src:             'dict-redis.c:589,3'
          Dst:             e_error
        - Src:             'dict-redis.c:591,8'
          Dst:             timeout_add
        - Src:             'dict-redis.c:591,8'
          Dst:             redis_dict_lookup_timeout
        - Src:             'dict-redis.c:595,4'
          Dst:             io_loop_run
        - Src:             'dict-redis.c:597,5'
          Dst:             redis_dict_auth
        - Src:             'dict-redis.c:601,4'
          Dst:             redis_dict_select_db
        - Src:             'dict-redis.c:603,12'
          Dst:             strlen
        - Src:             'dict-redis.c:602,10'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:604,4'
          Dst:             o_stream_nsend_str
        - Src:             'dict-redis.c:606,4'
          Dst:             str_truncate
        - Src:             'dict-redis.c:607,4'
          Dst:             redis_input_state_add
        - Src:             'dict-redis.c:609,5'
          Dst:             io_loop_run
        - Src:             'dict-redis.c:610,13'
          Dst:             array_count_i
        - Src:             'dict-redis.c:612,3'
          Dst:             timeout_remove
        - Src:             'dict-redis.c:615,2'
          Dst:             io_loop_set_current
        - Src:             'dict-redis.c:616,2'
          Dst:             connection_switch_ioloop
        - Src:             'dict-redis.c:617,2'
          Dst:             io_loop_set_current
        - Src:             'dict-redis.c:618,2'
          Dst:             io_loop_destroy
        - Src:             'dict-redis.c:625,9'
          Dst:             str_c
        - Src:             'dict-redis.c:624,14'
          Dst:             t_strdup_printf
        - Src:             'dict-redis.c:626,3'
          Dst:             redis_disconnected
        - Src:             'dict-redis.c:632,24'
          Dst:             malloc_multiply_check
        - Src:             'dict-redis.c:632,24'
          Dst:             p_malloc
        - Src:             'dict-redis.c:633,29'
          Dst:             str_c
        - Src:             'dict-redis.c:633,14'
          Dst:             p_strdup
    - functionName:    redis_dict_wait
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - redis_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:499,6'
          Dst:             array_count_i
        - Src:             'dict-redis.c:501,9'
          Dst:             redis_wait
    - functionName:    redis_dict_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_free_i
        - connection_deinit
        - connection_list_deinit
        - i_panic
        - p_free_internal
        - pool_unref
        - redis_dict_wait
        - str_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:477,6'
          Dst:             array_count_i
        - Src:             'dict-redis.c:478,3'
          Dst:             i_panic
        - Src:             'dict-redis.c:479,3'
          Dst:             redis_dict_wait
        - Src:             'dict-redis.c:481,2'
          Dst:             i_panic
        - Src:             'dict-redis.c:483,2'
          Dst:             connection_deinit
        - Src:             'dict-redis.c:484,2'
          Dst:             str_free
        - Src:             'dict-redis.c:485,2'
          Dst:             array_free_i
        - Src:             'dict-redis.c:486,2'
          Dst:             array_free_i
        - Src:             'dict-redis.c:487,2'
          Dst:             pool_unref
        - Src:             'dict-redis.c:488,2'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:489,2'
          Dst:             p_free_internal
        - Src:             'dict-redis.c:492,3'
          Dst:             connection_list_deinit
    - functionName:    redis_dict_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          132
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - connection_init_client_ip
        - connection_init_client_unix
        - connection_list_init
        - event_set_append_log_prefix
        - malloc_multiply_check
        - p_malloc
        - settings_get
        - str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:439,6'
          Dst:             settings_get
        - Src:             'dict-redis.c:445,4'
          Dst:             connection_list_init
        - Src:             'dict-redis.c:449,28'
          Dst:             malloc_multiply_check
        - Src:             'dict-redis.c:449,28'
          Dst:             p_malloc
        - Src:             'dict-redis.c:454,3'
          Dst:             connection_init_client_unix
        - Src:             'dict-redis.c:457,3'
          Dst:             connection_init_client_ip
        - Src:             'dict-redis.c:461,2'
          Dst:             event_set_append_log_prefix
        - Src:             'dict-redis.c:463,26'
          Dst:             str_new
        - Src:             'dict-redis.c:466,2'
          Dst:             array_create_i
        - Src:             'dict-redis.c:467,2'
          Dst:             array_create_i
    - functionName:    redis_settings_check
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-redis.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - net_addr2ip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-redis.c:426,6'
          Dst:             net_addr2ip
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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-dict/../../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:    dict_transaction_memory_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-transaction-memory.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-transaction-memory.c:55,11'
          Dst:             array_append_space_i
        - Src:             'dict-transaction-memory.c:57,16'
          Dst:             p_strdup
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_transaction_memory_unset
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-transaction-memory.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-transaction-memory.c:43,11'
          Dst:             array_append_space_i
        - Src:             'dict-transaction-memory.c:45,16'
          Dst:             p_strdup
    - functionName:    dict_transaction_memory_set
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-transaction-memory.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-transaction-memory.c:30,11'
          Dst:             array_append_space_i
        - Src:             'dict-transaction-memory.c:32,16'
          Dst:             p_strdup
        - Src:             'dict-transaction-memory.c:33,22'
          Dst:             p_strdup
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_transaction_memory_rollback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-transaction-memory.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-transaction-memory.c:20,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_transaction_memory_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-transaction-memory.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 13
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-transaction-memory.c:12,2'
          Dst:             array_create_i
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    dict_transaction_finished
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          133
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_add_str
        - event_send_abort
        - event_set_name
        - event_want_level
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:353,2'
          Dst:             i_panic
        - Src:             'dict.c:356,4'
          Dst:             event_add_str
        - Src:             'dict.c:357,3'
          Dst:             event_add_str
        - Src:             'dict.c:359,3'
          Dst:             event_add_str
        - Src:             'dict.c:361,3'
          Dst:             event_add_str
        - Src:             'dict.c:363,2'
          Dst:             event_set_name
        - Src:             'dict.c:364,2'
          Dst:             event_want_level
        - Src:             'dict.c:364,2'
          Dst:             e_debug
        - Src:             'dict.c:364,2'
          Dst:             event_send_abort
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_unescape_string
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          150
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - str_append_c
        - str_append_data
        - str_c
        - strlen
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:916,39'
          Dst:             strlen
        - Src:             'dict.c:916,8'
          Dst:             t_str_new
        - Src:             'dict.c:917,2'
          Dst:             str_append_data
        - Src:             'dict.c:921,4'
          Dst:             str_append_c
        - Src:             'dict.c:924,5'
          Dst:             str_append_c
        - Src:             'dict.c:928,5'
          Dst:             str_append_c
        - Src:             'dict.c:931,9'
          Dst:             str_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_escape_string
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          139
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
        - str_append_data
        - str_c
        - t_str_new
      functionUses:    3
      BranchProfiles:
        - Branch String:   'dict.c:884,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dict.c:880,8'
          Dst:             t_str_new
        - Src:             'dict.c:881,2'
          Dst:             str_append_data
        - Src:             'dict.c:886,4'
          Dst:             str_append_c
        - Src:             'dict.c:887,4'
          Dst:             str_append_c
        - Src:             'dict.c:890,4'
          Dst:             str_append_c
        - Src:             'dict.c:891,4'
          Dst:             str_append_c
        - Src:             'dict.c:894,4'
          Dst:             str_append_c
        - Src:             'dict.c:898,9'
          Dst:             str_c
    - functionName:    dict_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - dict_key_prefix_is_valid
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:852,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:852,2'
          Dst:             i_panic
        - Src:             'dict.c:853,32'
          Dst:             event_create_passthrough
        - Src:             'dict.c:857,2'
          Dst:             event_want_level
        - Src:             'dict.c:857,2'
          Dst:             e_debug
        - Src:             'dict.c:857,2'
          Dst:             event_send_abort
        - Src:             'dict.c:859,17'
          Dst:             t_push
        - Src:             'dict.c:862,4'
          Dst:             t_pop
        - Src:             'dict.c:862,4'
          Dst:             i_panic
    - functionName:    dict_key_prefix_is_valid
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          108
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - str_begins_with
        - strncmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:308,6'
          Dst:             strncmp
        - Src:             'dict.c:308,6'
          Dst:             str_begins_with
        - Src:             'dict.c:310,6'
          Dst:             strncmp
        - Src:             'dict.c:310,6'
          Dst:             str_begins_with
        - Src:             'dict.c:311,3'
          Dst:             i_panic
    - functionName:    dict_unset
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - dict_key_prefix_is_valid
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:836,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:836,2'
          Dst:             i_panic
        - Src:             'dict.c:837,32'
          Dst:             event_create_passthrough
        - Src:             'dict.c:841,2'
          Dst:             event_want_level
        - Src:             'dict.c:841,2'
          Dst:             e_debug
        - Src:             'dict.c:841,2'
          Dst:             event_send_abort
        - Src:             'dict.c:843,2'
          Dst:             t_push
        - Src:             'dict.c:845,4'
          Dst:             t_pop
        - Src:             'dict.c:845,4'
          Dst:             i_panic
    - functionName:    dict_set
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          122
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - dict_key_prefix_is_valid
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:820,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:820,2'
          Dst:             i_panic
        - Src:             'dict.c:821,32'
          Dst:             event_create_passthrough
        - Src:             'dict.c:825,2'
          Dst:             event_want_level
        - Src:             'dict.c:825,2'
          Dst:             e_debug
        - Src:             'dict.c:825,2'
          Dst:             event_send_abort
        - Src:             'dict.c:827,2'
          Dst:             t_push
        - Src:             'dict.c:829,4'
          Dst:             t_pop
        - Src:             'dict.c:829,4'
          Dst:             i_panic
    - functionName:    dict_transaction_rollback_run
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - dict_op_settings_private_free
        - dict_transaction_finished
        - event_unref
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:387,2'
          Dst:             t_push
        - Src:             'dict.c:389,4'
          Dst:             t_pop
        - Src:             'dict.c:389,4'
          Dst:             i_panic
        - Src:             'dict.c:390,2'
          Dst:             dict_transaction_finished
        - Src:             'dict.c:391,2'
          Dst:             dict_op_settings_private_free
        - Src:             'dict.c:392,2'
          Dst:             event_unref
    - functionName:    dict_op_settings_private_free
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:947,2'
          Dst:             p_free_internal
        - Src:             'dict.c:948,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_transaction_commit_async_nocallback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dict_transaction_commit_async
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:799,2'
          Dst:             dict_transaction_commit_async
    - functionName:    dict_transaction_commit_async
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          279
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - dict_commit_callback
        - dict_ref
        - dict_rollback_async_timeout
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - t_pop
        - t_push
        - timeout_add_short
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:766,2'
          Dst:             i_panic
        - Src:             'dict.c:771,22'
          Dst:             timeout_add_short
        - Src:             'dict.c:771,22'
          Dst:             dict_rollback_async_timeout
        - Src:             'dict.c:775,16'
          Dst:             pool_alloconly_create
        - Src:             'dict.c:777,3'
          Dst:             malloc_multiply_check
        - Src:             'dict.c:777,3'
          Dst:             p_malloc
        - Src:             'dict.c:783,2'
          Dst:             dict_ref
        - Src:             'dict.c:789,2'
          Dst:             t_push
        - Src:             'dict.c:790,3'
          Dst:             dict_commit_callback
        - Src:             'dict.c:792,4'
          Dst:             t_pop
        - Src:             'dict.c:792,4'
          Dst:             i_panic
    - functionName:    dict_rollback_async_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - dict_transaction_rollback_run
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:398,2'
          Dst:             timeout_remove
        - Src:             'dict.c:399,2'
          Dst:             dict_transaction_rollback_run
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    dict_transaction_commit_async_noop_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_ref
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 216
      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:             'dict.c:213,2'
          Dst:             i_panic
    - functionName:    dict_commit_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - dict_commit_async_timeout
        - i_panic
        - p_strdup
        - timeout_add_short
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:426,2'
          Dst:             i_panic
        - Src:             'dict.c:429,23'
          Dst:             p_strdup
        - Src:             'dict.c:430,13'
          Dst:             timeout_add_short
        - Src:             'dict.c:430,13'
          Dst:             dict_commit_async_timeout
        - Src:             'dict.c:432,3'
          Dst:             dict_commit_async_timeout
    - functionName:    dict_commit_async_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          163
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - dict_op_settings_private_free
        - dict_post_api_callback
        - dict_pre_api_callback
        - dict_transaction_finished
        - dict_unref
        - e_error
        - event_unref
        - pool_unref
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:406,2'
          Dst:             timeout_remove
        - Src:             'dict.c:407,2'
          Dst:             dict_pre_api_callback
        - Src:             'dict.c:411,3'
          Dst:             e_error
        - Src:             'dict.c:412,2'
          Dst:             dict_post_api_callback
        - Src:             'dict.c:414,2'
          Dst:             dict_transaction_finished
        - Src:             'dict.c:415,2'
          Dst:             dict_op_settings_private_free
        - Src:             'dict.c:416,2'
          Dst:             event_unref
        - Src:             'dict.c:417,2'
          Dst:             dict_unref
        - Src:             'dict.c:418,2'
          Dst:             pool_unref
    - functionName:    dict_pre_api_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_set_current
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:324,3'
          Dst:             io_loop_set_current
    - functionName:    dict_post_api_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_set_current
        - io_loop_stop
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:331,3'
          Dst:             io_loop_set_current
        - Src:             'dict.c:332,3'
          Dst:             io_loop_stop
    - functionName:    dict_unref
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:225,2'
          Dst:             i_panic
        - Src:             'dict.c:227,3'
          Dst:             t_push
        - Src:             'dict.c:229,5'
          Dst:             t_pop
        - Src:             'dict.c:229,5'
          Dst:             i_panic
        - Src:             'dict.c:230,3'
          Dst:             event_create_passthrough
        - Src:             'dict.c:230,3'
          Dst:             event_want_level
        - Src:             'dict.c:230,3'
          Dst:             e_debug
        - Src:             'dict.c:230,3'
          Dst:             event_send_abort
        - Src:             'dict.c:232,3'
          Dst:             event_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_transaction_commit_sync_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:716,23'
          Dst:             i_strdup
    - functionName:    dict_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - dict_transaction_rollback_run
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:810,2'
          Dst:             i_panic
        - Src:             'dict.c:814,2'
          Dst:             dict_transaction_rollback_run
    - functionName:    dict_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          275
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - dict_commit_callback
        - dict_ref
        - dict_transaction_rollback
        - i_panic
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - pool_alloconly_create
        - t_pop
        - t_push
        - t_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:726,14'
          Dst:             t_strdup
        - Src:             'dict.c:727,3'
          Dst:             dict_transaction_rollback
        - Src:             'dict.c:733,16'
          Dst:             pool_alloconly_create
        - Src:             'dict.c:735,3'
          Dst:             malloc_multiply_check
        - Src:             'dict.c:735,3'
          Dst:             p_malloc
        - Src:             'dict.c:738,2'
          Dst:             i_panic
        - Src:             'dict.c:743,2'
          Dst:             dict_ref
        - Src:             'dict.c:749,2'
          Dst:             t_push
        - Src:             'dict.c:750,3'
          Dst:             dict_commit_callback
        - Src:             'dict.c:752,4'
          Dst:             t_pop
        - Src:             'dict.c:752,4'
          Dst:             i_panic
        - Src:             'dict.c:753,13'
          Dst:             t_strdup
        - Src:             'dict.c:754,2'
          Dst:             p_free_internal
    - functionName:    dict_transaction_set_non_atomic
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 702
      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:    dict_transaction_set_timestamp
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          167
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:684,2'
          Dst:             i_panic
        - Src:             'dict.c:685,2'
          Dst:             i_panic
        - Src:             'dict.c:686,2'
          Dst:             i_panic
        - Src:             'dict.c:689,32'
          Dst:             event_create_passthrough
        - Src:             'dict.c:692,2'
          Dst:             event_want_level
        - Src:             'dict.c:692,2'
          Dst:             e_debug
        - Src:             'dict.c:692,2'
          Dst:             event_send_abort
        - Src:             'dict.c:694,42'
          Dst:             t_push
        - Src:             'dict.c:696,4'
          Dst:             t_pop
        - Src:             'dict.c:696,4'
          Dst:             i_panic
    - functionName:    dict_transaction_set_hide_log_values
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:672,48'
          Dst:             t_push
        - Src:             'dict.c:674,4'
          Dst:             t_pop
        - Src:             'dict.c:674,4'
          Dst:             i_panic
    - functionName:    dict_transaction_begin
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - dict_event_create
        - dict_op_settings_dup
        - e_debug
        - event_add_str
        - event_send_abort
        - event_set_name
        - event_want_level
        - guid_128_generate
        - guid_128_to_string
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:647,7'
          Dst:             t_push
        - Src:             'dict.c:649,4'
          Dst:             t_pop
        - Src:             'dict.c:649,4'
          Dst:             i_panic
        - Src:             'dict.c:658,15'
          Dst:             dict_event_create
        - Src:             'dict.c:659,2'
          Dst:             dict_op_settings_dup
        - Src:             'dict.c:660,2'
          Dst:             guid_128_generate
        - Src:             'dict.c:661,36'
          Dst:             guid_128_to_string
        - Src:             'dict.c:661,2'
          Dst:             event_add_str
        - Src:             'dict.c:662,2'
          Dst:             event_set_name
        - Src:             'dict.c:663,2'
          Dst:             event_want_level
        - Src:             'dict.c:663,2'
          Dst:             e_debug
        - Src:             'dict.c:663,2'
          Dst:             event_send_abort
    - functionName:    dict_event_create
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_str
        - event_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:439,24'
          Dst:             event_create
        - Src:             'dict.c:441,3'
          Dst:             event_add_str
    - functionName:    dict_op_settings_dup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:938,21'
          Dst:             i_strdup
        - Src:             'dict.c:939,21'
          Dst:             i_strdup
    - functionName:    dict_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          203
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - dict_op_settings_private_free
        - e_debug
        - event_add_int
        - event_add_str
        - event_send_abort
        - event_set_name
        - event_unref
        - event_want_level
        - i_panic
        - t_pop_pass_str
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:613,2'
          Dst:             i_panic
        - Src:             'dict.c:619,2'
          Dst:             t_push
        - Src:             'dict.c:621,4'
          Dst:             t_pop_pass_str
        - Src:             'dict.c:621,4'
          Dst:             i_panic
        - Src:             'dict.c:622,2'
          Dst:             dict_op_settings_private_free
        - Src:             'dict.c:624,2'
          Dst:             event_add_int
        - Src:             'dict.c:625,2'
          Dst:             event_set_name
        - Src:             'dict.c:628,3'
          Dst:             event_add_str
        - Src:             'dict.c:629,3'
          Dst:             event_want_level
        - Src:             'dict.c:629,3'
          Dst:             e_debug
        - Src:             'dict.c:629,3'
          Dst:             event_send_abort
        - Src:             'dict.c:632,4'
          Dst:             event_add_str
        - Src:             'dict.c:633,3'
          Dst:             event_want_level
        - Src:             'dict.c:633,3'
          Dst:             e_debug
        - Src:             'dict.c:633,3'
          Dst:             event_send_abort
        - Src:             'dict.c:636,2'
          Dst:             event_unref
    - functionName:    dict_iterate_has_more
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 598
      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:    dict_iterate_set_limit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_iterate_set_async_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_iterate_values
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          163
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:558,3'
          Dst:             event_want_level
        - Src:             'dict.c:558,3'
          Dst:             e_debug
        - Src:             'dict.c:558,3'
          Dst:             event_send_abort
        - Src:             'dict.c:565,2'
          Dst:             t_push
        - Src:             'dict.c:567,4'
          Dst:             t_pop
        - Src:             'dict.c:567,4'
          Dst:             i_panic
        - Src:             'dict.c:575,3'
          Dst:             i_panic
    - functionName:    dict_iterate
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dict_iterate_values
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:544,7'
          Dst:             dict_iterate_values
    - functionName:    dict_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          159
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - dict_event_create
        - dict_key_prefix_is_valid
        - dict_op_settings_dup
        - e_debug
        - event_add_str
        - event_send_abort
        - event_set_name
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:516,2'
          Dst:             i_panic
        - Src:             'dict.c:517,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:517,2'
          Dst:             i_panic
        - Src:             'dict.c:522,9'
          Dst:             t_push
        - Src:             'dict.c:524,4'
          Dst:             t_pop
        - Src:             'dict.c:524,4'
          Dst:             i_panic
        - Src:             'dict.c:528,15'
          Dst:             dict_event_create
        - Src:             'dict.c:530,2'
          Dst:             dict_op_settings_dup
        - Src:             'dict.c:532,2'
          Dst:             event_add_str
        - Src:             'dict.c:533,2'
          Dst:             event_set_name
        - Src:             'dict.c:534,2'
          Dst:             event_want_level
        - Src:             'dict.c:534,2'
          Dst:             e_debug
        - Src:             'dict.c:534,2'
          Dst:             event_send_abort
    - functionName:    dict_lookup_callback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          61
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - dict_lookup_finished
        - dict_post_api_callback
        - dict_pre_api_callback
        - dict_unref
        - event_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:373,2'
          Dst:             dict_pre_api_callback
        - Src:             'dict.c:375,2'
          Dst:             dict_post_api_callback
        - Src:             'dict.c:376,2'
          Dst:             dict_lookup_finished
        - Src:             'dict.c:377,2'
          Dst:             event_unref
        - Src:             'dict.c:379,2'
          Dst:             dict_unref
        - Src:             'dict.c:380,2'
          Dst:             p_free_internal
    - functionName:    dict_lookup_finished
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - e_debug
        - event_add_str
        - event_find_field_recursive_str
        - event_send_abort
        - event_set_name
        - event_want_level
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:338,2'
          Dst:             i_panic
        - Src:             'dict.c:339,20'
          Dst:             event_find_field_recursive_str
        - Src:             'dict.c:341,3'
          Dst:             event_add_str
        - Src:             'dict.c:343,3'
          Dst:             event_add_str
        - Src:             'dict.c:344,2'
          Dst:             event_set_name
        - Src:             'dict.c:345,2'
          Dst:             event_want_level
        - Src:             'dict.c:345,2'
          Dst:             e_debug
        - Src:             'dict.c:345,2'
          Dst:             event_send_abort
    - functionName:    dict_lookup_async
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          165
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - dict_event_create
        - dict_key_prefix_is_valid
        - dict_lookup
        - dict_lookup_callback
        - dict_ref
        - e_debug
        - event_add_str
        - event_send_abort
        - event_want_level
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_datastack_create
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:483,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:483,2'
          Dst:             i_panic
        - Src:             'dict.c:489,39'
          Dst:             pool_datastack_create
        - Src:             'dict.c:489,16'
          Dst:             dict_lookup
        - Src:             'dict.c:497,3'
          Dst:             malloc_multiply_check
        - Src:             'dict.c:497,3'
          Dst:             p_malloc
        - Src:             'dict.c:499,2'
          Dst:             dict_ref
        - Src:             'dict.c:502,16'
          Dst:             dict_event_create
        - Src:             'dict.c:503,2'
          Dst:             event_add_str
        - Src:             'dict.c:504,2'
          Dst:             event_want_level
        - Src:             'dict.c:504,2'
          Dst:             e_debug
        - Src:             'dict.c:504,2'
          Dst:             event_send_abort
        - Src:             'dict.c:505,2'
          Dst:             t_push
        - Src:             'dict.c:506,3'
          Dst:             dict_lookup_callback
        - Src:             'dict.c:507,4'
          Dst:             t_pop
        - Src:             'dict.c:507,4'
          Dst:             i_panic
    - functionName:    dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dict_lookup_values
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:450,12'
          Dst:             dict_lookup_values
    - functionName:    dict_lookup_values
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - dict_event_create
        - dict_key_prefix_is_valid
        - dict_lookup_finished
        - e_debug
        - event_add_str
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:462,24'
          Dst:             dict_event_create
        - Src:             'dict.c:464,2'
          Dst:             dict_key_prefix_is_valid
        - Src:             'dict.c:464,2'
          Dst:             i_panic
        - Src:             'dict.c:468,2'
          Dst:             event_want_level
        - Src:             'dict.c:468,2'
          Dst:             e_debug
        - Src:             'dict.c:468,2'
          Dst:             event_send_abort
        - Src:             'dict.c:469,2'
          Dst:             event_add_str
        - Src:             'dict.c:473,2'
          Dst:             dict_lookup_finished
        - Src:             'dict.c:474,2'
          Dst:             event_unref
    - functionName:    dict_expire_scan
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - t_pop_pass_str
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:300,2'
          Dst:             t_push
        - Src:             'dict.c:302,4'
          Dst:             t_pop_pass_str
        - Src:             'dict.c:302,4'
          Dst:             i_panic
    - functionName:    dict_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - io_loop_move_timeout
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:280,16'
          Dst:             io_loop_move_timeout
        - Src:             'dict.c:285,3'
          Dst:             t_push
        - Src:             'dict.c:287,5'
          Dst:             t_pop
        - Src:             'dict.c:287,5'
          Dst:             i_panic
    - functionName:    dict_wait
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          126
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - dict_commit_async_timeout
        - dict_rollback_async_timeout
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:254,2'
          Dst:             event_want_level
        - Src:             'dict.c:254,2'
          Dst:             e_debug
        - Src:             'dict.c:254,2'
          Dst:             event_send_abort
        - Src:             'dict.c:255,28'
          Dst:             t_push
        - Src:             'dict.c:257,4'
          Dst:             t_pop
        - Src:             'dict.c:257,4'
          Dst:             i_panic
        - Src:             'dict.c:260,3'
          Dst:             dict_commit_async_timeout
        - Src:             'dict.c:264,3'
          Dst:             dict_rollback_async_timeout
    - functionName:    dict_have_async_operations
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - dict_have_async_operations
        - dict_unref
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:244,2'
          Dst:             dict_have_async_operations
        - Src:             'dict.c:244,2'
          Dst:             i_panic
        - Src:             'dict.c:245,2'
          Dst:             i_panic
        - Src:             'dict.c:246,2'
          Dst:             dict_unref
    - functionName:    dict_init_filter_auto
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          231
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - dict_driver_lookup
        - e_debug
        - event_add_category
        - event_add_str
        - event_create
        - event_create_passthrough
        - event_send_abort
        - event_set_append_log_prefix
        - event_unref
        - event_want_level
        - i_panic
        - pool_unref
        - settings_event_add_list_filter_name
        - settings_get
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:172,10'
          Dst:             event_create
        - Src:             'dict.c:173,2'
          Dst:             event_add_str
        - Src:             'dict.c:174,2'
          Dst:             settings_event_add_list_filter_name
        - Src:             'dict.c:175,6'
          Dst:             settings_get
        - Src:             'dict.c:177,3'
          Dst:             event_unref
        - Src:             'dict.c:181,16'
          Dst:             dict_driver_lookup
        - Src:             'dict.c:183,14'
          Dst:             t_strdup_printf
        - Src:             'dict.c:185,3'
          Dst:             event_unref
        - Src:             'dict.c:186,3'
          Dst:             pool_unref
        - Src:             'dict.c:190,2'
          Dst:             event_add_category
        - Src:             'dict.c:191,2'
          Dst:             event_add_str
        - Src:             'dict.c:192,37'
          Dst:             t_strdup_printf
        - Src:             'dict.c:192,2'
          Dst:             event_set_append_log_prefix
        - Src:             'dict.c:195,14'
          Dst:             t_strdup_printf
        - Src:             'dict.c:197,3'
          Dst:             event_unref
        - Src:             'dict.c:198,3'
          Dst:             pool_unref
        - Src:             'dict.c:201,2'
          Dst:             i_panic
        - Src:             'dict.c:204,2'
          Dst:             event_create_passthrough
        - Src:             'dict.c:204,2'
          Dst:             event_want_level
        - Src:             'dict.c:204,2'
          Dst:             e_debug
        - Src:             'dict.c:204,2'
          Dst:             event_send_abort
        - Src:             'dict.c:207,2'
          Dst:             pool_unref
    - functionName:    dict_driver_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 83
      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:             'dict.c:78,2'
          Dst:             i_memcpy
        - Src:             'dict.c:79,7'
          Dst:             strcmp
    - functionName:    dict_settings_check
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    dict_init_auto
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          178
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - dict_init_filter_auto
        - i_panic
        - pool_unref
        - settings_get
        - t_strdup
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:135,2'
          Dst:             i_panic
        - Src:             'dict.c:137,6'
          Dst:             settings_get
        - Src:             'dict.c:140,6'
          Dst:             array_is_created_i
        - Src:             'dict.c:142,3'
          Dst:             pool_unref
        - Src:             'dict.c:146,12'
          Dst:             array_idx_i
        - Src:             'dict.c:146,3'
          Dst:             t_strdup
        - Src:             'dict.c:147,6'
          Dst:             array_count_i
        - Src:             'dict.c:150,4'
          Dst:             array_idx_i
        - Src:             'dict.c:151,14'
          Dst:             t_strdup_printf
        - Src:             'dict.c:155,3'
          Dst:             pool_unref
        - Src:             'dict.c:159,12'
          Dst:             dict_init_filter_auto
        - Src:             'dict.c:160,2'
          Dst:             pool_unref
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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-dict/../../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:    dict_driver_unregister
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          52
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_free_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:108,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'dict.c:109,3'
          Dst:             i_unreached
        - Src:             'dict.c:110,2'
          Dst:             array_delete_i
        - Src:             'dict.c:112,6'
          Dst:             array_count_i
        - Src:             'dict.c:113,3'
          Dst:             array_free_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-dict/../../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:    dict_driver_register
      functionSourceFile: '/src/dovecot/src/lib-dict/dict.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - dict_driver_lookup
        - i_fatal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict.c:94,7'
          Dst:             array_is_created_i
        - Src:             'dict.c:95,3'
          Dst:             array_create_i
        - Src:             'dict.c:97,6'
          Dst:             dict_driver_lookup
        - Src:             'dict.c:98,3'
          Dst:             i_fatal
        - Src:             'dict.c:101,2'
          Dst:             array_append_i
    - functionName:    dns_match_wildcard
      functionSourceFile: '/src/dovecot/src/lib-dns/dns-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          169
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - dns_tolower
        - i_panic
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dns-util.c:71,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dns-util.c:68,2'
          Dst:             i_panic
        - Src:             'dns-util.c:73,11'
          Dst:             strchr
        - Src:             'dns-util.c:80,8'
          Dst:             dns_tolower
        - Src:             'dns-util.c:80,30'
          Dst:             dns_tolower
        - Src:             'dns-util.c:84,9'
          Dst:             dns_tolower
        - Src:             'dns-util.c:84,31'
          Dst:             dns_tolower
    - functionName:    dns_tolower
      functionSourceFile: '/src/dovecot/src/lib-dns/./dns-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 6
      functionLinenumberEnd: 9
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strchr_ba
      functionSourceFile: '/src/dovecot/src/lib-dns/dns-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 12
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_compare_labels
      functionSourceFile: '/src/dovecot/src/lib-dns/dns-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          211
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - dns_ncompare
        - dns_tolower
        - strchr_ba
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-util.c:41,26'
          Dst:             strlen
        - Src:             'dns-util.c:42,26'
          Dst:             strlen
        - Src:             'dns-util.c:48,13'
          Dst:             strchr_ba
        - Src:             'dns-util.c:49,13'
          Dst:             strchr_ba
        - Src:             'dns-util.c:55,11'
          Dst:             dns_ncompare
        - Src:             'dns-util.c:58,10'
          Dst:             dns_ncompare
        - Src:             'dns-util.c:63,9'
          Dst:             dns_tolower
        - Src:             'dns-util.c:63,33'
          Dst:             dns_tolower
    - functionName:    dns_ncompare
      functionSourceFile: '/src/dovecot/src/lib-dns/dns-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          152
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - dns_tolower
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-util.c:24,6'
          Dst:             dns_tolower
        - Src:             'dns-util.c:24,25'
          Dst:             dns_tolower
        - Src:             'dns-util.c:27,9'
          Dst:             dns_tolower
        - Src:             'dns-util.c:27,27'
          Dst:             dns_tolower
    - functionName:    dns_compare
      functionSourceFile: '/src/dovecot/src/lib-dns/dns-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_ncompare
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-util.c:32,9'
          Dst:             dns_ncompare
    - functionName:    dns_lookup_timeout
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_client_disconnect
        - t_strdup_printf
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:276,29'
          Dst:             timeval_diff_msecs
        - Src:             'dns-lookup.c:281,40'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:281,2'
          Dst:             dns_client_disconnect
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    dns_client_disconnect
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - connection_disconnect
        - dns_lookup_callback
        - dns_lookup_free
        - e_debug
        - event_send_abort
        - event_want_level
        - timeout_remove
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:165,3'
          Dst:             timeout_remove
        - Src:             'dns-lookup.c:166,3'
          Dst:             connection_disconnect
        - Src:             'dns-lookup.c:169,3'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:169,3'
          Dst:             e_debug
        - Src:             'dns-lookup.c:169,3'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:182,3'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:183,3'
          Dst:             dns_lookup_free
    - functionName:    dns_lookup_callback
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          246
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - dns_client_cache_entry
        - dns_lookup_save_msecs
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:128,3'
          Dst:             event_create_passthrough
        - Src:             'dns-lookup.c:132,3'
          Dst:             dns_client_cache_entry
        - Src:             'dns-lookup.c:135,2'
          Dst:             dns_lookup_save_msecs
        - Src:             'dns-lookup.c:138,3'
          Dst:             i_panic
        - Src:             'dns-lookup.c:141,3'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:141,3'
          Dst:             e_debug
        - Src:             'dns-lookup.c:141,3'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:145,3'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:145,3'
          Dst:             e_debug
        - Src:             'dns-lookup.c:145,3'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:147,3'
          Dst:             i_panic
    - functionName:    dns_lookup_free
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          136
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - dns_client_deinit
        - dns_client_idle_timeout
        - event_unref
        - pool_unref
        - timeout_add_to
        - timeout_remove
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:394,2'
          Dst:             timeout_remove
        - Src:             'dns-lookup.c:397,4'
          Dst:             dns_client_deinit
        - Src:             'dns-lookup.c:400,22'
          Dst:             timeout_add_to
        - Src:             'dns-lookup.c:400,22'
          Dst:             dns_client_idle_timeout
        - Src:             'dns-lookup.c:405,2'
          Dst:             event_unref
        - Src:             'dns-lookup.c:406,2'
          Dst:             pool_unref
    - functionName:    dns_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - connection_list_deinit
        - dns_client_cache_deinit
        - dns_client_disconnect
        - i_panic
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:511,2'
          Dst:             dns_client_disconnect
        - Src:             'dns-lookup.c:514,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:515,2'
          Dst:             connection_list_deinit
        - Src:             'dns-lookup.c:517,2'
          Dst:             dns_client_cache_deinit
        - Src:             'dns-lookup.c:519,2'
          Dst:             p_free_internal
        - Src:             'dns-lookup.c:520,2'
          Dst:             p_free_internal
    - functionName:    dns_client_idle_timeout
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - dns_client_disconnect
        - i_panic
        - o_stream_nsend_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:380,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:383,2'
          Dst:             o_stream_nsend_str
        - Src:             'dns-lookup.c:384,2'
          Dst:             dns_client_disconnect
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    dns_lookup_save_msecs
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_gettimeofday
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:241,2'
          Dst:             i_gettimeofday
        - Src:             'dns-lookup.c:243,9'
          Dst:             timeval_diff_msecs
    - functionName:    dns_client_send_request
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dns_client_connect
        - dns_client_disconnect
        - o_stream_get_error
        - o_stream_send
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:541,7'
          Dst:             dns_client_connect
        - Src:             'dns-lookup.c:545,53'
          Dst:             strlen
        - Src:             'dns-lookup.c:545,13'
          Dst:             o_stream_send
        - Src:             'dns-lookup.c:548,9'
          Dst:             o_stream_get_error
        - Src:             'dns-lookup.c:546,14'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:549,3'
          Dst:             dns_client_disconnect
    - functionName:    dns_client_connect
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - connection_client_connect
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:527,12'
          Dst:             connection_client_connect
        - Src:             'dns-lookup.c:529,14'
          Dst:             t_strdup_printf
    - functionName:    dns_lookup_callback_cached
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_lookup_callback
        - dns_lookup_free
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:155,2'
          Dst:             timeout_remove
        - Src:             'dns-lookup.c:156,2'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:157,2'
          Dst:             dns_lookup_free
    - functionName:    dns_cache_lookup_free
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:63,2'
          Dst:             p_free_internal
        - Src:             'dns-lookup.c:64,2'
          Dst:             p_free_internal
    - functionName:    dns_client_cache_callback
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - dns_cache_lookup_free
        - e_debug
        - event_send_abort
        - event_want_level
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:71,3'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:71,3'
          Dst:             e_debug
        - Src:             'dns-lookup.c:71,3'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:75,2'
          Dst:             dns_cache_lookup_free
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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-dns-client/../../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-dns-client/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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-dns-client/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    dns_lookup_input_args
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_get_i
        - net_addr2ip
        - p_strdup
        - str_to_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:212,6'
          Dst:             str_to_int
        - Src:             'dns-lookup.c:220,18'
          Dst:             p_strdup
        - Src:             'dns-lookup.c:225,2'
          Dst:             array_create_i
        - Src:             'dns-lookup.c:227,24'
          Dst:             array_append_space_i
        - Src:             'dns-lookup.c:228,7'
          Dst:             net_addr2ip
        - Src:             'dns-lookup.c:231,16'
          Dst:             array_get_i
    - functionName:    dns_client_input_args
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          167
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - dns_client_disconnect
        - dns_lookup_callback
        - dns_lookup_free
        - dns_lookup_input_args
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:255,33'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:255,3'
          Dst:             dns_client_disconnect
        - Src:             'dns-lookup.c:260,6'
          Dst:             dns_lookup_input_args
        - Src:             'dns-lookup.c:261,33'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:261,3'
          Dst:             dns_client_disconnect
        - Src:             'dns-lookup.c:267,2'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:269,2'
          Dst:             dns_lookup_free
    - functionName:    dns_client_connected
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_client_destroy
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connection_deinit
        - connection_disconnect_reason
        - dns_client_deinit
        - dns_client_disconnect
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:197,32'
          Dst:             connection_disconnect_reason
        - Src:             'dns-lookup.c:197,2'
          Dst:             dns_client_disconnect
        - Src:             'dns-lookup.c:199,2'
          Dst:             timeout_remove
        - Src:             'dns-lookup.c:200,2'
          Dst:             connection_deinit
        - Src:             'dns-lookup.c:204,3'
          Dst:             dns_client_deinit
    - functionName:    dns_client_has_pending_queries
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 680
      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:    dns_client_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_client_switch_ioloop_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:675,2'
          Dst:             dns_client_switch_ioloop_to
    - functionName:    dns_client_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 663
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - connection_switch_ioloop_to
        - dns_lookup_switch_ioloop_real
        - io_loop_move_timeout
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:666,2'
          Dst:             connection_switch_ioloop_to
        - Src:             'dns-lookup.c:667,20'
          Dst:             io_loop_move_timeout
        - Src:             'dns-lookup.c:670,3'
          Dst:             dns_lookup_switch_ioloop_real
    - functionName:    dns_lookup_switch_ioloop_real
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_move_timeout_to
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:433,16'
          Dst:             io_loop_move_timeout_to
    - functionName:    dns_client_lookup_common
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          306
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - dns_client_cache_lookup
        - dns_client_send_request
        - dns_lookup_callback
        - dns_lookup_callback_cached
        - dns_lookup_create
        - dns_lookup_free
        - dns_lookup_timeout
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - pool_alloconly_create
        - t_strdup_printf
        - timeout_add_short_to
        - timeout_add_to
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:565,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:566,8'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:568,16'
          Dst:             pool_alloconly_create
        - Src:             'dns-lookup.c:569,11'
          Dst:             dns_lookup_create
        - Src:             'dns-lookup.c:572,3'
          Dst:             event_create_passthrough
        - Src:             'dns-lookup.c:574,2'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:574,2'
          Dst:             e_debug
        - Src:             'dns-lookup.c:574,2'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:576,6'
          Dst:             dns_client_cache_lookup
        - Src:             'dns-lookup.c:579,16'
          Dst:             timeout_add_short_to
        - Src:             'dns-lookup.c:579,16'
          Dst:             dns_lookup_callback_cached
        - Src:             'dns-lookup.c:585,13'
          Dst:             dns_client_send_request
        - Src:             'dns-lookup.c:588,10'
          Dst:             dns_client_send_request
        - Src:             'dns-lookup.c:592,4'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:593,4'
          Dst:             dns_lookup_free
        - Src:             'dns-lookup.c:599,16'
          Dst:             timeout_add_to
        - Src:             'dns-lookup.c:599,16'
          Dst:             dns_lookup_timeout
        - Src:             'dns-lookup.c:603,2'
          Dst:             timeout_remove
    - functionName:    dns_lookup_create
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          116
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - i_gettimeofday
        - malloc_multiply_check
        - p_malloc
        - p_strdup_printf
        - t_strconcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:295,30'
          Dst:             malloc_multiply_check
        - Src:             'dns-lookup.c:295,30'
          Dst:             p_malloc
        - Src:             'dns-lookup.c:298,2'
          Dst:             i_gettimeofday
        - Src:             'dns-lookup.c:306,19'
          Dst:             event_create
        - Src:             'dns-lookup.c:308,19'
          Dst:             event_create
        - Src:             'dns-lookup.c:309,3'
          Dst:             event_add_category
        - Src:             'dns-lookup.c:311,22'
          Dst:             p_strdup_printf
        - Src:             'dns-lookup.c:314,9'
          Dst:             t_strconcat
        - Src:             'dns-lookup.c:313,2'
          Dst:             event_set_append_log_prefix
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    dns_client_cache_refresh
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          172
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - dns_cache_lookup_free
        - dns_client_cache_callback
        - dns_client_lookup
        - dns_client_lookup_ptr
        - e_debug
        - event_send_abort
        - event_want_level
        - i_strdup
        - i_unreached
        - malloc_multiply_check
        - net_addr2ip
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:86,7'
          Dst:             net_addr2ip
        - Src:             'dns-lookup.c:87,4'
          Dst:             i_unreached
        - Src:             'dns-lookup.c:88,9'
          Dst:             malloc_multiply_check
        - Src:             'dns-lookup.c:88,9'
          Dst:             p_malloc
        - Src:             'dns-lookup.c:89,14'
          Dst:             i_strdup
        - Src:             'dns-lookup.c:91,7'
          Dst:             dns_client_lookup_ptr
        - Src:             'dns-lookup.c:91,7'
          Dst:             dns_client_cache_callback
        - Src:             'dns-lookup.c:94,4'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:94,4'
          Dst:             e_debug
        - Src:             'dns-lookup.c:94,4'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:97,4'
          Dst:             dns_cache_lookup_free
        - Src:             'dns-lookup.c:100,9'
          Dst:             malloc_multiply_check
        - Src:             'dns-lookup.c:100,9'
          Dst:             p_malloc
        - Src:             'dns-lookup.c:101,14'
          Dst:             i_strdup
        - Src:             'dns-lookup.c:103,7'
          Dst:             dns_client_lookup
        - Src:             'dns-lookup.c:103,7'
          Dst:             dns_client_cache_callback
        - Src:             'dns-lookup.c:106,4'
          Dst:             event_want_level
        - Src:             'dns-lookup.c:106,4'
          Dst:             e_debug
        - Src:             'dns-lookup.c:106,4'
          Dst:             event_send_abort
        - Src:             'dns-lookup.c:109,4'
          Dst:             dns_cache_lookup_free
        - Src:             'dns-lookup.c:112,3'
          Dst:             i_unreached
    - functionName:    dns_client_lookup_ptr
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - dns_client_lookup_common
        - i_panic
        - net_ip2addr
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:653,2'
          Dst:             t_push
        - Src:             'dns-lookup.c:654,50'
          Dst:             net_ip2addr
        - Src:             'dns-lookup.c:654,9'
          Dst:             dns_client_lookup_common
        - Src:             'dns-lookup.c:657,4'
          Dst:             t_pop
        - Src:             'dns-lookup.c:657,4'
          Dst:             i_panic
    - functionName:    dns_client_lookup
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          152
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - dns_client_lookup_common
        - dns_lookup_callback
        - dns_lookup_create
        - dns_lookup_free
        - i_panic
        - net_gethostbyname
        - net_gethosterror
        - p_memdup
        - pool_alloconly_create
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:617,17'
          Dst:             pool_alloconly_create
        - Src:             'dns-lookup.c:618,31'
          Dst:             dns_lookup_create
        - Src:             'dns-lookup.c:625,30'
          Dst:             net_gethostbyname
        - Src:             'dns-lookup.c:629,7'
          Dst:             net_gethosterror
        - Src:             'dns-lookup.c:628,5'
          Dst:             t_strdup_printf
        - Src:             'dns-lookup.c:634,5'
          Dst:             p_memdup
        - Src:             'dns-lookup.c:636,3'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:637,3'
          Dst:             dns_lookup_free
        - Src:             'dns-lookup.c:640,2'
          Dst:             t_push
        - Src:             'dns-lookup.c:641,9'
          Dst:             dns_client_lookup_common
        - Src:             'dns-lookup.c:643,4'
          Dst:             t_pop
        - Src:             'dns-lookup.c:643,4'
          Dst:             i_panic
    - functionName:    dns_client_init
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          185
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - connection_init_client_unix
        - connection_list_init
        - dns_client_cache_init
        - dns_client_cache_refresh
        - event_add_category
        - i_panic
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - pool_unref
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:482,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:483,6'
          Dst:             settings_get
        - Src:             'dns-lookup.c:486,11'
          Dst:             malloc_multiply_check
        - Src:             'dns-lookup.c:486,11'
          Dst:             p_malloc
        - Src:             'dns-lookup.c:489,18'
          Dst:             connection_list_init
        - Src:             'dns-lookup.c:490,17'
          Dst:             i_strdup
        - Src:             'dns-lookup.c:493,2'
          Dst:             connection_init_client_unix
        - Src:             'dns-lookup.c:494,2'
          Dst:             event_add_category
        - Src:             'dns-lookup.c:496,19'
          Dst:             dns_client_cache_init
        - Src:             'dns-lookup.c:496,19'
          Dst:             dns_client_cache_refresh
        - Src:             'dns-lookup.c:499,2'
          Dst:             pool_unref
    - functionName:    dns_lookup_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_lookup_switch_ioloop_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:448,2'
          Dst:             dns_lookup_switch_ioloop_to
    - functionName:    dns_lookup_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dns_client_switch_ioloop_to
        - dns_lookup_switch_ioloop_real
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:441,3'
          Dst:             dns_client_switch_ioloop_to
        - Src:             'dns-lookup.c:443,3'
          Dst:             dns_lookup_switch_ioloop_real
    - functionName:    dns_lookup_abort
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - dns_client_deinit
        - dns_lookup_save_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:419,3'
          Dst:             dns_client_deinit
        - Src:             'dns-lookup.c:421,3'
          Dst:             dns_lookup_save_msecs
    - functionName:    dns_lookup_ptr
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - dns_client_init_handle_failure
        - dns_client_lookup_ptr
        - i_panic
        - net_ip2addr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:368,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:370,9'
          Dst:             net_ip2addr
        - Src:             'dns-lookup.c:369,6'
          Dst:             dns_client_init_handle_failure
        - Src:             'dns-lookup.c:374,9'
          Dst:             dns_client_lookup_ptr
    - functionName:    dns_client_init_handle_failure
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dns_client_init
        - dns_lookup_callback
        - dns_lookup_create
        - dns_lookup_free
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:328,12'
          Dst:             dns_client_init
        - Src:             'dns-lookup.c:330,17'
          Dst:             pool_alloconly_create
        - Src:             'dns-lookup.c:331,35'
          Dst:             dns_lookup_create
        - Src:             'dns-lookup.c:337,3'
          Dst:             dns_lookup_callback
        - Src:             'dns-lookup.c:338,3'
          Dst:             dns_lookup_free
    - functionName:    dns_lookup
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-lookup.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - dns_client_init_handle_failure
        - dns_client_lookup
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-lookup.c:348,12'
          Dst:             dns_client_init_handle_failure
        - Src:             'dns-lookup.c:352,2'
          Dst:             i_panic
        - Src:             'dns-lookup.c:356,9'
          Dst:             dns_client_lookup
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_str_is_atom
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          141
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_arg_atom_equals
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_arg_get_atom
        - strcasecmp
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:138,7'
          Dst:             imap_arg_get_atom
        - Src:             'imap-arg.c:140,9'
          Dst:             strcasecmp
    - functionName:    imap_arg_get_atom
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 13
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_arg_as_list
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - imap_arg_get_list
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:129,7'
          Dst:             imap_arg_get_list
        - Src:             'imap-arg.c:130,3'
          Dst:             i_unreached
    - functionName:    imap_arg_get_list
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_arg_get_list_full
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:68,9'
          Dst:             imap_arg_get_list_full
    - functionName:    imap_arg_get_list_full
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:80,12'
          Dst:             array_get_i
        - Src:             'imap-arg.c:91,3'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imap_arg_as_literal_size
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - imap_arg_get_literal_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:119,7'
          Dst:             imap_arg_get_literal_size
        - Src:             'imap-arg.c:120,3'
          Dst:             i_unreached
    - functionName:    imap_arg_get_literal_size
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_arg_as_nstring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - imap_arg_get_nstring
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:110,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-arg.c:111,3'
          Dst:             i_unreached
    - functionName:    imap_arg_get_nstring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_arg_get_string
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:50,9'
          Dst:             imap_arg_get_string
    - functionName:    imap_arg_get_string
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_arg_as_astring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - imap_arg_get_astring
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-arg.c:101,7'
          Dst:             imap_arg_get_astring
        - Src:             'imap-arg.c:102,3'
          Dst:             i_unreached
    - functionName:    imap_arg_get_astring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_arg_get_quoted
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-arg.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    remove_blob
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    remove_subj_fwd_hdr
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append_c
        - buffer_set_used_size
        - str_begins_with
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:177,7'
          Dst:             strncmp
        - Src:             'imap-base-subject.c:177,7'
          Dst:             str_begins_with
        - Src:             'imap-base-subject.c:185,2'
          Dst:             buffer_set_used_size
        - Src:             'imap-base-subject.c:186,2'
          Dst:             buffer_append_c
    - functionName:    remove_blob_when_nonempty
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - remove_blob
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:159,22'
          Dst:             remove_blob
    - functionName:    remove_subj_leader
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          267
      EdgeCount:       78
      CyclomaticComplexity: 24
      functionsReached:
        - remove_blob
        - str_begins
        - str_begins_builtin_success
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:128,8'
          Dst:             remove_blob
        - Src:             'imap-base-subject.c:132,7'
          Dst:             str_begins
        - Src:             'imap-base-subject.c:132,7'
          Dst:             strncmp
        - Src:             'imap-base-subject.c:132,7'
          Dst:             str_begins_builtin_success
        - Src:             'imap-base-subject.c:133,7'
          Dst:             str_begins
        - Src:             'imap-base-subject.c:133,7'
          Dst:             strncmp
        - Src:             'imap-base-subject.c:133,7'
          Dst:             str_begins_builtin_success
        - Src:             'imap-base-subject.c:134,7'
          Dst:             str_begins
        - Src:             'imap-base-subject.c:134,7'
          Dst:             strncmp
        - Src:             'imap-base-subject.c:134,7'
          Dst:             str_begins_builtin_success
        - Src:             'imap-base-subject.c:140,23'
          Dst:             remove_blob
    - functionName:    remove_subj_trailers
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append_c
        - buffer_get_data
        - buffer_set_used_size
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:58,9'
          Dst:             buffer_get_data
        - Src:             'imap-base-subject.c:67,5'
          Dst:             memcmp
        - Src:             'imap-base-subject.c:76,3'
          Dst:             buffer_set_used_size
        - Src:             'imap-base-subject.c:77,3'
          Dst:             buffer_append_c
    - functionName:    pack_whitespace
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          210
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - buffer_get_modifiable_data
        - buffer_set_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:17,9'
          Dst:             buffer_get_modifiable_data
        - Src:             'imap-base-subject.c:47,9'
          Dst:             buffer_get_modifiable_data
        - Src:             'imap-base-subject.c:48,2'
          Dst:             buffer_set_used_size
    - functionName:    imap_get_base_subject_cased
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-base-subject.c'
      linkageType:     externalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append_c
        - buffer_create_dynamic
        - message_header_decode_utf8
        - pack_whitespace
        - remove_blob_when_nonempty
        - remove_subj_fwd_hdr
        - remove_subj_leader
        - remove_subj_trailers
        - strlen
        - uni_utf8_to_decomposed_titlecase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-base-subject.c:201,16'
          Dst:             strlen
        - Src:             'imap-base-subject.c:202,8'
          Dst:             buffer_create_dynamic
        - Src:             'imap-base-subject.c:207,2'
          Dst:             message_header_decode_utf8
        - Src:             'imap-base-subject.c:207,2'
          Dst:             uni_utf8_to_decomposed_titlecase
        - Src:             'imap-base-subject.c:209,2'
          Dst:             buffer_append_c
        - Src:             'imap-base-subject.c:211,2'
          Dst:             pack_whitespace
        - Src:             'imap-base-subject.c:218,3'
          Dst:             remove_subj_trailers
        - Src:             'imap-base-subject.c:223,12'
          Dst:             remove_subj_leader
        - Src:             'imap-base-subject.c:230,12'
          Dst:             remove_blob_when_nonempty
        - Src:             'imap-base-subject.c:239,11'
          Dst:             remove_subj_fwd_hdr
    - functionName:    imap_write_envelope_list
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - i_unreached
        - imap_arg_get_list
        - imap_write_envelope_list
        - str_append_c
        - str_append_nstring
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:824,8'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:825,9'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:827,5'
          Dst:             i_unreached
        - Src:             'imap-bodystructure.c:830,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:831,4'
          Dst:             imap_write_envelope_list
        - Src:             'imap-bodystructure.c:832,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:839,4'
          Dst:             str_append_c
    - functionName:    str_append_nstring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - i_unreached
        - imap_arg_get_nstring
        - str_append
        - str_append_c
        - str_printfa
        - strlen
      functionUses:    7
      BranchProfiles:
        - Branch String:   'imap-bodystructure.c:791,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-bodystructure.c:788,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:793,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:796,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:799,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:800,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:803,33'
          Dst:             strlen
        - Src:             'imap-bodystructure.c:803,3'
          Dst:             str_printfa
        - Src:             'imap-bodystructure.c:804,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:808,3'
          Dst:             i_unreached
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    39
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    22
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imap_write_envelope
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_write_envelope_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:846,2'
          Dst:             imap_write_envelope_list
    - functionName:    imap_bodystructure_strlist_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          123
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - imap_arg_get_list_full
        - imap_arg_get_nstring
        - imap_arg_get_string
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:317,6'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:318,10'
          Dst:             malloc_multiply_check
        - Src:             'imap-bodystructure.c:318,10'
          Dst:             p_malloc
        - Src:             'imap-bodystructure.c:319,13'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:321,8'
          Dst:             imap_arg_get_list_full
        - Src:             'imap-bodystructure.c:326,10'
          Dst:             malloc_multiply_check
        - Src:             'imap-bodystructure.c:326,10'
          Dst:             p_malloc
        - Src:             'imap-bodystructure.c:328,9'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:330,14'
          Dst:             p_strdup
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imap_bodystructure_parse_args_common
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          174
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - imap_arg_get_list
        - imap_arg_get_nstring
        - imap_arg_get_string
        - imap_bodystructure_params_parse
        - imap_bodystructure_strlist_parse
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:386,12'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:390,8'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:395,31'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:396,7'
          Dst:             imap_bodystructure_params_parse
        - Src:             'imap-bodystructure.c:406,6'
          Dst:             imap_bodystructure_strlist_parse
        - Src:             'imap-bodystructure.c:413,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:418,27'
          Dst:             p_strdup
    - functionName:    imap_bodystructure_params_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          149
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - imap_arg_get_list_full
        - imap_arg_get_string
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:350,7'
          Dst:             imap_arg_get_list_full
        - Src:             'imap-bodystructure.c:358,11'
          Dst:             malloc_multiply_check
        - Src:             'imap-bodystructure.c:358,11'
          Dst:             p_malloc
        - Src:             'imap-bodystructure.c:362,8'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:364,8'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:366,20'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:367,21'
          Dst:             p_strdup
    - functionName:    part_is_truncated
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:170,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:171,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:174,7'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:175,7'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:180,7'
          Dst:             strcasecmp
    - functionName:    part_write_bodystructure_common
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - imap_append_nstring_nolf
        - imap_append_string
        - params_write
        - str_append
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:89,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:91,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:93,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:94,3'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:96,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:97,3'
          Dst:             params_write
        - Src:             'imap-bodystructure.c:101,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:104,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:106,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:110,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:111,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:112,3'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:115,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:116,4'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:119,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:122,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:123,2'
          Dst:             imap_append_nstring_nolf
    - functionName:    params_write
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          199
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - imap_append_string
        - str_append
        - str_append_c
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:41,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:44,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:48,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:49,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:52,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:54,4'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:56,3'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:57,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:58,3'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:62,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:63,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:66,2'
          Dst:             str_append_c
    - functionName:    part_write_bodystructure_siblings
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - imap_bodystructure_write
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:76,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:77,7'
          Dst:             imap_bodystructure_write
        - Src:             'imap-bodystructure.c:80,3'
          Dst:             str_append_c
    - functionName:    imap_bodystructure_write
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - part_write_body
        - part_write_body_multipart
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:294,10'
          Dst:             part_write_body_multipart
        - Src:             'imap-bodystructure.c:297,10'
          Dst:             part_write_body
    - functionName:    part_write_body_multipart
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          125
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - imap_append_string
        - params_write
        - part_write_bodystructure_common
        - part_write_bodystructure_siblings
        - str_append
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:133,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:136,7'
          Dst:             part_write_bodystructure_siblings
        - Src:             'imap-bodystructure.c:145,4'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:147,4'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:150,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:151,2'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:158,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:159,2'
          Dst:             params_write
        - Src:             'imap-bodystructure.c:162,2'
          Dst:             part_write_bodystructure_common
    - functionName:    part_write_body
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          330
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - imap_append_nstring_nolf
        - imap_append_string
        - imap_envelope_write
        - params_write
        - part_is_truncated
        - part_write_bodystructure_common
        - part_write_bodystructure_siblings
        - str_append
        - str_append_c
        - str_printfa
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:205,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:208,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:210,13'
          Dst:             part_is_truncated
        - Src:             'imap-bodystructure.c:216,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:222,4'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:224,12'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:225,4'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:226,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:227,4'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:237,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:238,2'
          Dst:             params_write
        - Src:             'imap-bodystructure.c:241,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:242,2'
          Dst:             imap_append_nstring_nolf
        - Src:             'imap-bodystructure.c:243,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:244,2'
          Dst:             imap_append_nstring_nolf
        - Src:             'imap-bodystructure.c:245,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:247,3'
          Dst:             imap_append_string
        - Src:             'imap-bodystructure.c:249,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:250,2'
          Dst:             str_printfa
        - Src:             'imap-bodystructure.c:254,3'
          Dst:             str_printfa
        - Src:             'imap-bodystructure.c:259,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:260,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:264,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:265,3'
          Dst:             imap_envelope_write
        - Src:             'imap-bodystructure.c:266,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:268,7'
          Dst:             part_write_bodystructure_siblings
        - Src:             'imap-bodystructure.c:272,3'
          Dst:             str_printfa
        - Src:             'imap-bodystructure.c:282,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:283,2'
          Dst:             imap_append_nstring_nolf
        - Src:             'imap-bodystructure.c:284,2'
          Dst:             part_write_bodystructure_common
    - functionName:    imap_parse_bodystructure_args
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 979
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          382
      EdgeCount:       88
      CyclomaticComplexity: 25
      functionsReached:
        - i_unreached
        - imap_arg_as_list
        - imap_arg_get_atom
        - imap_arg_get_list
        - imap_arg_get_string
        - imap_parse_bodystructure_args
        - imap_write_envelope
        - str_append
        - str_append_c
        - str_append_nstring
        - str_printfa
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:860,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:861,15'
          Dst:             imap_arg_as_list
        - Src:             'imap-bodystructure.c:862,7'
          Dst:             imap_parse_bodystructure_args
        - Src:             'imap-bodystructure.c:864,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:872,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:873,8'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:881,7'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:882,7'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:887,7'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:888,3'
          Dst:             i_unreached
        - Src:             'imap-bodystructure.c:889,2'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:890,7'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:891,3'
          Dst:             i_unreached
        - Src:             'imap-bodystructure.c:893,9'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:894,19'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:895,3'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:900,6'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:901,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:903,9'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:907,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:908,9'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:916,4'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:918,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:920,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:929,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:931,8'
          Dst:             str_append_nstring
        - Src:             'imap-bodystructure.c:936,7'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:940,2'
          Dst:             str_printfa
        - Src:             'imap-bodystructure.c:945,8'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:950,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:951,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:954,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:956,8'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:960,3'
          Dst:             str_append_c
        - Src:             'imap-bodystructure.c:961,3'
          Dst:             imap_write_envelope
        - Src:             'imap-bodystructure.c:962,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:964,8'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:968,7'
          Dst:             imap_parse_bodystructure_args
        - Src:             'imap-bodystructure.c:971,3'
          Dst:             str_append
        - Src:             'imap-bodystructure.c:972,8'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:976,3'
          Dst:             str_append
    - functionName:    imap_body_parse_from_bodystructure
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     externalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_create_from_data
        - i_stream_destroy
        - i_stream_read
        - imap_parse_bodystructure_args
        - imap_parser_create
        - imap_parser_finish_line
        - imap_parser_get_error
        - imap_parser_unref
        - strlen
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:989,51'
          Dst:             strlen
        - Src:             'imap-bodystructure.c:989,10'
          Dst:             i_stream_create_from_data
        - Src:             'imap-bodystructure.c:990,8'
          Dst:             i_stream_read
        - Src:             'imap-bodystructure.c:992,11'
          Dst:             imap_parser_create
        - Src:             'imap-bodystructure.c:993,8'
          Dst:             imap_parser_finish_line
        - Src:             'imap-bodystructure.c:997,9'
          Dst:             imap_parser_get_error
        - Src:             'imap-bodystructure.c:996,14'
          Dst:             t_strdup_printf
        - Src:             'imap-bodystructure.c:1002,9'
          Dst:             imap_parse_bodystructure_args
        - Src:             'imap-bodystructure.c:1005,2'
          Dst:             imap_parser_unref
        - Src:             'imap-bodystructure.c:1006,2'
          Dst:             i_stream_destroy
    - functionName:    imap_bodystructure_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     externalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imap_bodystructure_parse_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:774,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:776,9'
          Dst:             imap_bodystructure_parse_full
    - functionName:    imap_bodystructure_parse_full
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     externalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          155
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_create_from_data
        - i_stream_destroy
        - i_stream_read
        - imap_bodystructure_parse_args
        - imap_bodystructure_reset_data
        - imap_parser_create
        - imap_parser_finish_line
        - imap_parser_get_error
        - imap_parser_unref
        - strlen
        - t_pop_pass_str
        - t_push
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:737,2'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:739,51'
          Dst:             strlen
        - Src:             'imap-bodystructure.c:739,10'
          Dst:             i_stream_create_from_data
        - Src:             'imap-bodystructure.c:740,8'
          Dst:             i_stream_read
        - Src:             'imap-bodystructure.c:742,11'
          Dst:             imap_parser_create
        - Src:             'imap-bodystructure.c:743,8'
          Dst:             imap_parser_finish_line
        - Src:             'imap-bodystructure.c:747,9'
          Dst:             imap_parser_get_error
        - Src:             'imap-bodystructure.c:746,14'
          Dst:             t_strdup_printf
        - Src:             'imap-bodystructure.c:752,3'
          Dst:             t_push
        - Src:             'imap-bodystructure.c:753,10'
          Dst:             imap_bodystructure_parse_args
        - Src:             'imap-bodystructure.c:755,5'
          Dst:             t_pop_pass_str
        - Src:             'imap-bodystructure.c:755,5'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:762,3'
          Dst:             imap_bodystructure_reset_data
        - Src:             'imap-bodystructure.c:765,2'
          Dst:             imap_parser_unref
        - Src:             'imap-bodystructure.c:766,2'
          Dst:             i_stream_destroy
    - functionName:    imap_bodystructure_parse_args
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     externalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_bodystructure_parse_args_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:717,9'
          Dst:             imap_bodystructure_parse_args_int
    - functionName:    imap_bodystructure_reset_data
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - imap_bodystructure_reset_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:724,3'
          Dst:             imap_bodystructure_reset_data
    - functionName:    imap_bodystructure_parse_args_int
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-bodystructure.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         161
      ICount:          1019
      EdgeCount:       218
      CyclomaticComplexity: 59
      functionsReached:
        - i_panic
        - imap_arg_as_list
        - imap_arg_get_atom
        - imap_arg_get_list
        - imap_arg_get_nstring
        - imap_arg_get_string
        - imap_bodystructure_params_parse
        - imap_bodystructure_parse_args_common
        - imap_bodystructure_parse_args_int
        - imap_envelope_parse_args
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - str_to_uint
        - str_to_uoff
        - strcasecmp
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-bodystructure.c:446,19'
          Dst:             malloc_multiply_check
        - Src:             'imap-bodystructure.c:446,19'
          Dst:             p_malloc
        - Src:             'imap-bodystructure.c:449,22'
          Dst:             malloc_multiply_check
        - Src:             'imap-bodystructure.c:449,22'
          Dst:             p_malloc
        - Src:             'imap-bodystructure.c:477,16'
          Dst:             imap_arg_as_list
        - Src:             'imap-bodystructure.c:478,8'
          Dst:             imap_bodystructure_parse_args_int
        - Src:             'imap-bodystructure.c:496,17'
          Dst:             imap_arg_as_list
        - Src:             'imap-bodystructure.c:497,9'
          Dst:             imap_bodystructure_parse_args_int
        - Src:             'imap-bodystructure.c:520,16'
          Dst:             imap_arg_as_list
        - Src:             'imap-bodystructure.c:521,8'
          Dst:             imap_bodystructure_parse_args_int
        - Src:             'imap-bodystructure.c:537,8'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:541,27'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:544,7'
          Dst:             imap_bodystructure_params_parse
        - Src:             'imap-bodystructure.c:550,10'
          Dst:             imap_bodystructure_parse_args_common
        - Src:             'imap-bodystructure.c:555,7'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:556,7'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:560,23'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:561,26'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:564,9'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:565,19'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:566,3'
          Dst:             strcasecmp
        - Src:             'imap-bodystructure.c:594,6'
          Dst:             imap_bodystructure_params_parse
        - Src:             'imap-bodystructure.c:602,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:606,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:610,7'
          Dst:             imap_arg_get_string
        - Src:             'imap-bodystructure.c:614,21'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:615,30'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:617,3'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:618,7'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:619,6'
          Dst:             str_to_uoff
        - Src:             'imap-bodystructure.c:635,8'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:636,7'
          Dst:             str_to_uint
        - Src:             'imap-bodystructure.c:640,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:646,4'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:657,8'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:661,7'
          Dst:             imap_bodystructure_parse_args_int
        - Src:             'imap-bodystructure.c:665,4'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:670,8'
          Dst:             imap_arg_get_list
        - Src:             'imap-bodystructure.c:674,8'
          Dst:             imap_envelope_parse_args
        - Src:             'imap-bodystructure.c:676,15'
          Dst:             t_strdup_printf
        - Src:             'imap-bodystructure.c:681,8'
          Dst:             imap_arg_get_atom
        - Src:             'imap-bodystructure.c:682,7'
          Dst:             str_to_uint
        - Src:             'imap-bodystructure.c:688,3'
          Dst:             i_panic
        - Src:             'imap-bodystructure.c:703,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-bodystructure.c:707,22'
          Dst:             p_strdup
        - Src:             'imap-bodystructure.c:708,9'
          Dst:             imap_bodystructure_parse_args_common
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    tm_is_too_large
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          150
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - gmtime
        - time_max_safe_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:87,20'
          Dst:             time_max_safe_value
        - Src:             'imap-date.c:90,13'
          Dst:             gmtime
    - functionName:    imap_to_date_tm
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          84
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:200,2'
          Dst:             i_memcpy
    - functionName:    imap_to_date
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_to_date_tm
        - localtime
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:279,7'
          Dst:             localtime
        - Src:             'imap-date.c:281,8'
          Dst:             t_malloc0
        - Src:             'imap-date.c:282,2'
          Dst:             imap_to_date_tm
    - functionName:    imap_to_datetime_tz
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gmtime
        - imap_to_datetime_tm
        - time_add_secs
        - time_max_safe_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:263,6'
          Dst:             time_add_secs
        - Src:             'imap-date.c:267,37'
          Dst:             time_max_safe_value
        - Src:             'imap-date.c:270,7'
          Dst:             gmtime
        - Src:             'imap-date.c:271,9'
          Dst:             imap_to_datetime_tm
    - functionName:    imap_to_datetime_tm
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          142
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_to_date_tm
        - t_malloc0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:217,8'
          Dst:             t_malloc0
        - Src:             'imap-date.c:218,2'
          Dst:             imap_to_date_tm
    - functionName:    imap_to_datetime
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_to_datetime_tm
        - localtime
        - utc_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:253,7'
          Dst:             localtime
        - Src:             'imap-date.c:254,20'
          Dst:             utc_offset
        - Src:             'imap-date.c:255,9'
          Dst:             imap_to_datetime_tm
    - functionName:    parse_timezone
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:22,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:22,29'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:23,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:23,29'
          Dst:             __ctype_b_loc
    - functionName:    imap_parse_datetime
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          286
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - __ctype_b_loc
        - imap_mktime
        - imap_parse_date_internal
        - parse_timezone
        - time_sub_secs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:154,8'
          Dst:             imap_parse_date_internal
        - Src:             'imap-date.c:163,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:163,29'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:169,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:169,29'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:175,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:175,29'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:181,23'
          Dst:             parse_timezone
        - Src:             'imap-date.c:184,13'
          Dst:             imap_mktime
        - Src:             'imap-date.c:185,7'
          Dst:             time_sub_secs
    - functionName:    imap_parse_date_internal
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          335
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - __ctype_b_loc
        - strncasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:48,8'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:49,10'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:62,7'
          Dst:             strncasecmp
        - Src:             'imap-date.c:72,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:72,29'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:73,7'
          Dst:             __ctype_b_loc
        - Src:             'imap-date.c:73,29'
          Dst:             __ctype_b_loc
    - functionName:    imap_mktime
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - tm_is_too_large
        - utc_mktime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:112,12'
          Dst:             utc_mktime
        - Src:             'imap-date.c:124,13'
          Dst:             tm_is_too_large
    - functionName:    imap_parse_date
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - imap_mktime
        - imap_parse_date_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-date.c:138,8'
          Dst:             imap_parse_date_internal
        - Src:             'imap-date.c:143,6'
          Dst:             imap_mktime
    - functionName:    imap_envelope_parse_address
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - imap_arg_get_list_full
        - imap_arg_get_nstring
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:104,7'
          Dst:             imap_arg_get_list_full
        - Src:             'imap-envelope.c:111,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:113,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:115,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:117,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:120,9'
          Dst:             malloc_multiply_check
        - Src:             'imap-envelope.c:120,9'
          Dst:             p_malloc
        - Src:             'imap-envelope.c:121,15'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:122,16'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:123,18'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:124,17'
          Dst:             p_strdup
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imap_envelope_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_create_from_data
        - i_stream_destroy
        - i_stream_read
        - imap_envelope_parse_args
        - imap_parser_create
        - imap_parser_finish_line
        - imap_parser_get_error
        - imap_parser_unref
        - strlen
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:225,46'
          Dst:             strlen
        - Src:             'imap-envelope.c:225,10'
          Dst:             i_stream_create_from_data
        - Src:             'imap-envelope.c:226,8'
          Dst:             i_stream_read
        - Src:             'imap-envelope.c:228,11'
          Dst:             imap_parser_create
        - Src:             'imap-envelope.c:229,8'
          Dst:             imap_parser_finish_line
        - Src:             'imap-envelope.c:233,9'
          Dst:             imap_parser_get_error
        - Src:             'imap-envelope.c:232,14'
          Dst:             t_strdup_printf
        - Src:             'imap-envelope.c:239,13'
          Dst:             imap_envelope_parse_args
        - Src:             'imap-envelope.c:242,2'
          Dst:             imap_parser_unref
        - Src:             'imap-envelope.c:243,2'
          Dst:             i_stream_destroy
    - functionName:    imap_envelope_parse_args
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          213
      EdgeCount:       34
      CyclomaticComplexity: 12
      functionsReached:
        - imap_arg_get_nstring
        - imap_envelope_parse_addresses
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:160,10'
          Dst:             malloc_multiply_check
        - Src:             'imap-envelope.c:160,10'
          Dst:             p_malloc
        - Src:             'imap-envelope.c:162,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:166,16'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:168,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:172,19'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:174,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:178,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:182,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:186,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:190,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:194,7'
          Dst:             imap_envelope_parse_addresses
        - Src:             'imap-envelope.c:199,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:203,23'
          Dst:             p_strdup
        - Src:             'imap-envelope.c:205,7'
          Dst:             imap_arg_get_nstring
        - Src:             'imap-envelope.c:209,22'
          Dst:             p_strdup
    - functionName:    imap_envelope_parse_addresses
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - imap_arg_get_list
        - imap_envelope_parse_address
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:141,7'
          Dst:             imap_arg_get_list
        - Src:             'imap-envelope.c:146,8'
          Dst:             imap_envelope_parse_address
    - functionName:    imap_write_address
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - imap_append_nstring
        - imap_append_string_for_humans
        - str_append
        - str_append_c
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:23,3'
          Dst:             str_append
        - Src:             'imap-envelope.c:27,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:29,3'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:31,4'
          Dst:             str_append
        - Src:             'imap-envelope.c:34,31'
          Dst:             strlen
        - Src:             'imap-envelope.c:33,4'
          Dst:             imap_append_string_for_humans
        - Src:             'imap-envelope.c:37,3'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:38,3'
          Dst:             imap_append_nstring
        - Src:             'imap-envelope.c:39,3'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:40,3'
          Dst:             imap_append_nstring
        - Src:             'imap-envelope.c:41,3'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:42,3'
          Dst:             imap_append_nstring
        - Src:             'imap-envelope.c:43,3'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:47,2'
          Dst:             str_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    imap_envelope_write
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-envelope.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          169
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - imap_append_nstring_nolf
        - imap_append_string_for_humans
        - imap_write_address
        - str_append
        - str_append_c
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-envelope.c:58,3'
          Dst:             str_append
        - Src:             'imap-envelope.c:62,2'
          Dst:             imap_append_nstring_nolf
        - Src:             'imap-envelope.c:63,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:65,3'
          Dst:             str_append
        - Src:             'imap-envelope.c:69,4'
          Dst:             strlen
        - Src:             'imap-envelope.c:67,3'
          Dst:             imap_append_string_for_humans
        - Src:             'imap-envelope.c:72,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:73,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:74,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:75,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:76,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:77,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:78,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:79,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:80,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:81,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:82,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:83,2'
          Dst:             imap_write_address
        - Src:             'imap-envelope.c:85,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:86,2'
          Dst:             imap_append_nstring_nolf
        - Src:             'imap-envelope.c:87,2'
          Dst:             str_append_c
        - Src:             'imap-envelope.c:88,2'
          Dst:             imap_append_nstring_nolf
    - functionName:    uni_gc_scan_get
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - uni_gc_scan_shift
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/unichar.h:247,3'
          Dst:             uni_gc_scan_shift
    - functionName:    match_gc
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - memcmp
        - toupper
        - uni_gc_scan_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:242,11'
          Dst:             uni_gc_scan_get
        - Src:             'imap-match.c:243,12'
          Dst:             uni_gc_scan_get
        - Src:             'imap-match.c:247,6'
          Dst:             memcmp
        - Src:             'imap-match.c:252,3'
          Dst:             toupper
        - Src:             'imap-match.c:252,28'
          Dst:             toupper
    - functionName:    uni_gc_scan_at_end
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_gc_scan_get
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/unichar.h:271,8'
          Dst:             uni_gc_scan_get
    - functionName:    match_sub
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          323
      EdgeCount:       101
      CyclomaticComplexity: 29
      functionsReached:
        - match_gc
        - match_sub
        - uni_gc_scan_ascii_equals
        - uni_gc_scan_at_end
        - uni_gc_scan_get
        - uni_gc_scan_shift
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:267,10'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:268,10'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:269,10'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:270,8'
          Dst:             match_gc
        - Src:             'imap-match.c:271,9'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:273,8'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:283,17'
          Dst:             uni_gc_scan_get
        - Src:             'imap-match.c:284,18'
          Dst:             uni_gc_scan_get
        - Src:             'imap-match.c:285,3'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:286,3'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:288,6'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:290,7'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:296,9'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:297,3'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:299,7'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:301,12'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:302,12'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:303,5'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:308,11'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:309,8'
          Dst:             match_gc
        - Src:             'imap-match.c:310,11'
          Dst:             match_sub
        - Src:             'imap-match.c:318,8'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:321,4'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:325,7'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:326,7'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:327,8'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:328,8'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:334,8'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:335,8'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:336,8'
          Dst:             uni_gc_scan_ascii_equals
    - functionName:    uni_gc_scan_ascii_equals
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uni_gc_scan_get
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/unichar.h:259,28'
          Dst:             uni_gc_scan_get
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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-imap/../../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-imap/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    pattern_is_inboxcase
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          256
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - strchr
        - toupper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:83,20'
          Dst:             toupper
        - Src:             'imap-match.c:94,28'
          Dst:             toupper
        - Src:             'imap-match.c:94,13'
          Dst:             strchr
    - functionName:    pattern_compress
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          130
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - t_strdup_noconst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:53,15'
          Dst:             t_strdup_noconst
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    imap_match_pattern
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          189
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - match_gc
        - match_sub
        - strlen
        - strncasecmp
        - uni_gc_scan_ascii_equals
        - uni_gc_scan_at_end
        - uni_gc_scan_shift
        - uni_gc_scanner_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:354,24'
          Dst:             strncasecmp
        - Src:             'imap-match.c:364,40'
          Dst:             strlen
        - Src:             'imap-match.c:364,2'
          Dst:             uni_gc_scanner_init
        - Src:             'imap-match.c:365,46'
          Dst:             strlen
        - Src:             'imap-match.c:365,2'
          Dst:             uni_gc_scanner_init
        - Src:             'imap-match.c:367,7'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:369,9'
          Dst:             match_sub
        - Src:             'imap-match.c:371,7'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:376,9'
          Dst:             uni_gc_scan_ascii_equals
        - Src:             'imap-match.c:377,3'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:379,7'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:382,11'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:383,8'
          Dst:             match_gc
        - Src:             'imap-match.c:384,11'
          Dst:             match_sub
        - Src:             'imap-match.c:389,4'
          Dst:             uni_gc_scan_shift
        - Src:             'imap-match.c:393,11'
          Dst:             uni_gc_scan_at_end
        - Src:             'imap-match.c:394,11'
          Dst:             uni_gc_scan_at_end
    - functionName:    imap_match
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - imap_match_pattern
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:410,9'
          Dst:             imap_match_pattern
    - functionName:    imap_match_globs_equal
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:227,7'
          Dst:             strcmp
    - functionName:    imap_match_dup_real
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - imap_match_init_multiple_real
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:191,2'
          Dst:             pool_datastack_create
        - Src:             'imap-match.c:191,2'
          Dst:             array_create_i
        - Src:             'imap-match.c:195,3'
          Dst:             array_append_i
        - Src:             'imap-match.c:197,2'
          Dst:             array_append_space_i
        - Src:             'imap-match.c:198,45'
          Dst:             array_idx_i
        - Src:             'imap-match.c:198,9'
          Dst:             imap_match_init_multiple_real
    - functionName:    imap_match_init_multiple_real
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          203
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - malloc_add_check
        - malloc_multiply_check
        - p_malloc
        - pattern_compress
        - pattern_is_inboxcase
        - str_array_length
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:121,19'
          Dst:             str_array_length
        - Src:             'imap-match.c:122,19'
          Dst:             malloc_multiply_check
        - Src:             'imap-match.c:122,19'
          Dst:             p_malloc
        - Src:             'imap-match.c:127,31'
          Dst:             pattern_compress
        - Src:             'imap-match.c:129,4'
          Dst:             pattern_is_inboxcase
        - Src:             'imap-match.c:132,24'
          Dst:             strlen
        - Src:             'imap-match.c:138,3'
          Dst:             malloc_add_check
        - Src:             'imap-match.c:139,9'
          Dst:             p_malloc
        - Src:             'imap-match.c:145,9'
          Dst:             strlen
        - Src:             'imap-match.c:146,3'
          Dst:             i_panic
        - Src:             'imap-match.c:149,3'
          Dst:             i_memcpy
    - functionName:    imap_match_dup
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imap_match_dup_real
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:208,10'
          Dst:             imap_match_dup_real
        - Src:             'imap-match.c:210,3'
          Dst:             t_push
        - Src:             'imap-match.c:211,15'
          Dst:             imap_match_dup_real
        - Src:             'imap-match.c:212,5'
          Dst:             t_pop
        - Src:             'imap-match.c:212,5'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_match_deinit
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:179,2'
          Dst:             p_free_internal
        - Src:             'imap-match.c:180,2'
          Dst:             p_free_internal
    - functionName:    imap_match_init_multiple
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - imap_match_init_multiple_real
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:165,10'
          Dst:             imap_match_init_multiple_real
        - Src:             'imap-match.c:168,2'
          Dst:             t_push
        - Src:             'imap-match.c:169,10'
          Dst:             imap_match_init_multiple_real
        - Src:             'imap-match.c:171,4'
          Dst:             t_pop
        - Src:             'imap-match.c:171,4'
          Dst:             i_panic
    - functionName:    imap_match_init
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_match_init_multiple
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-match.c:46,9'
          Dst:             imap_match_init_multiple
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    imap_parser_strdup
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 251
      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:
        - i_memcpy
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:249,8'
          Dst:             p_malloc
        - Src:             'imap-parser.c:250,2'
          Dst:             i_memcpy
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/array.h:307,13'
          Dst:             array_count_i
        - Src:             '../../src/lib/array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_get_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    list_add_ghost_eol
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_delete_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:769,3'
          Dst:             i_panic
        - Src:             'imap-parser.c:771,9'
          Dst:             array_append_space_i
        - Src:             'imap-parser.c:773,3'
          Dst:             array_count_i
        - Src:             'imap-parser.c:773,3'
          Dst:             array_delete_i
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    imap_parser_literal_end
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          167
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - o_stream_cork
        - o_stream_is_corked
        - o_stream_nsend
        - o_stream_uncork
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:435,4'
          Dst:             o_stream_nsend
        - Src:             'imap-parser.c:436,8'
          Dst:             o_stream_is_corked
        - Src:             'imap-parser.c:439,5'
          Dst:             o_stream_uncork
        - Src:             'imap-parser.c:440,5'
          Dst:             o_stream_cork
    - functionName:    imap_arg_create
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:189,8'
          Dst:             array_append_space_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    imap_parser_read_text
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - imap_parser_save_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:593,4'
          Dst:             imap_parser_save_arg
    - functionName:    imap_parser_save_arg
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          246
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - i_memcasecmp
        - i_panic
        - i_unreached
        - imap_arg_create
        - imap_parser_strdup
        - p_strndup
        - str_unescape
        - strlen
      functionUses:    7
      BranchProfiles:
        - Branch String:   'imap-parser.c:262,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-parser.c:260,8'
          Dst:             imap_arg_create
        - Src:             'imap-parser.c:265,20'
          Dst:             i_memcasecmp
        - Src:             'imap-parser.c:274,20'
          Dst:             imap_parser_strdup
        - Src:             'imap-parser.c:279,3'
          Dst:             i_panic
        - Src:             'imap-parser.c:282,9'
          Dst:             p_strndup
        - Src:             'imap-parser.c:287,10'
          Dst:             str_unescape
        - Src:             'imap-parser.c:289,18'
          Dst:             strlen
        - Src:             'imap-parser.c:307,20'
          Dst:             imap_parser_strdup
        - Src:             'imap-parser.c:312,17'
          Dst:             i_unreached
    - functionName:    imap_parser_read_literal_data
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          202
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_skip
        - imap_parser_save_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:511,4'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:525,3'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:529,3'
          Dst:             i_panic
        - Src:             'imap-parser.c:538,4'
          Dst:             imap_parser_save_arg
        - Src:             'imap-parser.c:546,3'
          Dst:             imap_parser_save_arg
    - functionName:    imap_parser_read_literal
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          201
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_skip
        - imap_parser_literal_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:462,4'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:463,11'
          Dst:             imap_parser_literal_end
    - functionName:    imap_parser_read_string
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          173
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - imap_parser_save_arg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:374,4'
          Dst:             imap_parser_save_arg
    - functionName:    imap_parser_is_next_resp_text
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - array_count_i
        - array_idx_i
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:556,6'
          Dst:             array_count_i
        - Src:             'imap-parser.c:559,8'
          Dst:             array_idx_i
        - Src:             'imap-parser.c:563,9'
          Dst:             strcasecmp
        - Src:             'imap-parser.c:564,3'
          Dst:             strcasecmp
        - Src:             'imap-parser.c:565,3'
          Dst:             strcasecmp
        - Src:             'imap-parser.c:566,3'
          Dst:             strcasecmp
    - functionName:    imap_parser_read_atom
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          167
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - imap_parser_save_arg
        - is_valid_atom_char
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:344,4'
          Dst:             imap_parser_save_arg
        - Src:             'imap-parser.c:349,5'
          Dst:             imap_parser_save_arg
        - Src:             'imap-parser.c:358,15'
          Dst:             is_valid_atom_char
    - functionName:    is_valid_atom_char
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_parser_close_list
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - imap_arg_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:229,8'
          Dst:             imap_arg_create
    - functionName:    imap_parser_open_list
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - imap_arg_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:203,21'
          Dst:             imap_arg_create
        - Src:             'imap-parser.c:205,2'
          Dst:             array_create_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    3
      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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_parser_is_next_text
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_idx_i
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:577,8'
          Dst:             array_count_i
        - Src:             'imap-parser.c:577,8'
          Dst:             array_idx_i
        - Src:             'imap-parser.c:581,8'
          Dst:             strlen
    - functionName:    imap_parser_skip_to_next
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:177,9'
          Dst:             i_stream_skip
    - functionName:    imap_parser_client_read_tag
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1042
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_parser_read_next_atom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:1042,9'
          Dst:             imap_parser_read_next_atom
    - functionName:    imap_parser_read_next_atom
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          191
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_get_data
        - i_stream_skip
        - p_strndup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'imap-parser.c:989,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-parser.c:976,9'
          Dst:             i_stream_get_data
        - Src:             'imap-parser.c:995,4'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:996,14'
          Dst:             p_strndup
    - functionName:    imap_parser_read_command_name
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_parser_read_next_atom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:1036,9'
          Dst:             imap_parser_read_next_atom
    - functionName:    imap_parser_read_tag
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_parser_read_next_atom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:1030,9'
          Dst:             imap_parser_read_next_atom
    - functionName:    imap_parser_read_word
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_get_data
        - i_stream_skip
        - p_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:952,9'
          Dst:             i_stream_get_data
        - Src:             'imap-parser.c:962,3'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:963,10'
          Dst:             p_strndup
    - functionName:    imap_parser_finish_line
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - finish_line
        - i_stream_get_data
        - imap_parser_read_args
        - imap_parser_save_arg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:934,8'
          Dst:             imap_parser_read_args
        - Src:             'imap-parser.c:940,11'
          Dst:             i_stream_get_data
        - Src:             'imap-parser.c:941,4'
          Dst:             imap_parser_save_arg
        - Src:             'imap-parser.c:944,9'
          Dst:             finish_line
    - functionName:    imap_parser_read_args
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          273
      EdgeCount:       64
      CyclomaticComplexity: 19
      functionsReached:
        - array_count_i
        - finish_line
        - i_stream_skip
        - imap_parser_delete_extra_eol
        - imap_parser_read_arg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:828,3'
          Dst:             imap_parser_delete_extra_eol
        - Src:             'imap-parser.c:833,5'
          Dst:             array_count_i
        - Src:             'imap-parser.c:834,8'
          Dst:             imap_parser_read_arg
        - Src:             'imap-parser.c:847,3'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:852,7'
          Dst:             array_count_i
        - Src:             'imap-parser.c:855,24'
          Dst:             finish_line
    - functionName:    finish_line
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          120
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_count_i
        - array_get_i
        - i_stream_skip
        - list_add_ghost_eol
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:787,12'
          Dst:             array_count_i
        - Src:             'imap-parser.c:790,2'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:803,3'
          Dst:             list_add_ghost_eol
        - Src:             'imap-parser.c:806,8'
          Dst:             array_append_space_i
        - Src:             'imap-parser.c:810,12'
          Dst:             array_get_i
    - functionName:    imap_parser_delete_extra_eol
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_delete_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:816,2'
          Dst:             array_count_i
        - Src:             'imap-parser.c:816,2'
          Dst:             array_delete_i
    - functionName:    imap_parser_read_arg
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         91
      ICount:          543
      EdgeCount:       113
      CyclomaticComplexity: 24
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_skip
        - i_unreached
        - imap_parser_close_list
        - imap_parser_is_next_resp_text
        - imap_parser_is_next_text
        - imap_parser_open_list
        - imap_parser_read_atom
        - imap_parser_read_literal
        - imap_parser_read_literal_data
        - imap_parser_read_string
        - imap_parser_read_text
        - imap_parser_skip_to_next
        - is_valid_atom_char
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imap-parser.c:625,3'
          Branch Sides:    []
        - Branch String:   'imap-parser.c:706,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-parser.c:608,9'
          Dst:             i_stream_get_data
        - Src:             'imap-parser.c:614,8'
          Dst:             imap_parser_skip_to_next
        - Src:             'imap-parser.c:616,3'
          Dst:             i_panic
        - Src:             'imap-parser.c:619,7'
          Dst:             imap_parser_is_next_text
        - Src:             'imap-parser.c:677,9'
          Dst:             imap_parser_open_list
        - Src:             'imap-parser.c:680,5'
          Dst:             i_stream_skip
        - Src:             'imap-parser.c:685,9'
          Dst:             imap_parser_close_list
        - Src:             'imap-parser.c:695,9'
          Dst:             is_valid_atom_char
        - Src:             'imap-parser.c:704,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:708,8'
          Dst:             imap_parser_read_atom
        - Src:             'imap-parser.c:713,7'
          Dst:             imap_parser_is_next_resp_text
        - Src:             'imap-parser.c:722,8'
          Dst:             imap_parser_read_string
        - Src:             'imap-parser.c:737,8'
          Dst:             imap_parser_read_literal
        - Src:             'imap-parser.c:742,10'
          Dst:             i_stream_get_data
        - Src:             'imap-parser.c:747,8'
          Dst:             imap_parser_read_literal_data
        - Src:             'imap-parser.c:751,8'
          Dst:             imap_parser_read_text
        - Src:             'imap-parser.c:755,17'
          Dst:             i_unreached
        - Src:             'imap-parser.c:758,2'
          Dst:             i_panic
    - functionName:    imap_parser_read_last_literal
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - array_delete_i
        - i_panic
        - imap_parser_delete_extra_eol
        - imap_parser_get_last_literal_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:909,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:910,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:912,13'
          Dst:             imap_parser_get_last_literal_size
        - Src:             'imap-parser.c:913,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:916,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:919,2'
          Dst:             imap_parser_delete_extra_eol
        - Src:             'imap-parser.c:922,2'
          Dst:             array_count_i
        - Src:             'imap-parser.c:922,2'
          Dst:             array_delete_i
    - functionName:    imap_parser_get_last_literal_size
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          146
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_modifiable_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:872,9'
          Dst:             array_get_modifiable_i
        - Src:             'imap-parser.c:873,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:883,10'
          Dst:             array_get_modifiable_i
    - functionName:    imap_parser_get_literal_size
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 902
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_arg_get_literal_size
        - imap_parser_get_last_literal_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:897,13'
          Dst:             imap_parser_get_last_literal_size
        - Src:             'imap-parser.c:901,9'
          Dst:             imap_arg_get_literal_size
    - functionName:    imap_parser_get_error
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_parser_set_streams
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    imap_parser_reset
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          82
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - p_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:124,2'
          Dst:             p_clear
        - Src:             'imap-parser.c:128,2'
          Dst:             array_create_i
    - functionName:    imap_parser_enable_literal_minus
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 120
      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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_parser_unref
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:109,2'
          Dst:             i_panic
        - Src:             'imap-parser.c:113,2'
          Dst:             pool_unref
        - Src:             'imap-parser.c:114,2'
          Dst:             p_free_internal
    - functionName:    imap_parser_ref
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 101
      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:             'imap-parser.c:98,2'
          Dst:             i_panic
    - functionName:    imap_parser_create
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-parser.c:79,11'
          Dst:             malloc_multiply_check
        - Src:             'imap-parser.c:79,11'
          Dst:             p_malloc
        - Src:             'imap-parser.c:81,17'
          Dst:             pool_alloconly_create
        - Src:             'imap-parser.c:91,2'
          Dst:             array_create_i
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    imap_append_string_for_humans
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          379
      EdgeCount:       89
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - str_append
        - str_append_c
        - str_append_data
        - str_len
        - str_printfa
        - str_truncate
        - uni_utf8_get_char_n
      functionUses:    2
      BranchProfiles:
        - Branch String:   'imap-quote.c:196,3'
          Branch Sides:    []
        - Branch String:   'imap-quote.c:262,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-quote.c:227,11'
          Dst:             uni_utf8_get_char_n
        - Src:             'imap-quote.c:246,3'
          Dst:             str_append_c
        - Src:             'imap-quote.c:247,3'
          Dst:             str_append_data
        - Src:             'imap-quote.c:248,3'
          Dst:             str_append_c
        - Src:             'imap-quote.c:253,3'
          Dst:             str_append
        - Src:             'imap-quote.c:257,2'
          Dst:             str_printfa
        - Src:             'imap-quote.c:258,8'
          Dst:             str_len
        - Src:             'imap-quote.c:264,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:272,5'
          Dst:             str_append_c
        - Src:             'imap-quote.c:277,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:284,22'
          Dst:             str_len
        - Src:             'imap-quote.c:284,3'
          Dst:             str_truncate
        - Src:             'imap-quote.c:285,2'
          Dst:             str_len
        - Src:             'imap-quote.c:285,2'
          Dst:             i_panic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    remove_newlines_and_append
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - imap_append_nstring
        - str_append_c
        - str_c
        - strlen
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-quote.c:115,12'
          Dst:             strlen
        - Src:             'imap-quote.c:116,13'
          Dst:             t_str_new
        - Src:             'imap-quote.c:120,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:128,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:134,28'
          Dst:             str_c
        - Src:             'imap-quote.c:134,2'
          Dst:             imap_append_nstring
    - functionName:    imap_append_nstring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          156
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - imap_append_literal
        - imap_append_quoted
        - str_append
        - uni_utf8_get_char
      functionUses:    7
      BranchProfiles:
        - Branch String:   'imap-quote.c:76,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-quote.c:63,3'
          Dst:             str_append
        - Src:             'imap-quote.c:84,4'
          Dst:             imap_append_literal
        - Src:             'imap-quote.c:89,6'
          Dst:             imap_append_literal
        - Src:             'imap-quote.c:96,11'
          Dst:             uni_utf8_get_char
        - Src:             'imap-quote.c:98,6'
          Dst:             imap_append_literal
        - Src:             'imap-quote.c:106,2'
          Dst:             imap_append_quoted
    - functionName:    imap_append_literal
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - str_printfa
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-quote.c:50,26'
          Dst:             strlen
        - Src:             'imap-quote.c:52,2'
          Dst:             str_printfa
        - Src:             'imap-quote.c:53,2'
          Dst:             buffer_append
    - functionName:    imap_append_quoted
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - str_append_c
        - str_append_data
        - uni_utf8_get_char
      functionUses:    2
      BranchProfiles:
        - Branch String:   'imap-quote.c:154,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-quote.c:152,2'
          Dst:             str_append_c
        - Src:             'imap-quote.c:161,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:162,4'
          Dst:             str_append_c
        - Src:             'imap-quote.c:170,5'
          Dst:             str_append_c
        - Src:             'imap-quote.c:175,11'
          Dst:             uni_utf8_get_char
        - Src:             'imap-quote.c:178,5'
          Dst:             str_append_data
        - Src:             'imap-quote.c:184,2'
          Dst:             str_append_c
    - functionName:    imap_append_nstring_nolf
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          82
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_get_pool
        - i_panic
        - imap_append_nstring
        - remove_newlines_and_append
        - strpbrk
        - t_pop
        - t_push
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-quote.c:140,21'
          Dst:             strpbrk
        - Src:             'imap-quote.c:141,3'
          Dst:             imap_append_nstring
        - Src:             'imap-quote.c:142,11'
          Dst:             buffer_get_pool
        - Src:             'imap-quote.c:143,3'
          Dst:             remove_newlines_and_append
        - Src:             'imap-quote.c:144,7'
          Dst:             t_push
        - Src:             'imap-quote.c:145,3'
          Dst:             remove_newlines_and_append
        - Src:             'imap-quote.c:146,4'
          Dst:             t_pop
        - Src:             'imap-quote.c:146,4'
          Dst:             i_panic
    - functionName:    imap_append_astring
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          237
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - imap_append_string
        - str_append
        - strcasecmp
      functionUses:    42
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-quote.c:32,2'
          Dst:             i_panic
        - Src:             'imap-quote.c:36,4'
          Dst:             imap_append_string
        - Src:             'imap-quote.c:41,16'
          Dst:             strcasecmp
        - Src:             'imap-quote.c:42,3'
          Dst:             imap_append_string
        - Src:             'imap-quote.c:44,3'
          Dst:             str_append
    - functionName:    imap_append_string
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-quote.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imap_append_nstring
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-quote.c:22,2'
          Dst:             i_panic
        - Src:             'imap-quote.c:24,2'
          Dst:             imap_append_nstring
    - functionName:    imap_seq_range_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_next_seq_range
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:126,6'
          Dst:             get_next_seq_range
    - functionName:    get_next_seq_range
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - get_next_number
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:34,10'
          Dst:             get_next_number
        - Src:             'imap-seqset.c:49,11'
          Dst:             get_next_number
    - functionName:    get_next_number
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uint32
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:11,6'
          Dst:             str_parse_uint32
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_seq_set_ordered_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          119
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - get_next_number
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:98,10'
          Dst:             get_next_number
        - Src:             'imap-seqset.c:105,11'
          Dst:             get_next_number
        - Src:             'imap-seqset.c:113,4'
          Dst:             array_append_i
    - functionName:    imap_seq_set_nostar_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - imap_seq_set_parse
        - seq_range_exists
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:83,6'
          Dst:             imap_seq_set_parse
        - Src:             'imap-seqset.c:86,6'
          Dst:             seq_range_exists
    - functionName:    imap_seq_set_parse
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-seqset.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - get_next_seq_range
        - seq_range_array_add_range
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-seqset.c:71,7'
          Dst:             get_next_seq_range
        - Src:             'imap-seqset.c:73,3'
          Dst:             seq_range_array_add_range
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    utf16buf_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          219
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - str_data
        - str_len
        - uni_ucs4_to_utf8_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:186,19'
          Dst:             str_len
        - Src:             'imap-utf7.c:195,3'
          Dst:             uni_ucs4_to_utf8_c
        - Src:             'imap-utf7.c:196,7'
          Dst:             str_len
        - Src:             'imap-utf7.c:197,25'
          Dst:             str_data
        - Src:             'imap-utf7.c:219,2'
          Dst:             uni_ucs4_to_utf8_c
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    mbase64_decode_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          336
      EdgeCount:       62
      CyclomaticComplexity: 19
      functionsReached:
        - utf16buf_to_utf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:239,8'
          Dst:             utf16buf_to_utf8
        - Src:             'imap-utf7.c:254,8'
          Dst:             utf16buf_to_utf8
        - Src:             'imap-utf7.c:269,8'
          Dst:             utf16buf_to_utf8
        - Src:             'imap-utf7.c:276,7'
          Dst:             utf16buf_to_utf8
    - functionName:    mbase64_encode
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          160
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:35,2'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:37,3'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:38,3'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:40,3'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:42,3'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:47,3'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:49,4'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:51,4'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:53,4'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:56,2'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    uni_utf8_char_bytes
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_append_data
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imap_utf7_is_valid
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          111
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - imap_utf7_to_utf8
        - t_pop
        - t_push
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:363,4'
          Dst:             t_push
        - Src:             'imap-utf7.c:364,21'
          Dst:             t_str_new
        - Src:             'imap-utf7.c:365,11'
          Dst:             imap_utf7_to_utf8
        - Src:             'imap-utf7.c:366,6'
          Dst:             t_pop
        - Src:             'imap-utf7.c:366,6'
          Dst:             i_panic
    - functionName:    imap_utf7_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_utf7_to_utf8_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:341,9'
          Dst:             imap_utf7_to_utf8_int
    - functionName:    imap_utf7_to_utf8_int
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          252
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - mbase64_decode_to_utf8
        - str_append
        - str_append_c
        - str_append_data
        - str_len
        - str_printfa
        - str_truncate
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:302,20'
          Dst:             strchr
        - Src:             'imap-utf7.c:307,3'
          Dst:             str_append
        - Src:             'imap-utf7.c:312,2'
          Dst:             str_append_data
        - Src:             'imap-utf7.c:314,7'
          Dst:             strchr
        - Src:             'imap-utf7.c:316,4'
          Dst:             str_printfa
        - Src:             'imap-utf7.c:321,5'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:324,24'
          Dst:             str_len
        - Src:             'imap-utf7.c:325,9'
          Dst:             mbase64_decode_to_utf8
        - Src:             'imap-utf7.c:328,6'
          Dst:             str_truncate
        - Src:             'imap-utf7.c:329,6'
          Dst:             str_printfa
        - Src:             'imap-utf7.c:333,4'
          Dst:             str_append_c
    - functionName:    imap_utf7_to_utf8_escaped
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_unreached
        - imap_utf7_to_utf8_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:347,2'
          Dst:             i_panic
        - Src:             'imap-utf7.c:349,6'
          Dst:             imap_utf7_to_utf8_int
        - Src:             'imap-utf7.c:350,3'
          Dst:             i_unreached
    - functionName:    imap_utf8_first_encode_char
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_imap_utf8_to_utf7
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - imap_utf8_first_encode_char
        - imap_utf8_to_utf7
        - str_c
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:161,6'
          Dst:             imap_utf8_first_encode_char
        - Src:             'imap-utf7.c:166,8'
          Dst:             t_str_new
        - Src:             'imap-utf7.c:167,8'
          Dst:             imap_utf8_to_utf7
        - Src:             'imap-utf7.c:168,12'
          Dst:             str_c
    - functionName:    imap_utf8_to_utf7
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_utf8_to_utf7_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:146,9'
          Dst:             imap_utf8_to_utf7_int
    - functionName:    imap_utf8_to_utf7_int
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          276
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - imap_escaped_utf8_hex_to_char
        - imap_utf8_first_encode_char
        - malloc_multiply_check
        - mbase64_encode
        - str_append
        - str_append_c
        - str_append_data
        - strlen
        - t_malloc0
        - uni_utf8_char_bytes
        - uni_utf8_get_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:93,6'
          Dst:             imap_utf8_first_encode_char
        - Src:             'imap-utf7.c:96,3'
          Dst:             str_append
        - Src:             'imap-utf7.c:101,2'
          Dst:             str_append_data
        - Src:             'imap-utf7.c:102,20'
          Dst:             strlen
        - Src:             'imap-utf7.c:102,20'
          Dst:             malloc_multiply_check
        - Src:             'imap-utf7.c:102,10'
          Dst:             t_malloc0
        - Src:             'imap-utf7.c:105,7'
          Dst:             imap_escaped_utf8_hex_to_char
        - Src:             'imap-utf7.c:106,4'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:111,4'
          Dst:             str_append
        - Src:             'imap-utf7.c:116,4'
          Dst:             str_append_c
        - Src:             'imap-utf7.c:123,8'
          Dst:             uni_utf8_get_char
        - Src:             'imap-utf7.c:137,9'
          Dst:             uni_utf8_char_bytes
        - Src:             'imap-utf7.c:139,3'
          Dst:             mbase64_encode
    - functionName:    imap_escaped_utf8_hex_to_char
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hex2dec_case
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:77,6'
          Dst:             hex2dec_case
    - functionName:    imap_escaped_utf8_to_utf7
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-utf7.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - imap_utf8_to_utf7_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-utf7.c:151,2'
          Dst:             i_panic
        - Src:             'imap-utf7.c:153,9'
          Dst:             imap_utf8_to_utf7_int
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_reply_begins
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          117
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - str_begins_builtin_success
        - str_begins_icase
        - strlen
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:233,7'
          Dst:             str_begins_icase
        - Src:             'imap-util.c:233,7'
          Dst:             strlen
        - Src:             'imap-util.c:233,7'
          Dst:             strncasecmp
        - Src:             'imap-util.c:233,7'
          Dst:             strlen
        - Src:             'imap-util.c:233,7'
          Dst:             str_begins_builtin_success
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    imap_write_capability
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          138
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - array_idx_i
        - array_is_created_i
        - str_append
        - str_append_c
        - str_begins_with
        - str_c
        - str_len
        - strncmp
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:209,6'
          Dst:             array_is_created_i
        - Src:             'imap-util.c:211,12'
          Dst:             t_str_new
        - Src:             'imap-util.c:212,13'
          Dst:             array_idx_i
        - Src:             'imap-util.c:213,7'
          Dst:             strncmp
        - Src:             'imap-util.c:213,7'
          Dst:             str_begins_with
        - Src:             'imap-util.c:217,7'
          Dst:             str_len
        - Src:             'imap-util.c:218,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:219,3'
          Dst:             str_append
        - Src:             'imap-util.c:221,6'
          Dst:             str_len
        - Src:             'imap-util.c:222,7'
          Dst:             str_len
        - Src:             'imap-util.c:223,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:224,20'
          Dst:             str_c
        - Src:             'imap-util.c:224,3'
          Dst:             str_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:    15
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    imap_args_to_str
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - imap_write_args
        - str_c
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:199,8'
          Dst:             t_str_new
        - Src:             'imap-util.c:200,2'
          Dst:             imap_write_args
        - Src:             'imap-util.c:201,9'
          Dst:             str_c
    - functionName:    imap_write_args
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - imap_write_arg
        - str_append_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:123,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:124,3'
          Dst:             imap_write_arg
    - functionName:    imap_write_arg
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - i_unreached
        - imap_arg_as_astring
        - imap_arg_as_list
        - imap_arg_as_literal_size
        - imap_write_args
        - str_append
        - str_append_c
        - str_append_escaped
        - str_printfa
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imap-util.c:79,2'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-util.c:81,3'
          Dst:             str_append
        - Src:             'imap-util.c:84,20'
          Dst:             imap_arg_as_astring
        - Src:             'imap-util.c:84,3'
          Dst:             str_append
        - Src:             'imap-util.c:87,24'
          Dst:             imap_arg_as_astring
        - Src:             'imap-util.c:88,3'
          Dst:             str_append_c
        - Src:             'imap-util.c:89,36'
          Dst:             strlen
        - Src:             'imap-util.c:89,3'
          Dst:             str_append_escaped
        - Src:             'imap-util.c:90,3'
          Dst:             str_append_c
        - Src:             'imap-util.c:94,24'
          Dst:             imap_arg_as_astring
        - Src:             'imap-util.c:96,8'
          Dst:             strlen
        - Src:             'imap-util.c:95,3'
          Dst:             str_printfa
        - Src:             'imap-util.c:97,3'
          Dst:             str_append
        - Src:             'imap-util.c:101,3'
          Dst:             str_append_c
        - Src:             'imap-util.c:102,25'
          Dst:             imap_arg_as_list
        - Src:             'imap-util.c:102,3'
          Dst:             imap_write_args
        - Src:             'imap-util.c:103,3'
          Dst:             str_append_c
        - Src:             'imap-util.c:108,8'
          Dst:             imap_arg_as_literal_size
        - Src:             'imap-util.c:107,3'
          Dst:             str_printfa
        - Src:             'imap-util.c:111,3'
          Dst:             i_unreached
    - functionName:    imap_human_args_fix_control_chars
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_escape
      functionSourceFile: '/src/dovecot/src/lib-imap/../../src/lib/strescape.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 13
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_nescape
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strescape.h:13,26'
          Dst:             strlen
        - Src:             '../../src/lib/strescape.h:13,9'
          Dst:             str_nescape
    - functionName:    imap_write_args_for_human
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          162
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - i_unreached
        - imap_arg_as_astring
        - imap_arg_as_list
        - imap_arg_as_literal_size
        - imap_human_args_fix_control_chars
        - imap_write_args_for_human
        - str_append
        - str_append_c
        - str_c_modifiable
        - str_escape
        - str_len
        - str_printfa
        - strlen
        - strpbrk
        - uni_utf8_get_valid_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'imap-util.c:148,3'
          Branch Sides:    []
      Callsites:
        - Src:             'imap-util.c:146,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:150,4'
          Dst:             str_append
        - Src:             'imap-util.c:154,21'
          Dst:             imap_arg_as_astring
        - Src:             'imap-util.c:154,4'
          Dst:             str_append
        - Src:             'imap-util.c:158,25'
          Dst:             imap_arg_as_astring
        - Src:             'imap-util.c:160,8'
          Dst:             strpbrk
        - Src:             'imap-util.c:162,10'
          Dst:             strlen
        - Src:             'imap-util.c:161,5'
          Dst:             str_printfa
        - Src:             'imap-util.c:165,13'
          Dst:             str_escape
        - Src:             'imap-util.c:167,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:168,23'
          Dst:             str_len
        - Src:             'imap-util.c:171,11'
          Dst:             strlen
        - Src:             'imap-util.c:170,8'
          Dst:             uni_utf8_get_valid_data
        - Src:             'imap-util.c:172,5'
          Dst:             str_append
        - Src:             'imap-util.c:175,5'
          Dst:             str_c_modifiable
        - Src:             'imap-util.c:174,4'
          Dst:             imap_human_args_fix_control_chars
        - Src:             'imap-util.c:176,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:180,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:181,36'
          Dst:             imap_arg_as_list
        - Src:             'imap-util.c:181,4'
          Dst:             imap_write_args_for_human
        - Src:             'imap-util.c:182,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:187,9'
          Dst:             imap_arg_as_literal_size
        - Src:             'imap-util.c:186,4'
          Dst:             str_printfa
        - Src:             'imap-util.c:190,4'
          Dst:             i_unreached
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    imap_write_seq_range
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - str_append_c
        - str_printfa
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:67,10'
          Dst:             array_get_i
        - Src:             'imap-util.c:70,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:71,3'
          Dst:             str_printfa
        - Src:             'imap-util.c:73,4'
          Dst:             str_printfa
    - functionName:    imap_parse_system_flag
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:46,6'
          Dst:             strcasecmp
        - Src:             'imap-util.c:48,11'
          Dst:             strcasecmp
        - Src:             'imap-util.c:50,11'
          Dst:             strcasecmp
        - Src:             'imap-util.c:52,11'
          Dst:             strcasecmp
        - Src:             'imap-util.c:54,11'
          Dst:             strcasecmp
        - Src:             'imap-util.c:56,11'
          Dst:             strcasecmp
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-imap/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    imap_write_flags
      functionSourceFile: '/src/dovecot/src/lib-imap/imap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          159
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - str_append
        - str_append_c
        - str_len
        - str_truncate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'imap-util.c:17,9'
          Dst:             str_len
        - Src:             'imap-util.c:19,3'
          Dst:             str_append
        - Src:             'imap-util.c:21,3'
          Dst:             str_append
        - Src:             'imap-util.c:23,3'
          Dst:             str_append
        - Src:             'imap-util.c:25,3'
          Dst:             str_append
        - Src:             'imap-util.c:27,3'
          Dst:             str_append
        - Src:             'imap-util.c:29,3'
          Dst:             str_append
        - Src:             'imap-util.c:34,4'
          Dst:             str_append
        - Src:             'imap-util.c:35,4'
          Dst:             str_append_c
        - Src:             'imap-util.c:40,6'
          Dst:             str_len
        - Src:             'imap-util.c:41,22'
          Dst:             str_len
        - Src:             'imap-util.c:41,3'
          Dst:             str_truncate
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    istream_attachment_connector_abort
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-connector.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - istream_attachment_connector_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-connector.c:148,2'
          Dst:             istream_attachment_connector_free
    - functionName:    istream_attachment_connector_free
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-connector.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - i_stream_unref
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-connector.c:101,2'
          Dst:             i_memcpy
        - Src:             'istream-attachment-connector.c:102,3'
          Dst:             i_stream_unref
        - Src:             'istream-attachment-connector.c:103,2'
          Dst:             i_stream_unref
        - Src:             'istream-attachment-connector.c:104,2'
          Dst:             pool_unref
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    istream_attachment_connector_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-connector.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          120
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_idx_modifiable_i
        - i_panic
        - i_stream_create_concat
        - i_stream_create_range
        - i_stream_create_sized_range
        - i_stream_get_name
        - i_stream_set_name
        - istream_attachment_connector_free
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-connector.c:117,3'
          Dst:             i_panic
        - Src:             'istream-attachment-connector.c:121,12'
          Dst:             i_stream_create_sized_range
        - Src:             'istream-attachment-connector.c:125,19'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-connector.c:124,29'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-connector.c:124,4'
          Dst:             i_stream_set_name
        - Src:             'istream-attachment-connector.c:127,12'
          Dst:             i_stream_create_range
        - Src:             'istream-attachment-connector.c:131,3'
          Dst:             array_append_i
        - Src:             'istream-attachment-connector.c:133,2'
          Dst:             array_append_space_i
        - Src:             'istream-attachment-connector.c:135,11'
          Dst:             array_idx_modifiable_i
        - Src:             'istream-attachment-connector.c:136,10'
          Dst:             i_stream_create_concat
        - Src:             'istream-attachment-connector.c:138,2'
          Dst:             istream_attachment_connector_free
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    istream_attachment_connector_add
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-connector.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          174
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - i_stream_create_base64_encoder
        - i_stream_create_min_sized_range
        - i_stream_create_sized
        - i_stream_get_name
        - i_stream_ref
        - i_stream_set_name
        - i_stream_unref
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-connector.c:51,4'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-connector.c:48,14'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-connector.c:60,4'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-connector.c:57,14'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-connector.c:68,11'
          Dst:             i_stream_create_min_sized_range
        - Src:             'istream-attachment-connector.c:71,4'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-connector.c:70,28'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-connector.c:70,3'
          Dst:             i_stream_set_name
        - Src:             'istream-attachment-connector.c:72,3'
          Dst:             array_append_i
        - Src:             'istream-attachment-connector.c:80,3'
          Dst:             i_stream_ref
        - Src:             'istream-attachment-connector.c:82,11'
          Dst:             i_stream_create_base64_encoder
        - Src:             'istream-attachment-connector.c:86,7'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-connector.c:85,28'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-connector.c:85,3'
          Dst:             i_stream_set_name
        - Src:             'istream-attachment-connector.c:90,11'
          Dst:             i_stream_create_sized
        - Src:             'istream-attachment-connector.c:91,2'
          Dst:             array_append_i
        - Src:             'istream-attachment-connector.c:92,2'
          Dst:             i_stream_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    istream_attachment_connector_begin
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-connector.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-connector.c:26,9'
          Dst:             pool_alloconly_create
        - Src:             'istream-attachment-connector.c:27,9'
          Dst:             malloc_multiply_check
        - Src:             'istream-attachment-connector.c:27,9'
          Dst:             p_malloc
        - Src:             'istream-attachment-connector.c:32,2'
          Dst:             array_create_i
        - Src:             'istream-attachment-connector.c:33,2'
          Dst:             i_stream_ref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    base64_scheme_is_valid_char
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    astream_base64_decode_lf
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_is_valid_char
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_is_valid_char
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:332,9'
          Dst:             base64_scheme_is_valid_char
    - functionName:    astream_try_base64_decode_char
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          302
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - astream_base64_decode_lf
        - base64_is_valid_char
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'istream-attachment-extractor.c:178,2'
          Branch Sides:    []
      Callsites:
        - Src:             'istream-attachment-extractor.c:180,7'
          Dst:             base64_is_valid_char
        - Src:             'istream-attachment-extractor.c:185,11'
          Dst:             astream_base64_decode_lf
        - Src:             'istream-attachment-extractor.c:191,8'
          Dst:             base64_is_valid_char
        - Src:             'istream-attachment-extractor.c:196,7'
          Dst:             base64_is_valid_char
        - Src:             'istream-attachment-extractor.c:205,7'
          Dst:             base64_is_valid_char
        - Src:             'istream-attachment-extractor.c:232,10'
          Dst:             astream_base64_decode_lf
        - Src:             'istream-attachment-extractor.c:248,3'
          Dst:             i_unreached
    - functionName:    astream_try_base64_decode
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - astream_try_base64_decode_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:264,9'
          Dst:             astream_try_base64_decode_char
    - functionName:    astream_open_output
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - o_stream_cork
        - o_stream_create_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:277,2'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:284,30'
          Dst:             o_stream_create_fd
        - Src:             'istream-attachment-extractor.c:285,2'
          Dst:             o_stream_cork
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    parse_content_disposition
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          41
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strndup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:98,2'
          Dst:             p_free_internal
        - Src:             'istream-attachment-extractor.c:100,3'
          Dst:             i_strndup
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_strdup
        - rfc822_parse_content_type
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - t_pop
        - t_push
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:82,2'
          Dst:             rfc822_parser_init
        - Src:             'istream-attachment-extractor.c:83,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'istream-attachment-extractor.c:85,2'
          Dst:             t_push
        - Src:             'istream-attachment-extractor.c:86,18'
          Dst:             t_str_new
        - Src:             'istream-attachment-extractor.c:87,9'
          Dst:             rfc822_parse_content_type
        - Src:             'istream-attachment-extractor.c:88,41'
          Dst:             str_c
        - Src:             'istream-attachment-extractor.c:88,32'
          Dst:             i_strdup
        - Src:             'istream-attachment-extractor.c:89,4'
          Dst:             t_pop
        - Src:             'istream-attachment-extractor.c:89,4'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:90,2'
          Dst:             rfc822_parser_deinit
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    base64_decode_init
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    astream_decode_base64
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          454
      EdgeCount:       92
      CyclomaticComplexity: 22
      functionsReached:
        - base64_decode_finish
        - base64_decode_init
        - base64_decode_more
        - buffer_append
        - buffer_create_dynamic
        - buffer_free
        - buffer_set_used_size
        - hash_format_loop
        - hash_format_reset
        - i_close_fd_path
        - i_panic
        - i_stream_create_fd
        - i_stream_create_limit
        - i_stream_get_data_size
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_bytes
        - i_stream_read_more
        - i_stream_skip
        - i_stream_unref
        - o_stream_cork
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_nsend
        - o_stream_unref
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:366,3'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:377,8'
          Dst:             buffer_create_dynamic
        - Src:             'istream-attachment-extractor.c:378,10'
          Dst:             i_stream_create_fd
        - Src:             'istream-attachment-extractor.c:379,17'
          Dst:             i_stream_create_limit
        - Src:             'istream-attachment-extractor.c:380,11'
          Dst:             o_stream_create_fd_file
        - Src:             'istream-attachment-extractor.c:381,2'
          Dst:             o_stream_cork
        - Src:             'istream-attachment-extractor.c:383,2'
          Dst:             base64_decode_init
        - Src:             'istream-attachment-extractor.c:384,2'
          Dst:             hash_format_reset
        - Src:             'istream-attachment-extractor.c:386,16'
          Dst:             i_stream_read_bytes
        - Src:             'istream-attachment-extractor.c:388,3'
          Dst:             buffer_set_used_size
        - Src:             'istream-attachment-extractor.c:389,7'
          Dst:             base64_decode_more
        - Src:             'istream-attachment-extractor.c:397,3'
          Dst:             i_stream_skip
        - Src:             'istream-attachment-extractor.c:398,3'
          Dst:             o_stream_nsend
        - Src:             'istream-attachment-extractor.c:399,3'
          Dst:             hash_format_loop
        - Src:             'istream-attachment-extractor.c:401,18'
          Dst:             i_stream_get_data_size
        - Src:             'istream-attachment-extractor.c:404,3'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:409,5'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-extractor.c:410,5'
          Dst:             i_stream_get_error
        - Src:             'istream-attachment-extractor.c:407,15'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-extractor.c:414,6'
          Dst:             base64_decode_finish
        - Src:             'istream-attachment-extractor.c:422,6'
          Dst:             o_stream_finish
        - Src:             'istream-attachment-extractor.c:426,5'
          Dst:             o_stream_get_name
        - Src:             'istream-attachment-extractor.c:427,5'
          Dst:             o_stream_get_error
        - Src:             'istream-attachment-extractor.c:424,15'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-extractor.c:432,2'
          Dst:             buffer_free
        - Src:             'istream-attachment-extractor.c:433,2'
          Dst:             i_stream_unref
        - Src:             'istream-attachment-extractor.c:434,2'
          Dst:             o_stream_unref
        - Src:             'istream-attachment-extractor.c:438,18'
          Dst:             buffer_create_dynamic
        - Src:             'istream-attachment-extractor.c:439,17'
          Dst:             i_stream_read_more
        - Src:             'istream-attachment-extractor.c:440,4'
          Dst:             buffer_append
        - Src:             'istream-attachment-extractor.c:441,4'
          Dst:             i_stream_skip
        - Src:             'istream-attachment-extractor.c:443,3'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:448,6'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-extractor.c:449,6'
          Dst:             i_stream_get_error
        - Src:             'istream-attachment-extractor.c:446,16'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-extractor.c:454,2'
          Dst:             i_stream_unref
        - Src:             'istream-attachment-extractor.c:457,3'
          Dst:             i_close_fd_path
        - Src:             'istream-attachment-extractor.c:462,2'
          Dst:             o_stream_destroy
        - Src:             'istream-attachment-extractor.c:463,2'
          Dst:             i_close_fd_path
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    astream_part_reset
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - hash_format_reset
        - i_close_fd_path
        - o_stream_destroy
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:570,2'
          Dst:             o_stream_destroy
        - Src:             'istream-attachment-extractor.c:571,2'
          Dst:             i_close_fd_path
        - Src:             'istream-attachment-extractor.c:573,2'
          Dst:             p_free_internal
        - Src:             'istream-attachment-extractor.c:574,2'
          Dst:             p_free_internal
        - Src:             'istream-attachment-extractor.c:575,2'
          Dst:             buffer_free
        - Src:             'istream-attachment-extractor.c:579,2'
          Dst:             hash_format_reset
    - functionName:    astream_part_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          332
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - astream_decode_base64
        - buffer_free
        - hash_format_write
        - i_stream_create_fd
        - i_stream_destroy
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_more
        - i_stream_skip
        - o_stream_finish
        - o_stream_get_error
        - o_stream_get_name
        - o_stream_nsend
        - str_c
        - str_truncate
        - stream_add_data
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:481,6'
          Dst:             o_stream_finish
        - Src:             'istream-attachment-extractor.c:483,9'
          Dst:             o_stream_get_name
        - Src:             'istream-attachment-extractor.c:484,9'
          Dst:             o_stream_get_error
        - Src:             'istream-attachment-extractor.c:482,14'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-extractor.c:496,15'
          Dst:             t_str_new
        - Src:             'istream-attachment-extractor.c:497,2'
          Dst:             hash_format_write
        - Src:             'istream-attachment-extractor.c:498,14'
          Dst:             str_c
        - Src:             'istream-attachment-extractor.c:511,15'
          Dst:             astream_decode_base64
        - Src:             'istream-attachment-extractor.c:515,5'
          Dst:             buffer_free
        - Src:             'istream-attachment-extractor.c:529,3'
          Dst:             str_truncate
        - Src:             'istream-attachment-extractor.c:530,3'
          Dst:             hash_format_write
        - Src:             'istream-attachment-extractor.c:531,15'
          Dst:             str_c
        - Src:             'istream-attachment-extractor.c:539,3'
          Dst:             buffer_free
        - Src:             'istream-attachment-extractor.c:544,10'
          Dst:             i_stream_create_fd
        - Src:             'istream-attachment-extractor.c:545,9'
          Dst:             i_stream_read_more
        - Src:             'istream-attachment-extractor.c:546,3'
          Dst:             o_stream_nsend
        - Src:             'istream-attachment-extractor.c:547,3'
          Dst:             i_stream_skip
        - Src:             'istream-attachment-extractor.c:552,4'
          Dst:             i_stream_get_name
        - Src:             'istream-attachment-extractor.c:552,30'
          Dst:             i_stream_get_error
        - Src:             'istream-attachment-extractor.c:551,14'
          Dst:             t_strdup_printf
        - Src:             'istream-attachment-extractor.c:555,2'
          Dst:             i_stream_destroy
        - Src:             'istream-attachment-extractor.c:561,3'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:562,2'
          Dst:             buffer_free
    - functionName:    stream_add_data
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - i_stream_alloc
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:68,3'
          Dst:             i_stream_alloc
        - Src:             'istream-attachment-extractor.c:68,3'
          Dst:             i_memcpy
    - functionName:    astream_add_body
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          206
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - astream_open_output
        - astream_try_base64_decode
        - buffer_append
        - buffer_create_dynamic
        - buffer_set_used_size
        - hash_format_loop
        - o_stream_nsend
        - stream_add_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'istream-attachment-extractor.c:296,2'
          Branch Sides:    []
      Callsites:
        - Src:             'istream-attachment-extractor.c:298,3'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:305,5'
          Dst:             buffer_create_dynamic
        - Src:             'istream-attachment-extractor.c:311,4'
          Dst:             buffer_append
        - Src:             'istream-attachment-extractor.c:316,7'
          Dst:             astream_open_output
        - Src:             'istream-attachment-extractor.c:319,4'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:320,4'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:324,3'
          Dst:             astream_try_base64_decode
        - Src:             'istream-attachment-extractor.c:325,3'
          Dst:             hash_format_loop
        - Src:             'istream-attachment-extractor.c:327,3'
          Dst:             o_stream_nsend
        - Src:             'istream-attachment-extractor.c:329,3'
          Dst:             buffer_set_used_size
        - Src:             'istream-attachment-extractor.c:332,3'
          Dst:             astream_try_base64_decode
        - Src:             'istream-attachment-extractor.c:333,3'
          Dst:             hash_format_loop
        - Src:             'istream-attachment-extractor.c:335,3'
          Dst:             o_stream_nsend
    - functionName:    astream_want_attachment
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    astream_parse_header
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - parse_content_disposition
        - parse_content_type
        - strcasecmp
        - stream_add_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:107,3'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:108,3'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:110,2'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:113,4'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:115,4'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:123,6'
          Dst:             strcasecmp
        - Src:             'istream-attachment-extractor.c:124,3'
          Dst:             parse_content_type
        - Src:             'istream-attachment-extractor.c:125,11'
          Dst:             strcasecmp
        - Src:             'istream-attachment-extractor.c:126,3'
          Dst:             parse_content_disposition
    - functionName:    astream_end_of_part
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          120
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - astream_part_finish
        - astream_part_reset
        - stream_add_data
      functionUses:    2
      BranchProfiles:
        - Branch String:   'istream-attachment-extractor.c:591,2'
          Branch Sides:    []
      Callsites:
        - Src:             'istream-attachment-extractor.c:597,4'
          Dst:             stream_add_data
        - Src:             'istream-attachment-extractor.c:604,7'
          Dst:             astream_part_finish
        - Src:             'istream-attachment-extractor.c:615,2'
          Dst:             astream_part_reset
    - functionName:    astream_read_next
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          251
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - astream_add_body
        - astream_end_of_part
        - astream_parse_header
        - astream_want_attachment
        - i_stream_get_max_buffer_size
        - io_stream_set_error
        - message_parser_parse_next_block
      functionUses:    1
      BranchProfiles:
        - Branch String:   'istream-attachment-extractor.c:633,2'
          Branch Sides:    []
      Callsites:
        - Src:             'istream-attachment-extractor.c:629,36'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-attachment-extractor.c:633,10'
          Dst:             message_parser_parse_next_block
        - Src:             'istream-attachment-extractor.c:636,9'
          Dst:             astream_end_of_part
        - Src:             'istream-attachment-extractor.c:646,4'
          Dst:             io_stream_set_error
        - Src:             'istream-attachment-extractor.c:660,7'
          Dst:             astream_end_of_part
        - Src:             'istream-attachment-extractor.c:661,4'
          Dst:             io_stream_set_error
        - Src:             'istream-attachment-extractor.c:670,3'
          Dst:             astream_parse_header
        - Src:             'istream-attachment-extractor.c:673,7'
          Dst:             astream_want_attachment
        - Src:             'istream-attachment-extractor.c:678,3'
          Dst:             astream_add_body
    - functionName:    i_stream_attachment_extractor_can_retry
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     externalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_attachment_extractor_close
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hash_format_deinit_free
        - i_stream_close
        - message_parser_deinit
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:709,3'
          Dst:             message_parser_deinit
        - Src:             'istream-attachment-extractor.c:711,2'
          Dst:             hash_format_deinit_free
        - Src:             'istream-attachment-extractor.c:712,2'
          Dst:             pool_unref
        - Src:             'istream-attachment-extractor.c:714,3'
          Dst:             i_stream_close
    - functionName:    i_stream_attachment_extractor_read
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - astream_read_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:694,9'
          Dst:             astream_read_next
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_stream_create_attachment_extractor
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-attachment-extractor.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          188
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - message_parser_init
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-attachment-extractor.c:728,2'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:729,2'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:730,2'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:731,2'
          Dst:             i_panic
        - Src:             'istream-attachment-extractor.c:733,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-attachment-extractor.c:733,12'
          Dst:             p_malloc
        - Src:             'istream-attachment-extractor.c:751,18'
          Dst:             pool_alloconly_create
        - Src:             'istream-attachment-extractor.c:752,20'
          Dst:             message_parser_init
        - Src:             'istream-attachment-extractor.c:754,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-attachment-extractor.c:753,9'
          Dst:             i_stream_create
    - functionName:    i_stream_dot_eof
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - flush_dot_state
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-dot.c:103,9'
          Dst:             flush_dot_state
    - functionName:    flush_dot_state
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - flush_pending
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-dot.c:96,9'
          Dst:             flush_pending
    - functionName:    flush_pending
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    i_stream_dot_read_some
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          159
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read_memarea
        - i_stream_try_alloc
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-dot.c:39,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-dot.c:41,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-dot.c:43,4'
          Dst:             i_panic
        - Src:             'istream-dot.c:49,5'
          Dst:             io_stream_set_error
        - Src:             'istream-dot.c:55,10'
          Dst:             i_stream_get_data_size
        - Src:             'istream-dot.c:56,3'
          Dst:             i_panic
        - Src:             'istream-dot.c:59,7'
          Dst:             i_stream_try_alloc
    - functionName:    i_stream_dot_return
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-dot.c:112,3'
          Dst:             i_panic
    - functionName:    i_stream_dot_read
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         95
      ICount:          589
      EdgeCount:       124
      CyclomaticComplexity: 31
      functionsReached:
        - flush_dot_state
        - flush_pending
        - i_memcpy
        - i_memcspn
        - i_panic
        - i_stream_dot_eof
        - i_stream_dot_read
        - i_stream_dot_read_some
        - i_stream_dot_return
        - i_stream_get_data
        - i_stream_skip
        - i_stream_try_alloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'istream-dot.c:158,3'
          Branch Sides:    []
      Callsites:
        - Src:             'istream-dot.c:129,8'
          Dst:             i_stream_try_alloc
        - Src:             'istream-dot.c:132,9'
          Dst:             flush_pending
        - Src:             'istream-dot.c:139,10'
          Dst:             i_stream_dot_return
        - Src:             'istream-dot.c:143,9'
          Dst:             i_stream_dot_return
        - Src:             'istream-dot.c:144,13'
          Dst:             i_stream_dot_read_some
        - Src:             'istream-dot.c:151,10'
          Dst:             flush_dot_state
        - Src:             'istream-dot.c:152,10'
          Dst:             i_stream_dot_return
        - Src:             'istream-dot.c:156,9'
          Dst:             i_stream_get_data
        - Src:             'istream-dot.c:166,11'
          Dst:             i_memcspn
        - Src:             'istream-dot.c:168,11'
          Dst:             i_memcspn
        - Src:             'istream-dot.c:172,5'
          Dst:             i_memcpy
        - Src:             'istream-dot.c:186,10'
          Dst:             flush_dot_state
        - Src:             'istream-dot.c:195,10'
          Dst:             flush_dot_state
        - Src:             'istream-dot.c:205,5'
          Dst:             i_stream_dot_eof
        - Src:             'istream-dot.c:210,10'
          Dst:             flush_dot_state
        - Src:             'istream-dot.c:218,5'
          Dst:             i_stream_dot_eof
        - Src:             'istream-dot.c:223,10'
          Dst:             flush_dot_state
        - Src:             'istream-dot.c:240,2'
          Dst:             i_stream_skip
        - Src:             'istream-dot.c:242,8'
          Dst:             i_stream_dot_return
        - Src:             'istream-dot.c:244,10'
          Dst:             i_stream_dot_read
        - Src:             'istream-dot.c:245,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_stream_create_dot
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-dot.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          114
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-dot.c:254,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-dot.c:254,12'
          Dst:             p_malloc
        - Src:             'istream-dot.c:267,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-dot.c:266,9'
          Dst:             i_stream_create
    - functionName:    i_stream_header_filter_snapshot_free
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
        - ref_buffer_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:681,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:684,2'
          Dst:             ref_buffer_unref
        - Src:             'istream-header-filter.c:685,2'
          Dst:             p_free_internal
    - functionName:    ref_buffer_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
        - i_panic
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:73,2'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:75,3'
          Dst:             buffer_free
        - Src:             'istream-header-filter.c:76,3'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    skip_header
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_get_data_size
        - i_stream_header_filter_seek_to_header
        - i_stream_read_memarea
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:550,3'
          Dst:             i_stream_header_filter_seek_to_header
        - Src:             'istream-header-filter.c:554,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-header-filter.c:555,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-header-filter.c:556,3'
          Dst:             i_stream_skip
    - functionName:    i_stream_header_filter_seek_to_header
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          91
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_seek
        - message_parse_header_deinit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:523,2'
          Dst:             i_stream_seek
        - Src:             'istream-header-filter.c:531,3'
          Dst:             message_parse_header_deinit
    - functionName:    stream_reset_to
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_set_used_size
        - hdr_buf_realloc_if_needed
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:564,2'
          Dst:             hdr_buf_realloc_if_needed
        - Src:             'istream-header-filter.c:568,2'
          Dst:             buffer_set_used_size
    - functionName:    hdr_buf_realloc_if_needed
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
        - ref_buffer_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:191,31'
          Dst:             malloc_multiply_check
        - Src:             'istream-header-filter.c:191,31'
          Dst:             p_malloc
        - Src:             'istream-header-filter.c:193,17'
          Dst:             buffer_create_dynamic
        - Src:             'istream-header-filter.c:195,2'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:198,2'
          Dst:             ref_buffer_unref
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    cmp_uint
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    buffer_get_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hdr_stream_update_pos
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_data
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:176,28'
          Dst:             buffer_get_data
        - Src:             'istream-header-filter.c:178,2'
          Dst:             i_panic
    - functionName:    match_line_changed
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_bsearch_i
        - array_is_created_i
        - cmp_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:154,7'
          Dst:             array_is_created_i
        - Src:             'istream-header-filter.c:157,9'
          Dst:             array_bsearch_i
        - Src:             'istream-header-filter.c:157,9'
          Dst:             cmp_uint
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    add_eol
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - buffer_append_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:164,3'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:166,3'
          Dst:             buffer_append_c
    - functionName:    read_mixed
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          360
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_get_data
        - i_panic
        - i_stream_get_data
        - i_stream_read_memarea
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:105,9'
          Dst:             i_stream_get_data
        - Src:             'istream-header-filter.c:107,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:111,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-header-filter.c:119,4'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:125,6'
          Dst:             buffer_append_c
        - Src:             'istream-header-filter.c:126,5'
          Dst:             buffer_append_c
        - Src:             'istream-header-filter.c:134,10'
          Dst:             i_stream_get_data
        - Src:             'istream-header-filter.c:136,2'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:139,28'
          Dst:             buffer_get_data
        - Src:             'istream-header-filter.c:141,2'
          Dst:             i_panic
    - functionName:    handle_end_body_with_lf
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          299
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_set_used_size
        - hdr_buf_realloc_if_needed
        - i_panic
        - i_stream_get_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:451,9'
          Dst:             i_stream_get_data
        - Src:             'istream-header-filter.c:466,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:467,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:469,3'
          Dst:             hdr_buf_realloc_if_needed
        - Src:             'istream-header-filter.c:470,3'
          Dst:             buffer_set_used_size
        - Src:             'istream-header-filter.c:471,3'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:473,4'
          Dst:             buffer_append_c
        - Src:             'istream-header-filter.c:474,3'
          Dst:             buffer_append_c
    - functionName:    read_header
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         168
      ICount:          1251
      EdgeCount:       216
      CyclomaticComplexity: 50
      functionsReached:
        - add_eol
        - array_append_i
        - array_create_i
        - array_is_created_i
        - bsearch
        - buffer_append
        - buffer_copy
        - buffer_set_used_size
        - hdr_buf_realloc_if_needed
        - hdr_stream_update_pos
        - i_panic
        - i_stream_get_max_buffer_size
        - i_stream_header_filter_read
        - match_line_changed
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - read_mixed
        - search_strcasecmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:213,4'
          Dst:             message_parse_header_init
        - Src:             'istream-header-filter.c:218,2'
          Dst:             hdr_buf_realloc_if_needed
        - Src:             'istream-header-filter.c:219,2'
          Dst:             buffer_copy
        - Src:             'istream-header-filter.c:224,2'
          Dst:             buffer_set_used_size
        - Src:             'istream-header-filter.c:227,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:234,11'
          Dst:             read_mixed
        - Src:             'istream-header-filter.c:238,20'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-header-filter.c:240,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:244,20'
          Dst:             message_parse_header_next
        - Src:             'istream-header-filter.c:256,42'
          Dst:             t_push
        - Src:             'istream-header-filter.c:260,6'
          Dst:             t_pop
        - Src:             'istream-header-filter.c:260,6'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:267,4'
          Dst:             add_eol
        - Src:             'istream-header-filter.c:282,14'
          Dst:             bsearch
        - Src:             'istream-header-filter.c:282,14'
          Dst:             search_strcasecmp
        - Src:             'istream-header-filter.c:295,4'
          Dst:             t_push
        - Src:             'istream-header-filter.c:298,6'
          Dst:             t_pop
        - Src:             'istream-header-filter.c:298,6'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:302,10'
          Dst:             array_is_created_i
        - Src:             'istream-header-filter.c:303,6'
          Dst:             array_create_i
        - Src:             'istream-header-filter.c:304,5'
          Dst:             array_append_i
        - Src:             'istream-header-filter.c:310,8'
          Dst:             match_line_changed
        - Src:             'istream-header-filter.c:319,5'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:321,5'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:324,4'
          Dst:             buffer_append
        - Src:             'istream-header-filter.c:327,5'
          Dst:             add_eol
        - Src:             'istream-header-filter.c:332,5'
          Dst:             buffer_set_used_size
        - Src:             'istream-header-filter.c:365,5'
          Dst:             add_eol
        - Src:             'istream-header-filter.c:383,5'
          Dst:             add_eol
        - Src:             'istream-header-filter.c:390,8'
          Dst:             hdr_stream_update_pos
        - Src:             'istream-header-filter.c:400,3'
          Dst:             message_parse_header_deinit
        - Src:             'istream-header-filter.c:411,11'
          Dst:             hdr_stream_update_pos
        - Src:             'istream-header-filter.c:415,5'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:431,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:432,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:436,10'
          Dst:             i_stream_header_filter_read
    - functionName:    i_stream_header_filter_read
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          137
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - handle_end_body_with_lf
        - i_stream_read_copy_from_parent
        - i_stream_seek
        - read_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:502,10'
          Dst:             read_header
        - Src:             'istream-header-filter.c:512,2'
          Dst:             i_stream_seek
        - Src:             'istream-header-filter.c:513,8'
          Dst:             i_stream_read_copy_from_parent
        - Src:             'istream-header-filter.c:515,9'
          Dst:             handle_end_body_with_lf
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_stream_header_filter_add
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 781
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - hdr_buf_realloc_if_needed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:782,2'
          Dst:             hdr_buf_realloc_if_needed
        - Src:             'istream-header-filter.c:783,2'
          Dst:             buffer_append
    - functionName:    i_stream_header_filter_snapshot
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          85
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_default_snapshot
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:698,10'
          Dst:             i_stream_default_snapshot
        - Src:             'istream-header-filter.c:702,13'
          Dst:             malloc_multiply_check
        - Src:             'istream-header-filter.c:702,13'
          Dst:             p_malloc
    - functionName:    i_stream_header_filter_stat
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          255
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - handle_end_body_with_lf
        - i_panic
        - i_stream_read_memarea
        - i_stream_seek
        - i_stream_stat
        - skip_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:629,6'
          Dst:             i_stream_stat
        - Src:             'istream-header-filter.c:639,6'
          Dst:             skip_header
        - Src:             'istream-header-filter.c:654,3'
          Dst:             i_stream_seek
        - Src:             'istream-header-filter.c:655,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-header-filter.c:661,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:662,17'
          Dst:             handle_end_body_with_lf
        - Src:             'istream-header-filter.c:670,2'
          Dst:             i_stream_seek
    - functionName:    i_stream_header_filter_seek
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          117
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_header_filter_seek_to_header
        - i_stream_seek
        - skip_header
        - stream_reset_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:579,3'
          Dst:             stream_reset_to
        - Src:             'istream-header-filter.c:580,3'
          Dst:             i_stream_seek
        - Src:             'istream-header-filter.c:590,3'
          Dst:             stream_reset_to
        - Src:             'istream-header-filter.c:591,3'
          Dst:             i_stream_header_filter_seek_to_header
        - Src:             'istream-header-filter.c:598,6'
          Dst:             skip_header
        - Src:             'istream-header-filter.c:600,2'
          Dst:             stream_reset_to
        - Src:             'istream-header-filter.c:605,3'
          Dst:             i_stream_header_filter_seek_to_header
        - Src:             'istream-header-filter.c:610,3'
          Dst:             i_stream_seek
    - functionName:    i_stream_header_filter_destroy
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
        - message_parse_header_deinit
        - pool_unref
        - ref_buffer_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:86,3'
          Dst:             message_parse_header_deinit
        - Src:             'istream-header-filter.c:87,6'
          Dst:             array_is_created_i
        - Src:             'istream-header-filter.c:88,3'
          Dst:             array_free_i
        - Src:             'istream-header-filter.c:89,2'
          Dst:             ref_buffer_unref
        - Src:             'istream-header-filter.c:90,2'
          Dst:             pool_unref
    - functionName:    i_stream_create_header_filter
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          382
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_create_dynamic
        - i_panic
        - i_stream_create
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - strcasecmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:724,2'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:726,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-header-filter.c:726,12'
          Dst:             p_malloc
        - Src:             'istream-header-filter.c:727,18'
          Dst:             pool_alloconly_create
        - Src:             'istream-header-filter.c:732,3'
          Dst:             malloc_multiply_check
        - Src:             'istream-header-filter.c:732,3'
          Dst:             p_malloc
        - Src:             'istream-header-filter.c:735,4'
          Dst:             strcasecmp
        - Src:             'istream-header-filter.c:740,3'
          Dst:             i_panic
        - Src:             'istream-header-filter.c:741,27'
          Dst:             p_strdup
        - Src:             'istream-header-filter.c:744,21'
          Dst:             malloc_multiply_check
        - Src:             'istream-header-filter.c:744,21'
          Dst:             p_malloc
        - Src:             'istream-header-filter.c:746,26'
          Dst:             buffer_create_dynamic
        - Src:             'istream-header-filter.c:775,9'
          Dst:             i_stream_create
    - functionName:    i_stream_header_filter_sync
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-header-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-header-filter.c:618,2'
          Dst:             i_panic
    - functionName:    i_stream_qp_decoder_seek
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-qp-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - i_stream_default_seek_nonseekable
        - i_stream_seek
        - qp_decoder_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-qp-decoder.c:115,3'
          Dst:             i_stream_seek
        - Src:             'istream-qp-decoder.c:116,9'
          Dst:             qp_decoder_finish
        - Src:             'istream-qp-decoder.c:117,3'
          Dst:             buffer_set_used_size
        - Src:             'istream-qp-decoder.c:119,2'
          Dst:             i_stream_default_seek_nonseekable
    - functionName:    i_stream_qp_decoder_read
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-qp-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          356
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - binary_to_hex
        - buffer_delete
        - i_panic
        - i_stream_get_max_buffer_size
        - i_stream_read_more_memarea
        - i_stream_skip
        - io_stream_set_error
        - qp_decoder_finish
        - qp_decoder_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-qp-decoder.c:38,20'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-qp-decoder.c:42,4'
          Dst:             i_panic
        - Src:             'istream-qp-decoder.c:43,4'
          Dst:             buffer_delete
        - Src:             'istream-qp-decoder.c:50,3'
          Dst:             i_panic
        - Src:             'istream-qp-decoder.c:71,9'
          Dst:             i_stream_read_more_memarea
        - Src:             'istream-qp-decoder.c:79,8'
          Dst:             qp_decoder_finish
        - Src:             'istream-qp-decoder.c:80,5'
          Dst:             i_panic
        - Src:             'istream-qp-decoder.c:83,4'
          Dst:             io_stream_set_error
        - Src:             'istream-qp-decoder.c:88,7'
          Dst:             qp_decoder_more
        - Src:             'istream-qp-decoder.c:90,4'
          Dst:             i_panic
        - Src:             'istream-qp-decoder.c:93,5'
          Dst:             binary_to_hex
        - Src:             'istream-qp-decoder.c:91,4'
          Dst:             io_stream_set_error
        - Src:             'istream-qp-decoder.c:97,3'
          Dst:             i_stream_skip
    - functionName:    i_stream_qp_decoder_close
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-qp-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
        - i_stream_close
        - qp_decoder_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-qp-decoder.c:23,3'
          Dst:             qp_decoder_deinit
        - Src:             'istream-qp-decoder.c:24,2'
          Dst:             buffer_free
        - Src:             'istream-qp-decoder.c:26,3'
          Dst:             i_stream_close
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_stream_create_qp_decoder
      functionSourceFile: '/src/dovecot/src/lib-mail/istream-qp-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          101
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
        - qp_decoder_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-qp-decoder.c:126,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-qp-decoder.c:126,12'
          Dst:             p_malloc
        - Src:             'istream-qp-decoder.c:128,17'
          Dst:             buffer_create_dynamic
        - Src:             'istream-qp-decoder.c:129,16'
          Dst:             qp_decoder_init
        - Src:             'istream-qp-decoder.c:139,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-qp-decoder.c:138,9'
          Dst:             i_stream_create
    - functionName:    uni_is_valid_ucs4
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    html_entity_get_unichar
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          120
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - str_to_uint32
        - str_to_uint32_hex
        - strcmp
        - uni_is_valid_ucs4
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:123,7'
          Dst:             strcmp
        - Src:             'mail-html2text.c:134,8'
          Dst:             str_to_uint32_hex
        - Src:             'mail-html2text.c:135,7'
          Dst:             str_to_uint32
        - Src:             'mail-html2text.c:136,7'
          Dst:             uni_is_valid_ucs4
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    mail_html2text_add_space
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append_c
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:176,3'
          Dst:             buffer_append_c
    - functionName:    parse_entity
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          164
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - html_entity_get_unichar
        - i_memcpy
        - i_panic
        - uni_ucs4_to_utf8_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:162,2'
          Dst:             i_panic
        - Src:             'mail-html2text.c:163,2'
          Dst:             i_memcpy
        - Src:             'mail-html2text.c:165,6'
          Dst:             html_entity_get_unichar
        - Src:             'mail-html2text.c:166,3'
          Dst:             uni_ucs4_to_utf8_c
    - functionName:    parse_tag_name
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          481
      EdgeCount:       131
      CyclomaticComplexity: 39
      functionsReached:
        - i_memcasecmp
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:71,19'
          Dst:             memcmp
        - Src:             'mail-html2text.c:75,19'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:80,19'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:85,19'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:90,20'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:96,20'
          Dst:             i_memcasecmp
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    mail_html2text_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     externalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_free
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:352,2'
          Dst:             buffer_free
        - Src:             'mail-html2text.c:353,2'
          Dst:             p_free_internal
    - functionName:    parse_data
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         125
      ICount:          660
      EdgeCount:       163
      CyclomaticComplexity: 40
      functionsReached:
        - buffer_append
        - buffer_append_c
        - i_memcasecmp
        - mail_html2text_add_space
        - parse_entity
        - parse_tag_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mail-html2text.c:188,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mail-html2text.c:191,11'
          Dst:             parse_tag_name
        - Src:             'mail-html2text.c:199,11'
          Dst:             parse_entity
        - Src:             'mail-html2text.c:204,5'
          Dst:             buffer_append_c
        - Src:             'mail-html2text.c:216,6'
          Dst:             buffer_append
        - Src:             'mail-html2text.c:218,6'
          Dst:             buffer_append_c
        - Src:             'mail-html2text.c:221,5'
          Dst:             mail_html2text_add_space
        - Src:             'mail-html2text.c:262,9'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:265,6'
          Dst:             mail_html2text_add_space
        - Src:             'mail-html2text.c:275,9'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:278,6'
          Dst:             mail_html2text_add_space
        - Src:             'mail-html2text.c:288,9'
          Dst:             i_memcasecmp
        - Src:             'mail-html2text.c:298,5'
          Dst:             buffer_append_c
    - functionName:    mail_html2text_more
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     externalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          178
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - buffer_delete
        - buffer_set_used_size
        - i_panic
        - parse_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:311,2'
          Dst:             i_panic
        - Src:             'mail-html2text.c:319,3'
          Dst:             buffer_append
        - Src:             'mail-html2text.c:320,9'
          Dst:             parse_data
        - Src:             'mail-html2text.c:332,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-html2text.c:336,4'
          Dst:             buffer_set_used_size
        - Src:             'mail-html2text.c:337,4'
          Dst:             buffer_delete
        - Src:             'mail-html2text.c:340,8'
          Dst:             parse_data
        - Src:             'mail-html2text.c:341,2'
          Dst:             buffer_append
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    mail_html2text_init
      functionSourceFile: '/src/dovecot/src/lib-mail/mail-html2text.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mail-html2text.c:59,7'
          Dst:             malloc_multiply_check
        - Src:             'mail-html2text.c:59,7'
          Dst:             p_malloc
        - Src:             'mail-html2text.c:61,14'
          Dst:             buffer_create_dynamic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    mbox_from_create
      functionSourceFile: '/src/dovecot/src/lib-mail/mbox-from.c'
      linkageType:     externalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          156
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - localtime
        - str_append
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-from.c:263,8'
          Dst:             t_str_new
        - Src:             'mbox-from.c:264,2'
          Dst:             str_append
        - Src:             'mbox-from.c:265,2'
          Dst:             str_append
        - Src:             'mbox-from.c:266,2'
          Dst:             str_append
        - Src:             'mbox-from.c:270,7'
          Dst:             localtime
        - Src:             'mbox-from.c:273,2'
          Dst:             str_append
        - Src:             'mbox-from.c:274,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:277,2'
          Dst:             str_append
        - Src:             'mbox-from.c:278,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:281,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:282,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:283,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:286,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:287,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:288,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:291,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:292,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:293,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:296,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:297,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:298,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:302,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:303,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:304,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:305,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:307,2'
          Dst:             str_append_c
        - Src:             'mbox-from.c:308,9'
          Dst:             str_c
    - functionName:    mbox_parse_year
      functionSourceFile: '/src/dovecot/src/lib-mail/mbox-from.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          126
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-from.c:45,7'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:45,29'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:46,7'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:46,29'
          Dst:             __ctype_b_loc
    - functionName:    mbox_parse_month
      functionSourceFile: '/src/dovecot/src/lib-mail/mbox-from.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          101
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcasecmp
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-from.c:27,7'
          Dst:             i_memcasecmp
        - Src:             'mbox-from.c:33,17'
          Dst:             memcmp
    - functionName:    mbox_from_parse
      functionSourceFile: '/src/dovecot/src/lib-mail/mbox-from.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         195
      ICount:          1349
      EdgeCount:       271
      CyclomaticComplexity: 78
      functionsReached:
        - __ctype_b_loc
        - i_strdup_until
        - localtime
        - mbox_parse_month
        - mbox_parse_year
        - mktime
        - utc_mktime
        - utc_offset
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mbox-from.c:109,6'
          Dst:             mbox_parse_month
        - Src:             'mbox-from.c:114,8'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:119,7'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:127,7'
          Dst:             mbox_parse_month
        - Src:             'mbox-from.c:131,7'
          Dst:             mbox_parse_year
        - Src:             'mbox-from.c:142,9'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:147,9'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:147,31'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:159,7'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:159,29'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:165,7'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:165,29'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:177,8'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:177,30'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:198,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:198,28'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:199,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:199,28'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:211,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:211,27'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:212,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:212,27'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:223,7'
          Dst:             mbox_parse_year
        - Src:             'mbox-from.c:231,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:231,27'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:232,6'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:232,27'
          Dst:             __ctype_b_loc
        - Src:             'mbox-from.c:240,7'
          Dst:             utc_mktime
        - Src:             'mbox-from.c:249,13'
          Dst:             mktime
        - Src:             'mbox-from.c:250,29'
          Dst:             localtime
        - Src:             'mbox-from.c:250,18'
          Dst:             utc_offset
        - Src:             'mbox-from.c:253,14'
          Dst:             i_strdup_until
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    parse_path
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          179
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - add_address
        - parse_angle_addr
        - parse_domain
        - parse_local_part
        - rfc822_skip_lwsp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:417,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:424,12'
          Dst:             parse_local_part
        - Src:             'message-address.c:426,10'
          Dst:             parse_domain
        - Src:             'message-address.c:429,9'
          Dst:             parse_angle_addr
        - Src:             'message-address.c:431,22'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:439,2'
          Dst:             add_address
    - functionName:    parse_local_part
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - p_strdup
        - parse_nonstrict_dot_atom
        - rfc822_parse_dot_atom
        - rfc822_parse_quoted_string
        - str_c
        - str_truncate
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:109,2'
          Dst:             i_panic
        - Src:             'message-address.c:111,2'
          Dst:             str_truncate
        - Src:             'message-address.c:113,9'
          Dst:             rfc822_parse_quoted_string
        - Src:             'message-address.c:115,9'
          Dst:             rfc822_parse_dot_atom
        - Src:             'message-address.c:117,9'
          Dst:             parse_nonstrict_dot_atom
        - Src:             'message-address.c:121,42'
          Dst:             str_c
        - Src:             'message-address.c:121,22'
          Dst:             p_strdup
    - functionName:    parse_domain
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - rfc822_parse_domain
        - str_c
        - str_truncate
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:129,2'
          Dst:             str_truncate
        - Src:             'message-address.c:130,13'
          Dst:             rfc822_parse_domain
        - Src:             'message-address.c:133,41'
          Dst:             str_c
        - Src:             'message-address.c:133,21'
          Dst:             p_strdup
    - functionName:    parse_angle_addr
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          273
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - parse_domain
        - parse_domain_list
        - parse_local_part
        - rfc822_skip_lwsp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:169,2'
          Dst:             i_panic
        - Src:             'message-address.c:172,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:176,7'
          Dst:             parse_domain_list
        - Src:             'message-address.c:187,7'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:194,7'
          Dst:             parse_local_part
        - Src:             'message-address.c:197,8'
          Dst:             parse_domain
        - Src:             'message-address.c:206,9'
          Dst:             rfc822_skip_lwsp
    - functionName:    add_address
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - malloc_multiply_check
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:27,9'
          Dst:             malloc_multiply_check
        - Src:             'message-address.c:27,9'
          Dst:             p_malloc
        - Src:             'message-address.c:29,2'
          Dst:             i_memcpy
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    parse_domain_list
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          141
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - p_strdup
        - rfc822_parse_domain
        - rfc822_skip_lwsp
        - str_append_c
        - str_c
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:142,2'
          Dst:             str_truncate
        - Src:             'message-address.c:150,7'
          Dst:             str_len
        - Src:             'message-address.c:151,4'
          Dst:             str_append_c
        - Src:             'message-address.c:153,3'
          Dst:             str_append_c
        - Src:             'message-address.c:154,14'
          Dst:             rfc822_parse_domain
        - Src:             'message-address.c:157,10'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:161,40'
          Dst:             str_c
        - Src:             'message-address.c:161,20'
          Dst:             p_strdup
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    8
      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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    parse_nonstrict_dot_atom
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - rfc822_parse_atom
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:85,4'
          Dst:             str_append_c
        - Src:             'message-address.c:96,9'
          Dst:             rfc822_parse_atom
    - functionName:    parse_addr_spec
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          228
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - p_strdup
        - parse_domain
        - parse_local_part
        - rfc822_parse_phrase
        - str_append_c
        - str_c
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:239,2'
          Dst:             i_panic
        - Src:             'message-address.c:241,2'
          Dst:             str_truncate
        - Src:             'message-address.c:244,8'
          Dst:             parse_local_part
        - Src:             'message-address.c:251,10'
          Dst:             parse_domain
        - Src:             'message-address.c:256,6'
          Dst:             str_len
        - Src:             'message-address.c:257,40'
          Dst:             str_c
        - Src:             'message-address.c:257,20'
          Dst:             p_strdup
        - Src:             'message-address.c:263,3'
          Dst:             str_append_c
        - Src:             'message-address.c:264,25'
          Dst:             str_len
        - Src:             'message-address.c:265,9'
          Dst:             rfc822_parse_phrase
        - Src:             'message-address.c:266,7'
          Dst:             str_len
        - Src:             'message-address.c:268,41'
          Dst:             str_c
        - Src:             'message-address.c:268,21'
          Dst:             p_strdup
    - functionName:    parse_name_addr
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - p_strdup
        - parse_angle_addr
        - rfc822_parse_phrase
        - str_c
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:215,2'
          Dst:             str_truncate
        - Src:             'message-address.c:216,6'
          Dst:             rfc822_parse_phrase
        - Src:             'message-address.c:220,39'
          Dst:             str_c
        - Src:             'message-address.c:220,19'
          Dst:             p_strdup
        - Src:             'message-address.c:225,6'
          Dst:             parse_angle_addr
    - functionName:    parse_mailbox
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - add_fixed_address
        - parse_addr_spec
        - parse_name_addr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:299,13'
          Dst:             parse_name_addr
        - Src:             'message-address.c:302,9'
          Dst:             parse_addr_spec
        - Src:             'message-address.c:312,2'
          Dst:             add_fixed_address
    - functionName:    add_fixed_address
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - add_address
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:289,2'
          Dst:             add_address
    - functionName:    parse_group
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          248
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - add_address
        - p_strdup
        - parse_mailbox
        - rfc822_parse_phrase
        - rfc822_skip_lwsp
        - str_c
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:324,2'
          Dst:             str_truncate
        - Src:             'message-address.c:325,6'
          Dst:             rfc822_parse_phrase
        - Src:             'message-address.c:332,13'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:335,42'
          Dst:             str_c
        - Src:             'message-address.c:335,22'
          Dst:             p_strdup
        - Src:             'message-address.c:336,2'
          Dst:             add_address
        - Src:             'message-address.c:342,8'
          Dst:             parse_mailbox
        - Src:             'message-address.c:349,8'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:361,10'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:367,2'
          Dst:             add_address
    - functionName:    parse_address
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_group
        - parse_mailbox
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:378,13'
          Dst:             parse_group
        - Src:             'message-address.c:381,9'
          Dst:             parse_mailbox
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    parse_address_list
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_fixed_address
        - parse_address
        - rfc822_skip_lwsp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:394,14'
          Dst:             parse_address
        - Src:             'message-address.c:402,14'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:405,5'
          Dst:             add_fixed_address
    - functionName:    message_header_is_address
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:677,7'
          Dst:             strcasecmp
    - functionName:    message_address_init_from_smtp
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_address_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_address_first_to_string
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_address_to_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:645,9'
          Dst:             message_address_to_string
    - functionName:    message_address_to_string
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_address_write
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:632,18'
          Dst:             t_str_new
        - Src:             'message-address.c:633,2'
          Dst:             message_address_write
        - Src:             'message-address.c:634,9'
          Dst:             str_c
    - functionName:    message_address_write
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         93
      ICount:          495
      EdgeCount:       119
      CyclomaticComplexity: 28
      functionsReached:
        - i_panic
        - str_append
        - str_append_c
        - str_append_maybe_escape
        - str_c
        - str_len
        - str_truncate
        - strstr
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:541,3'
          Dst:             i_panic
        - Src:             'message-address.c:542,3'
          Dst:             str_append
        - Src:             'message-address.c:554,4'
          Dst:             str_append
        - Src:             'message-address.c:562,10'
          Dst:             strstr
        - Src:             'message-address.c:566,7'
          Dst:             str_append
        - Src:             'message-address.c:568,7'
          Dst:             str_append_maybe_escape
        - Src:             'message-address.c:571,6'
          Dst:             str_append
        - Src:             'message-address.c:573,5'
          Dst:             str_append
        - Src:             'message-address.c:577,5'
          Dst:             i_panic
        - Src:             'message-address.c:580,11'
          Dst:             str_c
        - Src:             'message-address.c:580,22'
          Dst:             str_len
        - Src:             'message-address.c:581,5'
          Dst:             i_panic
        - Src:             'message-address.c:583,24'
          Dst:             str_len
        - Src:             'message-address.c:583,6'
          Dst:             str_truncate
        - Src:             'message-address.c:585,24'
          Dst:             str_len
        - Src:             'message-address.c:585,6'
          Dst:             str_truncate
        - Src:             'message-address.c:586,5'
          Dst:             str_append_c
        - Src:             'message-address.c:592,4'
          Dst:             i_panic
        - Src:             'message-address.c:596,9'
          Dst:             strstr
        - Src:             'message-address.c:600,6'
          Dst:             str_append
        - Src:             'message-address.c:602,6'
          Dst:             str_append_maybe_escape
        - Src:             'message-address.c:608,6'
          Dst:             str_append_c
        - Src:             'message-address.c:609,5'
          Dst:             str_append_c
        - Src:             'message-address.c:611,6'
          Dst:             str_append
        - Src:             'message-address.c:612,6'
          Dst:             str_append_c
        - Src:             'message-address.c:615,6'
          Dst:             str_append
        - Src:             'message-address.c:617,6'
          Dst:             str_append_maybe_escape
        - Src:             'message-address.c:619,6'
          Dst:             str_append_c
        - Src:             'message-address.c:620,6'
          Dst:             str_append
        - Src:             'message-address.c:622,5'
          Dst:             str_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_maybe_escape
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          240
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - str_append_c
        - str_append_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:47,3'
          Dst:             str_append_data
        - Src:             'message-address.c:59,3'
          Dst:             str_append_c
        - Src:             'message-address.c:60,3'
          Dst:             str_append_data
        - Src:             'message-address.c:61,3'
          Dst:             str_append_c
        - Src:             'message-address.c:66,2'
          Dst:             str_append_c
        - Src:             'message-address.c:67,2'
          Dst:             str_append_data
        - Src:             'message-address.c:71,4'
          Dst:             str_append_c
        - Src:             'message-address.c:72,3'
          Dst:             str_append_c
        - Src:             'message-address.c:75,2'
          Dst:             str_append_c
    - functionName:    message_address_parse_path_real
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - parse_path
        - rfc822_parser_deinit
        - rfc822_parser_init
        - str_free
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:480,2'
          Dst:             rfc822_parser_init
        - Src:             'message-address.c:482,12'
          Dst:             str_new
        - Src:             'message-address.c:484,8'
          Dst:             parse_path
        - Src:             'message-address.c:486,2'
          Dst:             rfc822_parser_deinit
        - Src:             'message-address.c:487,2'
          Dst:             str_free
    - functionName:    message_address_parse_path
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - message_address_parse_path_real
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:523,10'
          Dst:             message_address_parse_path_real
        - Src:             'message-address.c:525,2'
          Dst:             t_push
        - Src:             'message-address.c:526,9'
          Dst:             message_address_parse_path_real
        - Src:             'message-address.c:527,4'
          Dst:             t_pop
        - Src:             'message-address.c:527,4'
          Dst:             i_panic
    - functionName:    message_address_parse_real
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_address_list
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_free
        - str_new
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:453,46'
          Dst:             t_str_new
        - Src:             'message-address.c:453,2'
          Dst:             rfc822_parser_init
        - Src:             'message-address.c:456,12'
          Dst:             str_new
        - Src:             'message-address.c:460,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-address.c:463,9'
          Dst:             parse_address_list
        - Src:             'message-address.c:465,2'
          Dst:             rfc822_parser_deinit
        - Src:             'message-address.c:466,2'
          Dst:             str_free
    - functionName:    message_address_parse_full
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - message_address_parse_real
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:509,3'
          Dst:             message_address_parse_real
        - Src:             'message-address.c:511,9'
          Dst:             t_push
        - Src:             'message-address.c:512,3'
          Dst:             message_address_parse_real
        - Src:             'message-address.c:514,4'
          Dst:             t_pop
        - Src:             'message-address.c:514,4'
          Dst:             i_panic
    - functionName:    message_address_parse
      functionSourceFile: '/src/dovecot/src/lib-mail/message-address.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_address_parse_full
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'message-address.c:498,2'
          Dst:             message_address_parse_full
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_binary_part_deserialize
      functionSourceFile: '/src/dovecot/src/lib-mail/message-binary-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - malloc_multiply_check
        - numpack_decode
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-binary-part.c:28,10'
          Dst:             malloc_multiply_check
        - Src:             'message-binary-part.c:28,10'
          Dst:             p_malloc
        - Src:             'message-binary-part.c:31,7'
          Dst:             numpack_decode
        - Src:             'message-binary-part.c:32,7'
          Dst:             numpack_decode
        - Src:             'message-binary-part.c:33,7'
          Dst:             numpack_decode
        - Src:             'message-binary-part.c:34,7'
          Dst:             numpack_decode
    - functionName:    message_binary_part_serialize
      functionSourceFile: '/src/dovecot/src/lib-mail/message-binary-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - numpack_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-binary-part.c:13,3'
          Dst:             numpack_encode
        - Src:             'message-binary-part.c:14,3'
          Dst:             numpack_encode
        - Src:             'message-binary-part.c:15,3'
          Dst:             numpack_encode
        - Src:             'message-binary-part.c:16,3'
          Dst:             numpack_encode
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    parse_timezone
      functionSourceFile: '/src/dovecot/src/lib-mail/message-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          377
      EdgeCount:       75
      CyclomaticComplexity: 21
      functionsReached:
        - __ctype_b_loc
        - toupper
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-date.c:73,3'
          Branch Sides:    []
      Callsites:
        - Src:             'message-date.c:38,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:38,30'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:39,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:39,30'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:51,9'
          Dst:             toupper
        - Src:             'message-date.c:63,18'
          Dst:             toupper
        - Src:             'message-date.c:63,46'
          Dst:             toupper
        - Src:             'message-date.c:73,11'
          Dst:             toupper
        - Src:             'message-date.c:91,7'
          Dst:             toupper
        - Src:             'message-date.c:93,7'
          Dst:             toupper
    - functionName:    next_token
      functionSourceFile: '/src/dovecot/src/lib-mail/message-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - rfc822_parse_atom
        - str_data
        - str_len
        - str_truncate
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'message-date.c:105,2'
          Dst:             str_truncate
        - Src:             'message-date.c:107,3'
          Dst:             rfc822_parse_atom
        - Src:             'message-date.c:109,11'
          Dst:             str_data
        - Src:             'message-date.c:110,15'
          Dst:             str_len
    - functionName:    message_date_create
      functionSourceFile: '/src/dovecot/src/lib-mail/message-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - localtime
        - t_strdup_printf
        - utc_offset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'message-date.c:269,7'
          Dst:             localtime
        - Src:             'message-date.c:270,11'
          Dst:             utc_offset
        - Src:             'message-date.c:278,9'
          Dst:             t_strdup_printf
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    message_date_parser_tokens
      functionSourceFile: '/src/dovecot/src/lib-mail/message-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         119
      ICount:          765
      EdgeCount:       165
      CyclomaticComplexity: 48
      functionsReached:
        - __ctype_b_loc
        - i_memcasecmp
        - next_token
        - parse_timezone
        - rfc822_skip_lwsp
        - utc_mktime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-date.c:126,9'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-date.c:129,6'
          Dst:             next_token
        - Src:             'message-date.c:136,3'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-date.c:138,7'
          Dst:             next_token
        - Src:             'message-date.c:143,29'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:148,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:154,6'
          Dst:             next_token
        - Src:             'message-date.c:158,7'
          Dst:             i_memcasecmp
        - Src:             'message-date.c:167,6'
          Dst:             next_token
        - Src:             'message-date.c:171,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:187,6'
          Dst:             next_token
        - Src:             'message-date.c:188,29'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:192,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:202,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-date.c:204,6'
          Dst:             next_token
        - Src:             'message-date.c:205,7'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:205,31'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:213,3'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-date.c:215,7'
          Dst:             next_token
        - Src:             'message-date.c:216,8'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:216,32'
          Dst:             __ctype_b_loc
        - Src:             'message-date.c:221,13'
          Dst:             next_token
        - Src:             'message-date.c:232,24'
          Dst:             parse_timezone
        - Src:             'message-date.c:236,17'
          Dst:             utc_mktime
    - functionName:    message_date_parse
      functionSourceFile: '/src/dovecot/src/lib-mail/message-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_date_parser_tokens
        - rfc822_parser_deinit
        - rfc822_parser_init
        - t_pop
        - t_push
        - t_str_new
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-date.c:250,2'
          Dst:             t_push
        - Src:             'message-date.c:253,3'
          Dst:             rfc822_parser_init
        - Src:             'message-date.c:254,13'
          Dst:             t_str_new
        - Src:             'message-date.c:255,13'
          Dst:             message_date_parser_tokens
        - Src:             'message-date.c:257,3'
          Dst:             rfc822_parser_deinit
        - Src:             'message-date.c:258,4'
          Dst:             t_pop
        - Src:             'message-date.c:258,4'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    translation_buf_decode
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          242
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - charset_to_utf8
        - i_memcpy
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:230,2'
          Dst:             i_memcpy
        - Src:             'message-decoder.c:234,2'
          Dst:             i_memcpy
        - Src:             'message-decoder.c:238,3'
          Dst:             charset_to_utf8
        - Src:             'message-decoder.c:266,3'
          Dst:             i_panic
        - Src:             'message-decoder.c:272,3'
          Dst:             i_panic
        - Src:             'message-decoder.c:275,3'
          Dst:             i_panic
        - Src:             'message-decoder.c:276,3'
          Dst:             i_memcpy
        - Src:             'message-decoder.c:284,2'
          Dst:             i_panic
    - functionName:    base64_decode_is_finished
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_strdup
        - rfc2231_parse
        - rfc822_parse_content_type
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - strcasecmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:143,2'
          Dst:             rfc822_parser_init
        - Src:             'message-decoder.c:144,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-decoder.c:145,8'
          Dst:             t_str_new
        - Src:             'message-decoder.c:146,8'
          Dst:             rfc822_parse_content_type
        - Src:             'message-decoder.c:147,31'
          Dst:             str_c
        - Src:             'message-decoder.c:147,22'
          Dst:             i_strdup
        - Src:             'message-decoder.c:149,3'
          Dst:             rfc822_parser_deinit
        - Src:             'message-decoder.c:153,2'
          Dst:             rfc2231_parse
        - Src:             'message-decoder.c:155,7'
          Dst:             strcasecmp
        - Src:             'message-decoder.c:156,27'
          Dst:             i_strdup
        - Src:             'message-decoder.c:160,2'
          Dst:             rfc822_parser_deinit
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    base64_decode_reset
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:178,2'
          Dst:             base64_decode_init
    - functionName:    base64_decode_init
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_decoder_current_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 423
      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:    message_decode_body
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          280
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - base64_decode_finish
        - base64_decode_is_finished
        - base64_decode_more
        - buffer_set_used_size
        - charset_to_utf8
        - i_memcpy
        - i_panic
        - qp_decoder_init
        - qp_decoder_more
        - translation_buf_decode
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-decoder.c:333,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-decoder.c:344,3'
          Dst:             buffer_set_used_size
        - Src:             'message-decoder.c:346,14'
          Dst:             qp_decoder_init
        - Src:             'message-decoder.c:347,9'
          Dst:             qp_decoder_more
        - Src:             'message-decoder.c:354,3'
          Dst:             buffer_set_used_size
        - Src:             'message-decoder.c:355,8'
          Dst:             base64_decode_is_finished
        - Src:             'message-decoder.c:356,8'
          Dst:             base64_decode_more
        - Src:             'message-decoder.c:361,11'
          Dst:             base64_decode_finish
        - Src:             'message-decoder.c:373,3'
          Dst:             buffer_set_used_size
        - Src:             'message-decoder.c:375,4'
          Dst:             translation_buf_decode
        - Src:             'message-decoder.c:378,9'
          Dst:             charset_to_utf8
        - Src:             'message-decoder.c:382,4'
          Dst:             i_panic
        - Src:             'message-decoder.c:384,4'
          Dst:             i_memcpy
    - functionName:    message_decode_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          304
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_set_used_size
        - i_panic
        - message_decoder_parse_cte
        - message_header_decode_utf8
        - message_header_is_address
        - parse_content_type
        - strcasecmp
        - t_pop
        - t_push
        - uni_utf8_get_valid_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:174,2'
          Dst:             t_push
        - Src:             'message-decoder.c:176,7'
          Dst:             strcasecmp
        - Src:             'message-decoder.c:177,4'
          Dst:             parse_content_type
        - Src:             'message-decoder.c:179,7'
          Dst:             strcasecmp
        - Src:             'message-decoder.c:180,23'
          Dst:             message_decoder_parse_cte
        - Src:             'message-decoder.c:181,4'
          Dst:             t_pop
        - Src:             'message-decoder.c:181,4'
          Dst:             i_panic
        - Src:             'message-decoder.c:183,2'
          Dst:             buffer_set_used_size
        - Src:             'message-decoder.c:185,6'
          Dst:             message_header_is_address
        - Src:             'message-decoder.c:190,3'
          Dst:             buffer_append
        - Src:             'message-decoder.c:192,3'
          Dst:             message_header_decode_utf8
        - Src:             'message-decoder.c:199,3'
          Dst:             buffer_append_c
        - Src:             'message-decoder.c:201,8'
          Dst:             uni_utf8_get_valid_data
        - Src:             'message-decoder.c:203,4'
          Dst:             buffer_append_c
    - functionName:    message_decoder_parse_cte
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          138
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcasecmp
        - rfc822_parse_mime_token
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_data
        - str_len
        - t_str_new
      functionUses:    2
      BranchProfiles:
        - Branch String:   'message-decoder.c:110,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-decoder.c:93,10'
          Dst:             t_str_new
        - Src:             'message-decoder.c:94,2'
          Dst:             rfc822_parser_init
        - Src:             'message-decoder.c:96,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-decoder.c:100,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'message-decoder.c:101,3'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-decoder.c:110,10'
          Dst:             str_len
        - Src:             'message-decoder.c:112,20'
          Dst:             str_data
        - Src:             'message-decoder.c:112,7'
          Dst:             i_memcasecmp
        - Src:             'message-decoder.c:113,20'
          Dst:             str_data
        - Src:             'message-decoder.c:113,7'
          Dst:             i_memcasecmp
        - Src:             'message-decoder.c:117,20'
          Dst:             str_data
        - Src:             'message-decoder.c:117,7'
          Dst:             i_memcasecmp
        - Src:             'message-decoder.c:119,25'
          Dst:             str_data
        - Src:             'message-decoder.c:119,12'
          Dst:             i_memcasecmp
        - Src:             'message-decoder.c:123,20'
          Dst:             str_data
        - Src:             'message-decoder.c:123,7'
          Dst:             i_memcasecmp
        - Src:             'message-decoder.c:127,2'
          Dst:             rfc822_parser_deinit
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_decoder_decode_reset
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - base64_decode_reset
        - p_free_internal
        - qp_decoder_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:430,2'
          Dst:             base64_decode_reset
        - Src:             'message-decoder.c:433,9'
          Dst:             qp_decoder_finish
        - Src:             'message-decoder.c:434,2'
          Dst:             p_free_internal
        - Src:             'message-decoder.c:435,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_decoder_decode_next_block
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - message_decode_body
        - message_decode_body_init_charset
        - message_decode_header
        - message_decoder_decode_reset
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:401,3'
          Dst:             message_decoder_decode_reset
        - Src:             'message-decoder.c:409,10'
          Dst:             message_decode_header
        - Src:             'message-decoder.c:411,10'
          Dst:             message_decode_body
        - Src:             'message-decoder.c:415,3'
          Dst:             message_decode_body_init_charset
    - functionName:    message_decode_body_init_charset
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          181
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - charset_to_utf8_begin
        - charset_to_utf8_end
        - charset_to_utf8_reset
        - charset_utf8_to_utf8_begin
        - i_strdup
        - p_free_internal
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:308,6'
          Dst:             strcasecmp
        - Src:             'message-decoder.c:310,3'
          Dst:             charset_to_utf8_reset
        - Src:             'message-decoder.c:315,3'
          Dst:             charset_to_utf8_end
        - Src:             'message-decoder.c:316,2'
          Dst:             p_free_internal
        - Src:             'message-decoder.c:318,31'
          Dst:             i_strdup
        - Src:             'message-decoder.c:320,6'
          Dst:             charset_to_utf8_begin
        - Src:             'message-decoder.c:322,24'
          Dst:             charset_utf8_to_utf8_begin
    - functionName:    message_decoder_set_return_binary
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - message_decode_body_init_charset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:84,2'
          Dst:             message_decode_body_init_charset
    - functionName:    message_decoder_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
        - charset_to_utf8_end
        - p_free_internal
        - qp_decoder_deinit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:65,3'
          Dst:             charset_to_utf8_end
        - Src:             'message-decoder.c:67,3'
          Dst:             qp_decoder_deinit
        - Src:             'message-decoder.c:69,2'
          Dst:             buffer_free
        - Src:             'message-decoder.c:70,2'
          Dst:             buffer_free
        - Src:             'message-decoder.c:71,2'
          Dst:             p_free_internal
        - Src:             'message-decoder.c:72,2'
          Dst:             p_free_internal
        - Src:             'message-decoder.c:73,2'
          Dst:             p_free_internal
        - Src:             'message-decoder.c:74,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_decoder_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode_init
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-decoder.c:49,8'
          Dst:             malloc_multiply_check
        - Src:             'message-decoder.c:49,8'
          Dst:             p_malloc
        - Src:             'message-decoder.c:52,13'
          Dst:             buffer_create_dynamic
        - Src:             'message-decoder.c:53,14'
          Dst:             buffer_create_dynamic
        - Src:             'message-decoder.c:54,2'
          Dst:             base64_decode_init
    - functionName:    base64_decode
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_decode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:312,9'
          Dst:             base64_scheme_decode
    - functionName:    decode_utf8_callback
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-decode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append
        - charset_is_utf8
        - charset_to_utf8
        - charset_to_utf8_begin
        - charset_to_utf8_end
        - uni_utf8_get_valid_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-decode.c:154,25'
          Dst:             charset_is_utf8
        - Src:             'message-header-decode.c:159,8'
          Dst:             uni_utf8_get_valid_data
        - Src:             'message-header-decode.c:160,5'
          Dst:             buffer_append
        - Src:             'message-header-decode.c:165,6'
          Dst:             charset_to_utf8_begin
        - Src:             'message-header-decode.c:168,7'
          Dst:             uni_utf8_get_valid_data
        - Src:             'message-header-decode.c:169,4'
          Dst:             buffer_append
        - Src:             'message-header-decode.c:174,8'
          Dst:             charset_to_utf8
        - Src:             'message-header-decode.c:175,2'
          Dst:             charset_to_utf8_end
    - functionName:    message_header_decode_utf8
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-decode.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - decode_utf8_callback
        - message_header_decode
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-decode.c:187,2'
          Dst:             message_header_decode
        - Src:             'message-header-decode.c:187,2'
          Dst:             decode_utf8_callback
    - functionName:    message_header_decode
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-decode.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          248
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - buffer_create_dynamic
        - buffer_free
        - buffer_set_used_size
        - i_panic
        - is_only_lwsp
        - message_header_decode_encoded
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-decode.c:94,8'
          Dst:             is_only_lwsp
        - Src:             'message-header-decode.c:104,16'
          Dst:             buffer_create_dynamic
        - Src:             'message-header-decode.c:107,4'
          Dst:             buffer_set_used_size
        - Src:             'message-header-decode.c:111,9'
          Dst:             message_header_decode_encoded
        - Src:             'message-header-decode.c:134,3'
          Dst:             i_panic
        - Src:             'message-header-decode.c:138,2'
          Dst:             buffer_free
    - functionName:    is_only_lwsp
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-decode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_header_decode_encoded
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-decode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          217
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - base64_decode
        - buffer_append
        - buffer_append_c
        - i_panic
        - quoted_printable_q_decode
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-header-decode.c:39,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-header-decode.c:33,2'
          Dst:             i_panic
        - Src:             'message-header-decode.c:35,2'
          Dst:             buffer_append
        - Src:             'message-header-decode.c:36,2'
          Dst:             buffer_append_c
        - Src:             'message-header-decode.c:42,7'
          Dst:             quoted_printable_q_decode
        - Src:             'message-header-decode.c:50,7'
          Dst:             base64_decode
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    input_idx_need_encoding
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          240
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - memcmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'message-header-encode.c:18,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-header-encode.c:29,3'
          Dst:             i_panic
        - Src:             'message-header-encode.c:45,7'
          Dst:             memcmp
    - functionName:    message_header_encode_data
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-encode.c'
      linkageType:     externalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          549
      EdgeCount:       119
      CyclomaticComplexity: 31
      functionsReached:
        - i_panic
        - input_idx_need_encoding
        - memchr
        - message_header_encode_b
        - message_header_encode_data
        - message_header_encode_q
        - str_append_c
        - str_append_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-encode.c:315,7'
          Dst:             input_idx_need_encoding
        - Src:             'message-header-encode.c:320,3'
          Dst:             str_append_data
        - Src:             'message-header-encode.c:330,2'
          Dst:             str_append_data
        - Src:             'message-header-encode.c:341,20'
          Dst:             memchr
        - Src:             'message-header-encode.c:355,7'
          Dst:             input_idx_need_encoding
        - Src:             'message-header-encode.c:374,3'
          Dst:             message_header_encode_q
        - Src:             'message-header-encode.c:376,3'
          Dst:             message_header_encode_b
        - Src:             'message-header-encode.c:377,2'
          Dst:             str_append_data
        - Src:             'message-header-encode.c:388,3'
          Dst:             i_panic
        - Src:             'message-header-encode.c:393,4'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:394,3'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:397,4'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:401,4'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:403,3'
          Dst:             message_header_encode_data
    - functionName:    message_header_encode_q
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-encode.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          336
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - str_append
        - str_append_c
        - str_printfa
        - uni_utf8_get_char_n
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-header-encode.c:90,3'
          Branch Sides:    []
      Callsites:
        - Src:             'message-header-encode.c:76,3'
          Dst:             str_append
        - Src:             'message-header-encode.c:82,2'
          Dst:             str_append
        - Src:             'message-header-encode.c:104,10'
          Dst:             uni_utf8_get_char_n
        - Src:             'message-header-encode.c:124,5'
          Dst:             i_panic
        - Src:             'message-header-encode.c:139,4'
          Dst:             str_append
        - Src:             'message-header-encode.c:147,4'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:152,5'
          Dst:             str_printfa
        - Src:             'message-header-encode.c:158,5'
          Dst:             str_printfa
        - Src:             'message-header-encode.c:161,4'
          Dst:             str_append_c
        - Src:             'message-header-encode.c:165,3'
          Dst:             i_panic
        - Src:             'message-header-encode.c:173,2'
          Dst:             str_append
    - functionName:    message_header_encode_b
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-encode.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         75
      ICount:          433
      EdgeCount:       91
      CyclomaticComplexity: 18
      functionsReached:
        - base64_encode_finish
        - base64_encode_get_full_space
        - base64_encode_init
        - base64_encode_more
        - base64_encode_reset
        - i_panic
        - i_unreached
        - str_append
        - uni_utf8_get_char_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-encode.c:192,3'
          Dst:             str_append
        - Src:             'message-header-encode.c:198,2'
          Dst:             str_append
        - Src:             'message-header-encode.c:199,2'
          Dst:             base64_encode_init
        - Src:             'message-header-encode.c:207,11'
          Dst:             base64_encode_get_full_space
        - Src:             'message-header-encode.c:214,10'
          Dst:             uni_utf8_get_char_n
        - Src:             'message-header-encode.c:227,9'
          Dst:             base64_encode_more
        - Src:             'message-header-encode.c:229,5'
          Dst:             i_unreached
        - Src:             'message-header-encode.c:233,4'
          Dst:             i_panic
        - Src:             'message-header-encode.c:234,4'
          Dst:             i_panic
        - Src:             'message-header-encode.c:245,12'
          Dst:             base64_encode_get_full_space
        - Src:             'message-header-encode.c:253,9'
          Dst:             base64_encode_finish
        - Src:             'message-header-encode.c:254,5'
          Dst:             i_unreached
        - Src:             'message-header-encode.c:256,4'
          Dst:             i_panic
        - Src:             'message-header-encode.c:258,4'
          Dst:             str_append
        - Src:             'message-header-encode.c:261,4'
          Dst:             base64_encode_reset
        - Src:             'message-header-encode.c:269,9'
          Dst:             base64_encode_more
        - Src:             'message-header-encode.c:271,5'
          Dst:             i_unreached
        - Src:             'message-header-encode.c:278,11'
          Dst:             uni_utf8_get_char_n
        - Src:             'message-header-encode.c:286,3'
          Dst:             i_panic
        - Src:             'message-header-encode.c:294,7'
          Dst:             base64_encode_finish
        - Src:             'message-header-encode.c:295,3'
          Dst:             i_unreached
        - Src:             'message-header-encode.c:296,2'
          Dst:             str_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_encode_reset
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:79,2'
          Dst:             base64_encode_init
    - functionName:    message_header_encode
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-encode.c'
      linkageType:     externalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_header_encode_data
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-encode.c:301,50'
          Dst:             strlen
        - Src:             'message-header-encode.c:301,2'
          Dst:             message_header_encode_data
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_header_name_is_valid
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          87
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    message_header_strdup
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - memchr
        - p_malloc
        - str_append
        - str_append_c
        - str_c
        - str_new
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:464,2'
          Dst:             i_panic
        - Src:             'message-header-parser.c:466,6'
          Dst:             memchr
        - Src:             'message-header-parser.c:468,16'
          Dst:             p_malloc
        - Src:             'message-header-parser.c:469,3'
          Dst:             i_memcpy
        - Src:             'message-header-parser.c:475,18'
          Dst:             str_new
        - Src:             'message-header-parser.c:478,4'
          Dst:             str_append_c
        - Src:             'message-header-parser.c:480,4'
          Dst:             str_append
        - Src:             'message-header-parser.c:482,9'
          Dst:             str_c
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    message_header_line_write
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - buffer_append_c
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:450,36'
          Dst:             strlen
        - Src:             'message-header-parser.c:450,3'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:451,3'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:453,2'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:456,4'
          Dst:             buffer_append_c
        - Src:             'message-header-parser.c:457,3'
          Dst:             buffer_append_c
    - functionName:    message_parse_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          112
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - message_parse_header_deinit
        - message_parse_header_init
        - message_parse_header_next
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:433,12'
          Dst:             message_parse_header_init
        - Src:             'message-header-parser.c:434,16'
          Dst:             message_parse_header_next
        - Src:             'message-header-parser.c:434,63'
          Dst:             t_push
        - Src:             'message-header-parser.c:436,4'
          Dst:             t_pop
        - Src:             'message-header-parser.c:436,4'
          Dst:             i_panic
        - Src:             'message-header-parser.c:437,2'
          Dst:             i_panic
        - Src:             'message-header-parser.c:438,2'
          Dst:             message_parse_header_deinit
        - Src:             'message-header-parser.c:441,2'
          Dst:             t_push
        - Src:             'message-header-parser.c:443,4'
          Dst:             t_pop
        - Src:             'message-header-parser.c:443,4'
          Dst:             i_panic
    - functionName:    message_parse_header_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
        - str_new
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:38,8'
          Dst:             malloc_multiply_check
        - Src:             'message-header-parser.c:38,8'
          Dst:             p_malloc
        - Src:             'message-header-parser.c:41,14'
          Dst:             str_new
        - Src:             'message-header-parser.c:43,19'
          Dst:             buffer_create_dynamic
        - Src:             'message-header-parser.c:45,2'
          Dst:             i_stream_ref
    - functionName:    message_parse_header_next
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         280
      ICount:          1884
      EdgeCount:       372
      CyclomaticComplexity: 94
      functionsReached:
        - buffer_append
        - buffer_append_c
        - buffer_set_used_size
        - i_panic
        - i_stream_read_bytes
        - i_stream_skip
        - str_append_c
        - str_append_data
        - str_c
        - str_data
        - str_truncate
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:100,3'
          Dst:             buffer_set_used_size
        - Src:             'message-header-parser.c:109,9'
          Dst:             i_stream_read_bytes
        - Src:             'message-header-parser.c:127,5'
          Dst:             i_panic
        - Src:             'message-header-parser.c:152,5'
          Dst:             i_panic
        - Src:             'message-header-parser.c:155,4'
          Dst:             i_panic
        - Src:             'message-header-parser.c:181,5'
          Dst:             i_panic
        - Src:             'message-header-parser.c:242,5'
          Dst:             i_stream_skip
        - Src:             'message-header-parser.c:347,4'
          Dst:             str_truncate
        - Src:             'message-header-parser.c:350,4'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:351,4'
          Dst:             str_append_c
        - Src:             'message-header-parser.c:357,4'
          Dst:             str_append_data
        - Src:             'message-header-parser.c:359,17'
          Dst:             str_c
        - Src:             'message-header-parser.c:361,19'
          Dst:             str_data
        - Src:             'message-header-parser.c:375,3'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:386,5'
          Dst:             buffer_append_c
        - Src:             'message-header-parser.c:387,4'
          Dst:             buffer_append_c
        - Src:             'message-header-parser.c:393,4'
          Dst:             buffer_append_c
        - Src:             'message-header-parser.c:394,4'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:396,4'
          Dst:             buffer_append
        - Src:             'message-header-parser.c:413,2'
          Dst:             i_stream_skip
    - functionName:    message_parse_header_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - i_stream_unref
        - p_free_internal
        - str_free
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:71,2'
          Dst:             i_stream_unref
        - Src:             'message-header-parser.c:72,2'
          Dst:             buffer_free
        - Src:             'message-header-parser.c:73,2'
          Dst:             str_free
        - Src:             'message-header-parser.c:74,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    str_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_parse_header_has_nuls
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_parse_header_lower_limit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - message_parse_header_set_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-header-parser.c:64,3'
          Dst:             message_parse_header_set_limit
    - functionName:    message_parse_header_set_limit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-header-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    get_untokenized_msgid
      functionSourceFile: '/src/dovecot/src/lib-mail/message-id.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          107
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - rfc822_parse_dot_atom
        - rfc822_parse_quoted_string
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_append_c
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-id.c:15,7'
          Dst:             strlen
        - Src:             'message-id.c:14,2'
          Dst:             rfc822_parser_init
        - Src:             'message-id.c:25,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-id.c:28,9'
          Dst:             rfc822_parse_quoted_string
        - Src:             'message-id.c:30,9'
          Dst:             rfc822_parse_dot_atom
        - Src:             'message-id.c:32,3'
          Dst:             str_append_c
        - Src:             'message-id.c:34,3'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-id.c:36,7'
          Dst:             rfc822_parse_dot_atom
        - Src:             'message-id.c:42,2'
          Dst:             rfc822_parser_deinit
    - functionName:    strip_lwsp
      functionSourceFile: '/src/dovecot/src/lib-mail/message-id.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          138
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_id_get_next
      functionSourceFile: '/src/dovecot/src/lib-mail/message-id.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          221
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - get_untokenized_msgid
        - p_strdup_until
        - str_c
        - strip_lwsp
        - t_str_new
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'message-id.c:108,9'
          Dst:             p_strdup_until
        - Src:             'message-id.c:110,5'
          Dst:             strip_lwsp
        - Src:             'message-id.c:120,11'
          Dst:             t_str_new
        - Src:             'message-id.c:122,8'
          Dst:             get_untokenized_msgid
        - Src:             'message-id.c:123,12'
          Dst:             str_c
    - functionName:    preparsed_parse_epilogue_more
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          95
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - message_parser_read_more
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:174,13'
          Dst:             message_parser_read_more
    - functionName:    preparsed_parse_body_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_skip
        - preparsed_skip_to_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:53,2'
          Dst:             i_stream_skip
        - Src:             'message-parser-from-parts.c:56,2'
          Dst:             preparsed_skip_to_next
    - functionName:    preparsed_skip_to_next
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          164
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    preparsed_parse_next_header_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          103
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_create_limit
        - i_stream_skip
        - i_stream_unref
        - message_parse_header_init
        - preparsed_parse_next_header
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:383,2'
          Dst:             i_panic
        - Src:             'message-parser-from-parts.c:392,2'
          Dst:             i_stream_skip
        - Src:             'message-parser-from-parts.c:399,14'
          Dst:             i_stream_create_limit
        - Src:             'message-parser-from-parts.c:401,3'
          Dst:             message_parse_header_init
        - Src:             'message-parser-from-parts.c:402,2'
          Dst:             i_stream_unref
        - Src:             'message-parser-from-parts.c:405,9'
          Dst:             preparsed_parse_next_header
    - functionName:    preparsed_parse_epilogue_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:319,2'
          Dst:             i_stream_skip
    - functionName:    preparsed_parse_eof
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 15
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    preparsed_parse_epilogue_boundary
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          274
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - memchr
        - message_parser_read_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:233,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser-from-parts.c:255,13'
          Dst:             memchr
    - functionName:    preparsed_parse_epilogue_skip_boundary_line
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          128
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - memchr
        - message_parser_read_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:196,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser-from-parts.c:202,8'
          Dst:             memchr
    - functionName:    preparsed_parse_next_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          147
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - message_parse_header_deinit
        - message_parse_header_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:350,8'
          Dst:             message_parse_header_next
        - Src:             'message-parser-from-parts.c:352,21'
          Dst:             i_stream_get_data_size
        - Src:             'message-parser-from-parts.c:361,2'
          Dst:             message_parse_header_deinit
        - Src:             'message-parser-from-parts.c:369,2'
          Dst:             i_panic
    - functionName:    preparsed_parse_finish_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - preparsed_skip_to_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:339,3'
          Dst:             preparsed_skip_to_next
    - functionName:    preparsed_parse_body_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          104
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:292,2'
          Dst:             i_stream_skip
    - functionName:    preparsed_parse_body_more
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          95
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - message_parser_read_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:80,13'
          Dst:             message_parser_read_more
    - functionName:    preparsed_parse_prologue_more
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          370
      EdgeCount:       73
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - message_parser_read_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:99,2'
          Dst:             i_panic
        - Src:             'message-parser-from-parts.c:102,13'
          Dst:             message_parser_read_more
    - functionName:    preparsed_parse_prologue_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:63,2'
          Dst:             i_stream_skip
    - functionName:    message_parser_init_from_parts
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser-from-parts.c'
      linkageType:     externalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_parser_init_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser-from-parts.c:415,2'
          Dst:             i_panic
        - Src:             'message-parser-from-parts.c:417,8'
          Dst:             message_parser_init_int
    - functionName:    message_boundary_free
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:192,2'
          Dst:             p_free_internal
        - Src:             'message-parser.c:193,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_part_append
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          181
      EdgeCount:       23
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:141,2'
          Dst:             i_panic
        - Src:             'message-parser.c:142,2'
          Dst:             i_panic
        - Src:             'message-parser.c:143,2'
          Dst:             i_panic
        - Src:             'message-parser.c:146,9'
          Dst:             malloc_multiply_check
        - Src:             'message-parser.c:146,9'
          Dst:             p_malloc
        - Src:             'message-parser.c:159,2'
          Dst:             array_append_i
        - Src:             'message-parser.c:167,2'
          Dst:             i_panic
        - Src:             'message-parser.c:168,2'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    parse_next_mime_header_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_part_append
        - parse_next_header_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:298,2'
          Dst:             message_part_append
        - Src:             'message-parser.c:301,9'
          Dst:             parse_next_header_init
    - functionName:    parse_next_header_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_parse_header_init
        - parse_next_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:748,2'
          Dst:             i_panic
        - Src:             'message-parser.c:751,3'
          Dst:             message_parse_header_init
        - Src:             'message-parser.c:757,9'
          Dst:             parse_next_header
    - functionName:    parse_next_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         135
      ICount:          843
      EdgeCount:       173
      CyclomaticComplexity: 40
      functionsReached:
        - block_is_at_eoh
        - boundary_line_find
        - i_panic
        - i_stream_get_data_size
        - message_parse_header_deinit
        - message_parse_header_has_nuls
        - message_parse_header_lower_limit
        - message_parse_header_next
        - message_parser_read_more
        - p_free_internal
        - parse_content_type
        - parse_next_body_multipart_init
        - parse_too_many_nested_mime_parts
        - strcasecmp
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:584,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser.c:587,17'
          Dst:             block_is_at_eoh
        - Src:             'message-parser.c:596,8'
          Dst:             parse_too_many_nested_mime_parts
        - Src:             'message-parser.c:597,4'
          Dst:             parse_next_body_multipart_init
        - Src:             'message-parser.c:609,4'
          Dst:             boundary_line_find
        - Src:             'message-parser.c:622,3'
          Dst:             message_parse_header_lower_limit
        - Src:             'message-parser.c:623,9'
          Dst:             message_parse_header_next
        - Src:             'message-parser.c:632,22'
          Dst:             i_stream_get_data_size
        - Src:             'message-parser.c:642,4'
          Dst:             i_panic
        - Src:             'message-parser.c:660,12'
          Dst:             strcasecmp
        - Src:             'message-parser.c:663,14'
          Dst:             strcasecmp
        - Src:             'message-parser.c:670,9'
          Dst:             t_push
        - Src:             'message-parser.c:671,5'
          Dst:             parse_content_type
        - Src:             'message-parser.c:672,6'
          Dst:             t_pop
        - Src:             'message-parser.c:672,6'
          Dst:             i_panic
        - Src:             'message-parser.c:686,3'
          Dst:             i_panic
        - Src:             'message-parser.c:689,2'
          Dst:             p_free_internal
        - Src:             'message-parser.c:706,6'
          Dst:             message_parse_header_has_nuls
        - Src:             'message-parser.c:708,2'
          Dst:             message_parse_header_deinit
        - Src:             'message-parser.c:710,2'
          Dst:             i_panic
        - Src:             'message-parser.c:714,3'
          Dst:             i_panic
        - Src:             'message-parser.c:723,14'
          Dst:             parse_too_many_nested_mime_parts
    - functionName:    message_parser_read_more
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          203
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_read_bytes
        - i_stream_skip
        - i_unreached
      functionUses:    10
      BranchProfiles:
        - Branch String:   'message-parser.c:103,3'
          Branch Sides:    []
      Callsites:
        - Src:             'message-parser.c:95,3'
          Dst:             i_stream_skip
        - Src:             'message-parser.c:100,8'
          Dst:             i_stream_read_bytes
        - Src:             'message-parser.c:106,5'
          Dst:             i_panic
        - Src:             'message-parser.c:111,4'
          Dst:             i_panic
        - Src:             'message-parser.c:124,4'
          Dst:             i_unreached
    - functionName:    block_is_at_eoh
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_too_many_nested_mime_parts
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_next_body_multipart_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:215,6'
          Dst:             malloc_multiply_check
        - Src:             'message-parser.c:215,6'
          Dst:             p_malloc
        - Src:             'message-parser.c:219,11'
          Dst:             strlen
    - functionName:    boundary_line_find
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          322
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - boundary_find
        - i_panic
        - memchr
        - memcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:240,3'
          Dst:             i_panic
        - Src:             'message-parser.c:263,32'
          Dst:             memchr
        - Src:             'message-parser.c:284,16'
          Dst:             boundary_find
        - Src:             'message-parser.c:291,3'
          Dst:             memcmp
    - functionName:    parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          290
      EdgeCount:       78
      CyclomaticComplexity: 22
      functionsReached:
        - i_strndup
        - p_free_internal
        - rfc2231_parse
        - rfc822_parse_content_type
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_begins_builtin_success
        - str_begins_icase
        - str_c
        - strcasecmp
        - strncasecmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:514,2'
          Dst:             rfc822_parser_init
        - Src:             'message-parser.c:515,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-parser.c:517,17'
          Dst:             t_str_new
        - Src:             'message-parser.c:518,8'
          Dst:             rfc822_parse_content_type
        - Src:             'message-parser.c:520,17'
          Dst:             str_c
        - Src:             'message-parser.c:520,6'
          Dst:             strcasecmp
        - Src:             'message-parser.c:522,11'
          Dst:             str_c
        - Src:             'message-parser.c:522,11'
          Dst:             str_begins_icase
        - Src:             'message-parser.c:522,11'
          Dst:             str_c
        - Src:             'message-parser.c:522,11'
          Dst:             strncasecmp
        - Src:             'message-parser.c:522,11'
          Dst:             str_c
        - Src:             'message-parser.c:522,11'
          Dst:             str_begins_builtin_success
        - Src:             'message-parser.c:525,11'
          Dst:             str_c
        - Src:             'message-parser.c:525,11'
          Dst:             str_begins_icase
        - Src:             'message-parser.c:525,11'
          Dst:             str_c
        - Src:             'message-parser.c:525,11'
          Dst:             strncasecmp
        - Src:             'message-parser.c:525,11'
          Dst:             str_c
        - Src:             'message-parser.c:525,11'
          Dst:             str_begins_builtin_success
        - Src:             'message-parser.c:528,7'
          Dst:             strcasecmp
        - Src:             'message-parser.c:535,3'
          Dst:             rfc822_parser_deinit
        - Src:             'message-parser.c:539,2'
          Dst:             rfc2231_parse
        - Src:             'message-parser.c:541,7'
          Dst:             strcasecmp
        - Src:             'message-parser.c:543,4'
          Dst:             p_free_internal
        - Src:             'message-parser.c:545,5'
          Dst:             i_strndup
        - Src:             'message-parser.c:549,2'
          Dst:             rfc822_parser_deinit
    - functionName:    parse_next_body_to_boundary
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          449
      EdgeCount:       100
      CyclomaticComplexity: 25
      functionsReached:
        - boundary_line_find
        - i_panic
        - memchr
        - message_parser_read_more
        - parse_body_add_block
        - parse_part_finish
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:403,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser.c:410,9'
          Dst:             boundary_line_find
        - Src:             'message-parser.c:414,5'
          Dst:             parse_part_finish
        - Src:             'message-parser.c:418,2'
          Dst:             i_panic
        - Src:             'message-parser.c:424,17'
          Dst:             memchr
        - Src:             'message-parser.c:437,9'
          Dst:             boundary_line_find
        - Src:             'message-parser.c:448,3'
          Dst:             i_panic
        - Src:             'message-parser.c:449,3'
          Dst:             i_panic
        - Src:             'message-parser.c:472,3'
          Dst:             parse_body_add_block
        - Src:             'message-parser.c:481,3'
          Dst:             parse_part_finish
    - functionName:    parse_next_body_to_eof
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - message_parser_read_more
        - parse_body_add_block
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:490,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser.c:493,2'
          Dst:             parse_body_add_block
    - functionName:    parse_next_body_message_rfc822_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_part_append
        - parse_next_header_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:228,2'
          Dst:             message_part_append
        - Src:             'message-parser.c:229,9'
          Dst:             parse_next_header_init
    - functionName:    parse_body_add_block
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          199
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - memchr
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:59,2'
          Dst:             i_panic
        - Src:             'message-parser.c:64,6'
          Dst:             memchr
        - Src:             'message-parser.c:75,17'
          Dst:             memchr
    - functionName:    parse_part_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          290
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - boundary_remove_until
        - i_panic
        - i_stream_get_data
        - message_part_finish
        - parse_body_add_block
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:351,2'
          Dst:             i_panic
        - Src:             'message-parser.c:356,3'
          Dst:             message_part_finish
        - Src:             'message-parser.c:357,3'
          Dst:             i_panic
        - Src:             'message-parser.c:362,3'
          Dst:             boundary_remove_until
        - Src:             'message-parser.c:365,3'
          Dst:             boundary_remove_until
        - Src:             'message-parser.c:369,18'
          Dst:             i_stream_get_data
        - Src:             'message-parser.c:370,2'
          Dst:             i_panic
        - Src:             'message-parser.c:376,3'
          Dst:             i_panic
        - Src:             'message-parser.c:379,3'
          Dst:             i_panic
        - Src:             'message-parser.c:383,2'
          Dst:             i_panic
        - Src:             'message-parser.c:385,2'
          Dst:             parse_body_add_block
    - functionName:    message_part_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          118
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_idx_i
        - i_panic
        - message_size_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:176,3'
          Dst:             i_panic
        - Src:             'message-parser.c:179,23'
          Dst:             array_count_i
        - Src:             'message-parser.c:179,23'
          Dst:             array_idx_i
        - Src:             'message-parser.c:180,3'
          Dst:             array_count_i
        - Src:             'message-parser.c:180,3'
          Dst:             array_delete_i
        - Src:             'message-parser.c:184,2'
          Dst:             message_size_add
        - Src:             'message-parser.c:185,2'
          Dst:             message_size_add
    - functionName:    boundary_remove_until
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - message_boundary_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:203,3'
          Dst:             i_panic
        - Src:             'message-parser.c:205,3'
          Dst:             message_boundary_free
    - functionName:    parse_next_body_skip_boundary_line
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          175
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - memchr
        - message_parser_read_more
        - parse_body_add_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:311,13'
          Dst:             message_parser_read_more
        - Src:             'message-parser.c:314,8'
          Dst:             memchr
        - Src:             'message-parser.c:316,3'
          Dst:             parse_body_add_block
        - Src:             'message-parser.c:325,2'
          Dst:             parse_body_add_block
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    boundary_find
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          124
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:33,7'
          Dst:             memcmp
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    message_parser_parse_body
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          96
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - message_parser_parse_next_block
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:918,16'
          Dst:             message_parser_parse_next_block
        - Src:             'message-parser.c:919,48'
          Dst:             t_push
        - Src:             'message-parser.c:921,5'
          Dst:             t_pop
        - Src:             'message-parser.c:921,5'
          Dst:             i_panic
        - Src:             'message-parser.c:923,2'
          Dst:             i_panic
    - functionName:    message_parser_parse_next_block
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          225
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - message_parser_read_more
        - message_part_finish
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:853,9'
          Dst:             message_parser_read_more
        - Src:             'message-parser.c:855,4'
          Dst:             i_panic
        - Src:             'message-parser.c:859,4'
          Dst:             i_panic
        - Src:             'message-parser.c:868,3'
          Dst:             i_panic
        - Src:             'message-parser.c:872,4'
          Dst:             message_part_finish
    - functionName:    message_parser_parse_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          154
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - message_parser_parse_next_block
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:891,16'
          Dst:             message_parser_parse_next_block
        - Src:             'message-parser.c:892,3'
          Dst:             t_push
        - Src:             'message-parser.c:894,5'
          Dst:             t_pop
        - Src:             'message-parser.c:894,5'
          Dst:             i_panic
        - Src:             'message-parser.c:899,2'
          Dst:             i_panic
        - Src:             'message-parser.c:900,2'
          Dst:             i_panic
        - Src:             'message-parser.c:902,15'
          Dst:             t_push
        - Src:             'message-parser.c:905,4'
          Dst:             t_pop
        - Src:             'message-parser.c:905,4'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_parser_deinit_from_parts
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          161
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - array_free_i
        - boundary_remove_until
        - i_panic
        - i_stream_unref
        - message_parse_header_deinit
        - message_part_finish
        - p_free_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:822,3'
          Dst:             message_parse_header_deinit
        - Src:             'message-parser.c:831,4'
          Dst:             message_part_finish
        - Src:             'message-parser.c:833,2'
          Dst:             boundary_remove_until
        - Src:             'message-parser.c:834,2'
          Dst:             i_panic
        - Src:             'message-parser.c:836,2'
          Dst:             i_stream_unref
        - Src:             'message-parser.c:837,2'
          Dst:             array_free_i
        - Src:             'message-parser.c:838,2'
          Dst:             p_free_internal
        - Src:             'message-parser.c:839,2'
          Dst:             p_free_internal
        - Src:             'message-parser.c:840,2'
          Dst:             i_panic
    - functionName:    message_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_parser_deinit_from_parts
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:805,2'
          Dst:             i_panic
        - Src:             'message-parser.c:806,6'
          Dst:             message_parser_deinit_from_parts
        - Src:             'message-parser.c:807,3'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_parser_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          57
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - message_parser_init_int
        - p_malloc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:789,8'
          Dst:             message_parser_init_int
        - Src:             'message-parser.c:791,27'
          Dst:             malloc_multiply_check
        - Src:             'message-parser.c:791,27'
          Dst:             p_malloc
        - Src:             'message-parser.c:796,2'
          Dst:             array_create_i
    - functionName:    message_parser_init_int
      functionSourceFile: '/src/dovecot/src/lib-mail/message-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-parser.c:766,8'
          Dst:             malloc_multiply_check
        - Src:             'message-parser.c:766,8'
          Dst:             p_malloc
        - Src:             'message-parser.c:779,2'
          Dst:             i_stream_ref
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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-mail/../../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-mail/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    parse_mime_parameters
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          119
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - rfc2231_parse
        - str_array_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:331,2'
          Dst:             rfc2231_parse
        - Src:             'message-part-data.c:333,17'
          Dst:             str_array_length
        - Src:             'message-part-data.c:334,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:338,12'
          Dst:             malloc_multiply_check
        - Src:             'message-part-data.c:338,12'
          Dst:             p_malloc
        - Src:             'message-part-data.c:340,21'
          Dst:             p_strdup
        - Src:             'message-part-data.c:341,22'
          Dst:             p_strdup
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    parse_content_disposition
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
        - parse_mime_parameters
        - rfc822_parse_mime_token
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:424,2'
          Dst:             rfc822_parser_init
        - Src:             'message-part-data.c:425,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:427,8'
          Dst:             t_str_new
        - Src:             'message-part-data.c:428,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'message-part-data.c:429,3'
          Dst:             rfc822_parser_deinit
        - Src:             'message-part-data.c:432,45'
          Dst:             str_c
        - Src:             'message-part-data.c:432,30'
          Dst:             p_strdup
        - Src:             'message-part-data.c:434,2'
          Dst:             parse_mime_parameters
        - Src:             'message-part-data.c:437,2'
          Dst:             rfc822_parser_deinit
    - functionName:    parse_content_language
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - p_strarray_dup
        - p_strdup
        - pool_datastack_create
        - rfc822_parse_atom
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:453,2'
          Dst:             rfc822_parser_init
        - Src:             'message-part-data.c:455,2'
          Dst:             pool_datastack_create
        - Src:             'message-part-data.c:455,2'
          Dst:             array_create_i
        - Src:             'message-part-data.c:456,8'
          Dst:             t_str_new
        - Src:             'message-part-data.c:458,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:459,9'
          Dst:             rfc822_parse_atom
        - Src:             'message-part-data.c:460,37'
          Dst:             str_c
        - Src:             'message-part-data.c:460,22'
          Dst:             p_strdup
        - Src:             'message-part-data.c:462,3'
          Dst:             array_append_i
        - Src:             'message-part-data.c:463,3'
          Dst:             str_truncate
        - Src:             'message-part-data.c:468,3'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:470,2'
          Dst:             rfc822_parser_deinit
        - Src:             'message-part-data.c:472,6'
          Dst:             array_count_i
        - Src:             'message-part-data.c:473,3'
          Dst:             array_append_space_i
        - Src:             'message-part-data.c:475,25'
          Dst:             array_idx_i
        - Src:             'message-part-data.c:475,4'
          Dst:             p_strarray_dup
    - functionName:    parse_content_transfer_encoding
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - p_strdup
        - rfc822_parse_mime_token
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:405,2'
          Dst:             rfc822_parser_init
        - Src:             'message-part-data.c:406,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:408,8'
          Dst:             t_str_new
        - Src:             'message-part-data.c:409,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'message-part-data.c:410,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:410,40'
          Dst:             str_len
        - Src:             'message-part-data.c:412,19'
          Dst:             str_c
        - Src:             'message-part-data.c:412,4'
          Dst:             p_strdup
        - Src:             'message-part-data.c:414,2'
          Dst:             rfc822_parser_deinit
    - functionName:    parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          132
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - p_strdup
        - parse_mime_parameters
        - rfc822_parse_content_type
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:359,2'
          Dst:             rfc822_parser_init
        - Src:             'message-part-data.c:360,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-part-data.c:362,8'
          Dst:             t_str_new
        - Src:             'message-part-data.c:363,8'
          Dst:             rfc822_parse_content_type
        - Src:             'message-part-data.c:366,10'
          Dst:             str_c
        - Src:             'message-part-data.c:369,28'
          Dst:             p_strdup
        - Src:             'message-part-data.c:373,2'
          Dst:             str_truncate
        - Src:             'message-part-data.c:374,38'
          Dst:             str_c
        - Src:             'message-part-data.c:374,23'
          Dst:             p_strdup
        - Src:             'message-part-data.c:379,27'
          Dst:             p_strdup
        - Src:             'message-part-data.c:392,2'
          Dst:             parse_mime_parameters
        - Src:             'message-part-data.c:395,2'
          Dst:             rfc822_parser_deinit
    - functionName:    get_param_value
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:82,7'
          Dst:             strcasecmp
    - functionName:    message_part_data_find_attachment_filename
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - get_param_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:103,6'
          Dst:             get_param_value
        - Src:             'message-part-data.c:105,6'
          Dst:             get_param_value
    - functionName:    message_part_is_attachment
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_part_get_attachment_filename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:627,9'
          Dst:             message_part_get_attachment_filename
    - functionName:    message_part_get_attachment_filename
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          127
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - message_part_data_find_attachment_filename
        - message_part_has_content_types
        - null_strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:127,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:131,7'
          Dst:             message_part_has_content_types
        - Src:             'message-part-data.c:136,6'
          Dst:             null_strcasecmp
        - Src:             'message-part-data.c:137,10'
          Dst:             message_part_data_find_attachment_filename
        - Src:             'message-part-data.c:143,6'
          Dst:             null_strcasecmp
        - Src:             'message-part-data.c:144,10'
          Dst:             message_part_data_find_attachment_filename
    - functionName:    message_part_has_content_types
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - t_strdup_printf
        - wildcard_match_icase
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:605,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:610,18'
          Dst:             t_strdup_printf
        - Src:             'message-part-data.c:612,18'
          Dst:             t_strdup_printf
        - Src:             'message-part-data.c:616,7'
          Dst:             wildcard_match_icase
    - functionName:    parse_content_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          338
      EdgeCount:       81
      CyclomaticComplexity: 18
      functionsReached:
        - message_header_strdup
        - parse_content_disposition
        - parse_content_language
        - parse_content_transfer_encoding
        - parse_content_type
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-part-data.c:490,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-part-data.c:493,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:495,5'
          Dst:             message_header_strdup
        - Src:             'message-part-data.c:501,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:503,5'
          Dst:             message_header_strdup
        - Src:             'message-part-data.c:509,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:510,4'
          Dst:             parse_content_type
        - Src:             'message-part-data.c:511,12'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:513,4'
          Dst:             parse_content_transfer_encoding
        - Src:             'message-part-data.c:518,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:520,4'
          Dst:             parse_content_language
        - Src:             'message-part-data.c:522,14'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:525,5'
          Dst:             message_header_strdup
        - Src:             'message-part-data.c:532,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:535,5'
          Dst:             message_header_strdup
        - Src:             'message-part-data.c:537,12'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:539,4'
          Dst:             parse_content_disposition
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    message_part_data_parse_from_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          239
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - message_part_envelope_parse_from_header
        - p_malloc
        - parse_content_header
        - str_begins_icase_with
        - strncasecmp
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:558,17'
          Dst:             malloc_multiply_check
        - Src:             'message-part-data.c:558,17'
          Dst:             p_malloc
        - Src:             'message-part-data.c:576,25'
          Dst:             strncasecmp
        - Src:             'message-part-data.c:576,25'
          Dst:             str_begins_icase_with
        - Src:             'message-part-data.c:581,16'
          Dst:             malloc_multiply_check
        - Src:             'message-part-data.c:581,16'
          Dst:             p_malloc
        - Src:             'message-part-data.c:585,6'
          Dst:             strncasecmp
        - Src:             'message-part-data.c:585,6'
          Dst:             str_begins_icase_with
        - Src:             'message-part-data.c:586,3'
          Dst:             t_push
        - Src:             'message-part-data.c:587,4'
          Dst:             parse_content_header
        - Src:             'message-part-data.c:588,5'
          Dst:             t_pop
        - Src:             'message-part-data.c:588,5'
          Dst:             i_panic
        - Src:             'message-part-data.c:593,3'
          Dst:             message_part_envelope_parse_from_header
    - functionName:    message_part_envelope_parse_from_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          254
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - envelope_get_field
        - i_unreached
        - malloc_multiply_check
        - message_address_parse_full
        - message_header_strdup
        - p_malloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'message-part-data.c:265,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-part-data.c:248,11'
          Dst:             malloc_multiply_check
        - Src:             'message-part-data.c:248,11'
          Dst:             p_malloc
        - Src:             'message-part-data.c:253,10'
          Dst:             envelope_get_field
        - Src:             'message-part-data.c:298,3'
          Dst:             i_unreached
        - Src:             'message-part-data.c:302,3'
          Dst:             message_address_parse_full
        - Src:             'message-part-data.c:315,12'
          Dst:             message_header_strdup
    - functionName:    envelope_get_field
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          235
      EdgeCount:       62
      CyclomaticComplexity: 11
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-part-data.c:183,2'
          Branch Sides:    []
      Callsites:
        - Src:             'message-part-data.c:186,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:191,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:196,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:201,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:206,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:211,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:216,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:221,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:223,7'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:228,7'
          Dst:             strcasecmp
    - functionName:    message_part_data_get_filename
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_part_get_attachment_filename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:154,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:156,9'
          Dst:             message_part_get_attachment_filename
    - functionName:    message_part_data_is_plain_7bit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          253
      EdgeCount:       70
      CyclomaticComplexity: 19
      functionsReached:
        - i_panic
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-data.c:29,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:30,2'
          Dst:             i_panic
        - Src:             'message-part-data.c:41,6'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:48,6'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:49,6'
          Dst:             strcasecmp
        - Src:             'message-part-data.c:58,6'
          Dst:             strcasecmp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    read_next
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-serialize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-serialize.c:133,2'
          Dst:             i_memcpy
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_part_deserialize_part
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-serialize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          411
      EdgeCount:       86
      CyclomaticComplexity: 26
      functionsReached:
        - malloc_multiply_check
        - message_part_deserialize_part
        - p_malloc
        - read_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-serialize.c:154,10'
          Dst:             malloc_multiply_check
        - Src:             'message-part-serialize.c:154,10'
          Dst:             p_malloc
        - Src:             'message-part-serialize.c:159,8'
          Dst:             read_next
        - Src:             'message-part-serialize.c:165,9'
          Dst:             read_next
        - Src:             'message-part-serialize.c:175,8'
          Dst:             read_next
        - Src:             'message-part-serialize.c:179,8'
          Dst:             read_next
        - Src:             'message-part-serialize.c:189,8'
          Dst:             read_next
        - Src:             'message-part-serialize.c:193,8'
          Dst:             read_next
        - Src:             'message-part-serialize.c:199,9'
          Dst:             read_next
        - Src:             'message-part-serialize.c:212,9'
          Dst:             read_next
        - Src:             'message-part-serialize.c:240,9'
          Dst:             message_part_deserialize_part
    - functionName:    message_part_deserialize
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-serialize.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - message_part_deserialize_part
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-serialize.c:284,7'
          Dst:             message_part_deserialize_part
    - functionName:    part_serialize
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-serialize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          252
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append
        - buffer_write
        - i_panic
        - part_serialize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-serialize.c:57,3'
          Dst:             i_panic
        - Src:             'message-part-serialize.c:60,3'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:64,4'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:67,3'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:69,3'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:71,3'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:73,3'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:78,4'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:86,4'
          Dst:             buffer_append
        - Src:             'message-part-serialize.c:92,5'
          Dst:             part_serialize
        - Src:             'message-part-serialize.c:95,5'
          Dst:             buffer_write
        - Src:             'message-part-serialize.c:99,5'
          Dst:             i_panic
        - Src:             'message-part-serialize.c:104,4'
          Dst:             i_panic
    - functionName:    message_part_serialize
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part-serialize.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - part_serialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part-serialize.c:122,2'
          Dst:             part_serialize
    - functionName:    message_part_has_nuls
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - message_parts_have_nuls
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:131,9'
          Dst:             message_parts_have_nuls
    - functionName:    message_parts_have_nuls
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          44
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - message_part_has_nuls
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:120,7'
          Dst:             message_part_has_nuls
    - functionName:    message_part_is_equal
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_part_is_equal_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:112,9'
          Dst:             message_part_is_equal_ex
    - functionName:    message_part_is_equal_ex
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          261
      EdgeCount:       60
      CyclomaticComplexity: 19
      functionsReached:
        - message_part_is_equal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:81,9'
          Dst:             message_part_is_equal
    - functionName:    message_sub_part_by_idx
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - message_sub_part_by_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:49,11'
          Dst:             message_sub_part_by_idx
    - functionName:    message_part_by_idx
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - message_sub_part_by_idx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:58,2'
          Dst:             i_panic
        - Src:             'message-part.c:60,9'
          Dst:             message_sub_part_by_idx
    - functionName:    message_part_find
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - message_part_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:24,7'
          Dst:             message_part_find
    - functionName:    message_part_root
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 11
      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:    message_part_to_idx
      functionSourceFile: '/src/dovecot/src/lib-mail/message-part.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          32
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - message_part_find
        - message_part_root
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-part.c:35,9'
          Dst:             message_part_root
        - Src:             'message-part.c:36,7'
          Dst:             message_part_find
        - Src:             'message-part.c:37,3'
          Dst:             i_unreached
    - functionName:    search_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - str_find_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:87,9'
          Dst:             str_find_more
        - Src:             'message-search.c:89,3'
          Dst:             str_find_more
        - Src:             'message-search.c:91,3'
          Dst:             str_find_more
        - Src:             'message-search.c:94,4'
          Dst:             str_find_more
    - functionName:    rfc822_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/./rfc822-parser.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './rfc822-parser.h:36,2'
          Dst:             i_panic
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - rfc822_parse_content_type
        - rfc822_parser_deinit
        - rfc822_parser_init
        - rfc822_skip_lwsp
        - str_begins_icase_with
        - str_c
        - strncasecmp
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:56,2'
          Dst:             rfc822_parser_init
        - Src:             'message-search.c:57,2'
          Dst:             rfc822_skip_lwsp
        - Src:             'message-search.c:59,17'
          Dst:             t_str_new
        - Src:             'message-search.c:60,8'
          Dst:             rfc822_parse_content_type
        - Src:             'message-search.c:62,3'
          Dst:             str_c
        - Src:             'message-search.c:62,3'
          Dst:             strncasecmp
        - Src:             'message-search.c:62,3'
          Dst:             str_c
        - Src:             'message-search.c:62,3'
          Dst:             str_begins_icase_with
        - Src:             'message-search.c:63,3'
          Dst:             str_c
        - Src:             'message-search.c:63,3'
          Dst:             strncasecmp
        - Src:             'message-search.c:64,2'
          Dst:             rfc822_parser_deinit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_search_msg
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - message_parser_deinit_from_parts
        - message_parser_init
        - message_parser_init_from_parts
        - message_parser_parse_next_block
        - message_search_more
        - message_search_reset
        - pool_alloconly_create
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:207,2'
          Dst:             message_search_reset
        - Src:             'message-search.c:210,16'
          Dst:             message_parser_init_from_parts
        - Src:             'message-search.c:213,10'
          Dst:             pool_alloconly_create
        - Src:             'message-search.c:214,16'
          Dst:             message_parser_init
        - Src:             'message-search.c:217,16'
          Dst:             message_parser_parse_next_block
        - Src:             'message-search.c:219,7'
          Dst:             message_search_more
        - Src:             'message-search.c:224,2'
          Dst:             i_panic
        - Src:             'message-search.c:229,6'
          Dst:             message_parser_deinit_from_parts
        - Src:             'message-search.c:233,2'
          Dst:             pool_unref
    - functionName:    message_search_reset
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_decoder_decode_reset
        - str_find_reset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:190,2'
          Dst:             str_find_reset
        - Src:             'message-search.c:191,2'
          Dst:             message_decoder_decode_reset
    - functionName:    message_search_more
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - message_search_more_get_decoded
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:115,9'
          Dst:             message_search_more_get_decoded
    - functionName:    message_search_more_get_decoded
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          198
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - handle_header
        - message_decoder_decode_next_block
        - message_search_more_decoded2
        - message_search_reset
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:131,3'
          Dst:             message_search_reset
        - Src:             'message-search.c:141,3'
          Dst:             handle_header
        - Src:             'message-search.c:148,8'
          Dst:             strcasecmp
        - Src:             'message-search.c:149,8'
          Dst:             strcasecmp
        - Src:             'message-search.c:158,7'
          Dst:             message_decoder_decode_next_block
        - Src:             'message-search.c:169,9'
          Dst:             message_search_more_decoded2
    - functionName:    handle_header
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - parse_content_type
        - strcasecmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:71,6'
          Dst:             strcasecmp
        - Src:             'message-search.c:76,3'
          Dst:             t_push
        - Src:             'message-search.c:77,4'
          Dst:             parse_content_type
        - Src:             'message-search.c:78,5'
          Dst:             t_pop
        - Src:             'message-search.c:78,5'
          Dst:             i_panic
    - functionName:    message_search_more_decoded2
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - search_header
        - str_find_more
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:101,7'
          Dst:             search_header
        - Src:             'message-search.c:104,7'
          Dst:             str_find_more
    - functionName:    message_search_more_decoded
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - message_search_more_decoded2
        - message_search_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:177,3'
          Dst:             message_search_reset
        - Src:             'message-search.c:181,9'
          Dst:             message_search_more_decoded2
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_search_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - message_decoder_deinit
        - p_free_internal
        - str_find_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:45,2'
          Dst:             str_find_deinit
        - Src:             'message-search.c:46,2'
          Dst:             message_decoder_deinit
        - Src:             'message-search.c:47,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    message_search_init
      functionSourceFile: '/src/dovecot/src/lib-mail/message-search.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - message_decoder_init
        - p_malloc
        - str_find_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-search.c:31,2'
          Dst:             i_panic
        - Src:             'message-search.c:33,8'
          Dst:             malloc_multiply_check
        - Src:             'message-search.c:33,8'
          Dst:             p_malloc
        - Src:             'message-search.c:35,17'
          Dst:             message_decoder_init
        - Src:             'message-search.c:36,22'
          Dst:             str_find_init
    - functionName:    message_skip_virtual
      functionSourceFile: '/src/dovecot/src/lib-mail/message-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          239
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - i_stream_read_bytes
        - i_stream_skip
        - memchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'message-size.c:142,16'
          Dst:             i_stream_read_bytes
        - Src:             'message-size.c:144,28'
          Dst:             memchr
        - Src:             'message-size.c:146,4'
          Dst:             i_stream_skip
        - Src:             'message-size.c:168,3'
          Dst:             i_stream_skip
        - Src:             'message-size.c:172,3'
          Dst:             i_panic
        - Src:             'message-size.c:175,2'
          Dst:             i_panic
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    message_size_add
      functionSourceFile: '/src/dovecot/src/lib-mail/message-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    message_get_body_size
      functionSourceFile: '/src/dovecot/src/lib-mail/message-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          259
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_stream_read_bytes
        - i_stream_read_more
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-size.c:79,13'
          Dst:             i_stream_read_more
        - Src:             'message-size.c:80,3'
          Dst:             i_panic
        - Src:             'message-size.c:107,3'
          Dst:             i_stream_skip
        - Src:             'message-size.c:109,18'
          Dst:             i_stream_read_bytes
        - Src:             'message-size.c:110,2'
          Dst:             i_panic
        - Src:             'message-size.c:114,2'
          Dst:             i_stream_skip
        - Src:             'message-size.c:118,2'
          Dst:             i_panic
    - functionName:    message_get_header_size
      functionSourceFile: '/src/dovecot/src/lib-mail/message-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          334
      EdgeCount:       73
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - i_stream_read_bytes
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-size.c:19,16'
          Dst:             i_stream_read_bytes
        - Src:             'message-size.c:53,3'
          Dst:             i_stream_skip
        - Src:             'message-size.c:57,2'
          Dst:             i_panic
        - Src:             'message-size.c:60,2'
          Dst:             i_stream_skip
        - Src:             'message-size.c:64,2'
          Dst:             i_panic
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    uni_utf8_char_bytes
      functionSourceFile: '/src/dovecot/src/lib-mail/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    snippet_add_content
      functionSourceFile: '/src/dovecot/src/lib-mail/message-snippet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          278
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - str_append_c
        - str_append_data
        - str_len
        - uni_utf8_char_bytes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-snippet.c:42,2'
          Dst:             i_panic
        - Src:             'message-snippet.c:55,6'
          Dst:             __ctype_b_loc
        - Src:             'message-snippet.c:57,7'
          Dst:             str_len
        - Src:             'message-snippet.c:71,3'
          Dst:             str_append_c
        - Src:             'message-snippet.c:75,13'
          Dst:             uni_utf8_char_bytes
        - Src:             'message-snippet.c:76,2'
          Dst:             i_panic
        - Src:             'message-snippet.c:77,2'
          Dst:             str_append_data
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    snippet_copy
      functionSourceFile: '/src/dovecot/src/lib-mail/message-snippet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __ctype_b_loc
        - str_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'message-snippet.c:132,25'
          Dst:             __ctype_b_loc
        - Src:             'message-snippet.c:133,2'
          Dst:             str_append
    - functionName:    snippet_generate
      functionSourceFile: '/src/dovecot/src/lib-mail/message-snippet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          181
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_set_used_size
        - mail_html2text_more
        - snippet_add_content
      functionUses:    1
      BranchProfiles:
        - Branch String:   'message-snippet.c:104,3'
          Branch Sides:    []
      Callsites:
        - Src:             'message-snippet.c:87,3'
          Dst:             buffer_set_used_size
        - Src:             'message-snippet.c:88,3'
          Dst:             mail_html2text_more
        - Src:             'message-snippet.c:117,4'
          Dst:             snippet_add_content
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    mail_html2text_content_type_match
      functionSourceFile: '/src/dovecot/src/lib-mail/./mail-html2text.h'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mail-html2text.h:18,9'
          Dst:             strcasecmp
        - Src:             './mail-html2text.h:19,3'
          Dst:             strcasecmp
    - functionName:    message_snippet_generate
      functionSourceFile: '/src/dovecot/src/lib-mail/message-snippet.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          286
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - buffer_create_dynamic
        - i_panic
        - mail_html2text_content_type_match
        - mail_html2text_deinit
        - mail_html2text_init
        - message_decoder_current_content_type
        - message_decoder_decode_next_block
        - message_decoder_deinit
        - message_decoder_init
        - message_parser_deinit
        - message_parser_init
        - message_parser_parse_next_block
        - pool_alloconly_create
        - pool_datastack_create
        - pool_unref
        - snippet_copy
        - snippet_generate
        - str_append_c
        - str_begins_icase_with
        - str_c
        - str_new
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'message-snippet.c:151,9'
          Dst:             pool_alloconly_create
        - Src:             'message-snippet.c:152,24'
          Dst:             str_new
        - Src:             'message-snippet.c:154,31'
          Dst:             str_new
        - Src:             'message-snippet.c:156,31'
          Dst:             pool_datastack_create
        - Src:             'message-snippet.c:156,11'
          Dst:             message_parser_init
        - Src:             'message-snippet.c:157,12'
          Dst:             message_decoder_init
        - Src:             'message-snippet.c:158,16'
          Dst:             message_parser_parse_next_block
        - Src:             'message-snippet.c:161,8'
          Dst:             message_decoder_decode_next_block
        - Src:             'message-snippet.c:180,9'
          Dst:             message_decoder_current_content_type
        - Src:             'message-snippet.c:183,13'
          Dst:             mail_html2text_content_type_match
        - Src:             'message-snippet.c:184,5'
          Dst:             mail_html2text_deinit
        - Src:             'message-snippet.c:185,21'
          Dst:             mail_html2text_init
        - Src:             'message-snippet.c:188,7'
          Dst:             buffer_create_dynamic
        - Src:             'message-snippet.c:190,16'
          Dst:             strncasecmp
        - Src:             'message-snippet.c:190,16'
          Dst:             str_begins_icase_with
        - Src:             'message-snippet.c:192,15'
          Dst:             snippet_generate
        - Src:             'message-snippet.c:195,2'
          Dst:             i_panic
        - Src:             'message-snippet.c:196,2'
          Dst:             message_decoder_deinit
        - Src:             'message-snippet.c:197,2'
          Dst:             message_parser_deinit
        - Src:             'message-snippet.c:198,2'
          Dst:             mail_html2text_deinit
        - Src:             'message-snippet.c:200,16'
          Dst:             str_c
        - Src:             'message-snippet.c:200,3'
          Dst:             snippet_copy
        - Src:             'message-snippet.c:202,3'
          Dst:             str_append_c
        - Src:             'message-snippet.c:203,16'
          Dst:             str_c
        - Src:             'message-snippet.c:203,3'
          Dst:             snippet_copy
        - Src:             'message-snippet.c:205,2'
          Dst:             pool_unref
    - functionName:    qp_decoder_finish
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_set_used_size
        - qp_decoder_invalid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'qp-decoder.c:279,3'
          Dst:             qp_decoder_invalid
        - Src:             'qp-decoder.c:283,2'
          Dst:             buffer_set_used_size
    - functionName:    qp_decoder_invalid
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          152
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - buffer_append_buf
        - buffer_append_c
        - buffer_set_used_size
        - i_panic
        - i_unreached
      functionUses:    5
      BranchProfiles:
        - Branch String:   'qp-decoder.c:93,2'
          Branch Sides:    []
      Callsites:
        - Src:             'qp-decoder.c:95,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:99,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:100,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:104,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:105,3'
          Dst:             buffer_append_buf
        - Src:             'qp-decoder.c:106,3'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:110,3'
          Dst:             buffer_append_buf
        - Src:             'qp-decoder.c:111,3'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:112,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:116,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:117,3'
          Dst:             buffer_append_buf
        - Src:             'qp-decoder.c:118,3'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:119,3'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:124,3'
          Dst:             i_unreached
        - Src:             'qp-decoder.c:127,2'
          Dst:             i_panic
    - functionName:    qp_decoder_more_text
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          157
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - buffer_append_c
        - i_panic
      functionUses:    1
      BranchProfiles:
        - Branch String:   'qp-decoder.c:62,3'
          Branch Sides:    []
      Callsites:
        - Src:             'qp-decoder.c:71,4'
          Dst:             buffer_append
        - Src:             'qp-decoder.c:72,4'
          Dst:             buffer_append
        - Src:             'qp-decoder.c:77,4'
          Dst:             i_panic
        - Src:             'qp-decoder.c:79,4'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:87,2'
          Dst:             buffer_append
    - functionName:    qp_decoder_more
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         126
      ICount:          762
      EdgeCount:       160
      CyclomaticComplexity: 36
      functionsReached:
        - buffer_append
        - buffer_append_buf
        - buffer_append_c
        - buffer_set_used_size
        - hex_to_binary
        - i_panic
        - i_unreached
        - qp_decoder_invalid
        - qp_decoder_more_text
      functionUses:    2
      BranchProfiles:
        - Branch String:   'qp-decoder.c:141,3'
          Branch Sides:    []
      Callsites:
        - Src:             'qp-decoder.c:143,9'
          Dst:             qp_decoder_more_text
        - Src:             'qp-decoder.c:151,6'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:156,5'
          Dst:             buffer_append
        - Src:             'qp-decoder.c:157,5'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:161,5'
          Dst:             buffer_append_buf
        - Src:             'qp-decoder.c:172,5'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:185,5'
          Dst:             i_panic
        - Src:             'qp-decoder.c:186,5'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:194,5'
          Dst:             qp_decoder_invalid
        - Src:             'qp-decoder.c:211,9'
          Dst:             hex_to_binary
        - Src:             'qp-decoder.c:212,6'
          Dst:             i_unreached
        - Src:             'qp-decoder.c:216,5'
          Dst:             qp_decoder_invalid
        - Src:             'qp-decoder.c:227,6'
          Dst:             buffer_append_c
        - Src:             'qp-decoder.c:235,5'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:240,5'
          Dst:             qp_decoder_invalid
        - Src:             'qp-decoder.c:251,5'
          Dst:             buffer_set_used_size
        - Src:             'qp-decoder.c:253,6'
          Dst:             buffer_append
        - Src:             'qp-decoder.c:256,5'
          Dst:             qp_decoder_invalid
        - Src:             'qp-decoder.c:267,2'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    qp_decoder_deinit
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'qp-decoder.c:47,2'
          Dst:             buffer_free
        - Src:             'qp-decoder.c:48,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    qp_decoder_init
      functionSourceFile: '/src/dovecot/src/lib-mail/qp-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'qp-decoder.c:37,7'
          Dst:             malloc_multiply_check
        - Src:             'qp-decoder.c:37,7'
          Dst:             p_malloc
        - Src:             'qp-decoder.c:39,19'
          Dst:             buffer_create_dynamic
    - functionName:    quoted_printable_q_decode
      functionSourceFile: '/src/dovecot/src/lib-mail/quoted-printable.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          155
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append
        - buffer_append_c
        - hex_to_binary
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'quoted-printable.c:22,3'
          Dst:             buffer_append
        - Src:             'quoted-printable.c:26,4'
          Dst:             buffer_append_c
        - Src:             'quoted-printable.c:38,7'
          Dst:             hex_to_binary
        - Src:             'quoted-printable.c:47,2'
          Dst:             buffer_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    result_contains
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - i_panic
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:117,25'
          Dst:             array_get_i
        - Src:             'rfc2231-parser.c:118,2'
          Dst:             i_panic
        - Src:             'rfc2231-parser.c:120,7'
          Dst:             strcasecmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    decode_hex_digit
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_hex_byte
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - decode_hex_digit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:63,15'
          Dst:             decode_hex_digit
        - Src:             'rfc2231-parser.c:67,14'
          Dst:             decode_hex_digit
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    value_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - charset_to_utf8_str
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:170,21'
          Dst:             t_str_new
        - Src:             'rfc2231-parser.c:172,6'
          Dst:             charset_to_utf8_str
        - Src:             'rfc2231-parser.c:175,9'
          Dst:             str_c
    - functionName:    rfc2231_decode_value
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - decode_hex_byte
        - str_append
        - str_append_data
        - strchr
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:77,18'
          Dst:             t_str_new
        - Src:             'rfc2231-parser.c:80,14'
          Dst:             strchr
        - Src:             'rfc2231-parser.c:82,3'
          Dst:             str_append_data
        - Src:             'rfc2231-parser.c:84,8'
          Dst:             decode_hex_byte
        - Src:             'rfc2231-parser.c:87,3'
          Dst:             str_append_data
        - Src:             'rfc2231-parser.c:90,2'
          Dst:             str_append
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    find_charset
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:151,20'
          Dst:             strchr
        - Src:             'rfc2231-parser.c:154,32'
          Dst:             t_strdup_until
        - Src:             'rfc2231-parser.c:159,8'
          Dst:             strchr
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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-mail/../../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:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    reconstruct_rfc2231_key
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:138,9'
          Dst:             t_strdup_printf
    - functionName:    rfc2231_parameter_cmp
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:103,12'
          Dst:             strcmp
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:             '../../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-mail/../../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:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    result_append
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - result_contains
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:129,7'
          Dst:             result_contains
        - Src:             'rfc2231-parser.c:130,3'
          Dst:             array_append_i
        - Src:             'rfc2231-parser.c:131,3'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    rfc2231_decode_charset_value
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - find_charset
        - rfc2231_decode_value
        - str_c
        - strcmp
        - value_to_utf8
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:182,16'
          Dst:             find_charset
        - Src:             'rfc2231-parser.c:184,28'
          Dst:             strcmp
        - Src:             'rfc2231-parser.c:185,19'
          Dst:             rfc2231_decode_value
        - Src:             'rfc2231-parser.c:186,47'
          Dst:             str_c
        - Src:             'rfc2231-parser.c:189,28'
          Dst:             value_to_utf8
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    rfc2231_parse
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc2231-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          459
      EdgeCount:       84
      CyclomaticComplexity: 22
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_get_i
        - array_idx_i
        - array_sort_i
        - pool_datastack_create
        - reconstruct_rfc2231_key
        - result_append
        - rfc2231_decode_charset_value
        - rfc2231_parameter_cmp
        - rfc822_parse_content_param
        - str_append
        - str_c
        - str_parse_uint
        - str_truncate
        - strcasecmp
        - strchr
        - t_str_new
        - t_strdup
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc2231-parser.c:218,2'
          Dst:             pool_datastack_create
        - Src:             'rfc2231-parser.c:218,2'
          Dst:             array_create_i
        - Src:             'rfc2231-parser.c:219,2'
          Dst:             pool_datastack_create
        - Src:             'rfc2231-parser.c:219,2'
          Dst:             array_create_i
        - Src:             'rfc2231-parser.c:220,8'
          Dst:             t_str_new
        - Src:             'rfc2231-parser.c:221,16'
          Dst:             rfc822_parse_content_param
        - Src:             'rfc2231-parser.c:232,7'
          Dst:             strchr
        - Src:             'rfc2231-parser.c:235,22'
          Dst:             str_parse_uint
        - Src:             'rfc2231-parser.c:245,27'
          Dst:             t_strdup_until
        - Src:             'rfc2231-parser.c:246,36'
          Dst:             str_c
        - Src:             'rfc2231-parser.c:246,27'
          Dst:             t_strdup
        - Src:             'rfc2231-parser.c:251,6'
          Dst:             array_append_i
        - Src:             'rfc2231-parser.c:256,17'
          Dst:             rfc2231_decode_charset_value
        - Src:             'rfc2231-parser.c:259,6'
          Dst:             result_append
        - Src:             'rfc2231-parser.c:266,41'
          Dst:             str_c
        - Src:             'rfc2231-parser.c:266,32'
          Dst:             t_strdup
        - Src:             'rfc2231-parser.c:266,4'
          Dst:             result_append
        - Src:             'rfc2231-parser.c:270,6'
          Dst:             array_count_i
        - Src:             'rfc2231-parser.c:272,3'
          Dst:             array_append_space_i
        - Src:             'rfc2231-parser.c:273,15'
          Dst:             array_idx_i
        - Src:             'rfc2231-parser.c:278,2'
          Dst:             array_sort_i
        - Src:             'rfc2231-parser.c:278,2'
          Dst:             rfc2231_parameter_cmp
        - Src:             'rfc2231-parser.c:280,3'
          Dst:             array_get_i
        - Src:             'rfc2231-parser.c:288,8'
          Dst:             strcasecmp
        - Src:             'rfc2231-parser.c:314,12'
          Dst:             rfc2231_decode_charset_value
        - Src:             'rfc2231-parser.c:319,6'
          Dst:             reconstruct_rfc2231_key
        - Src:             'rfc2231-parser.c:317,5'
          Dst:             result_append
        - Src:             'rfc2231-parser.c:328,3'
          Dst:             str_truncate
        - Src:             'rfc2231-parser.c:345,11'
          Dst:             rfc2231_decode_charset_value
        - Src:             'rfc2231-parser.c:346,4'
          Dst:             str_append
        - Src:             'rfc2231-parser.c:349,40'
          Dst:             str_c
        - Src:             'rfc2231-parser.c:349,31'
          Dst:             t_strdup
        - Src:             'rfc2231-parser.c:349,3'
          Dst:             result_append
        - Src:             'rfc2231-parser.c:351,2'
          Dst:             array_append_space_i
        - Src:             'rfc2231-parser.c:352,14'
          Dst:             array_idx_i
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    rfc822_parse_content_param
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          258
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - rfc822_parse_mime_token
        - rfc822_parse_quoted_string
        - rfc822_skip_lwsp
        - str_append_c
        - str_c
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:504,2'
          Dst:             str_truncate
        - Src:             'rfc822-parser.c:512,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:515,8'
          Dst:             t_str_new
        - Src:             'rfc822-parser.c:516,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'rfc822-parser.c:523,13'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:526,9'
          Dst:             rfc822_parse_quoted_string
        - Src:             'rfc822-parser.c:533,4'
          Dst:             str_append_c
        - Src:             'rfc822-parser.c:537,9'
          Dst:             rfc822_parse_mime_token
        - Src:             'rfc822-parser.c:540,11'
          Dst:             str_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    5
      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:    rfc822_skip_lwsp
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - rfc822_skip_comment
      functionUses:    53
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:151,7'
          Dst:             rfc822_skip_comment
    - functionName:    rfc822_parse_mime_token
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          102
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - rfc822_skip_lwsp
        - str_append_data
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:235,3'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:236,10'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:239,2'
          Dst:             str_append_data
    - functionName:    rfc822_parse_quoted_string
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          287
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - rfc822_skip_lwsp
        - str_append
        - str_append_data
      functionUses:    5
      BranchProfiles:
        - Branch String:   'rfc822-parser.c:253,3'
          Branch Sides:    []
      Callsites:
        - Src:             'rfc822-parser.c:248,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:249,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:256,5'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:257,5'
          Dst:             str_append
        - Src:             'rfc822-parser.c:262,4'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:264,11'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:270,4'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:286,4'
          Dst:             str_append_data
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    20
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-mail/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    rfc822_skip_comment
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          352
      EdgeCount:       64
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - str_append
        - str_append_data
        - str_truncate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'rfc822-parser.c:79,3'
          Branch Sides:    []
      Callsites:
        - Src:             'rfc822-parser.c:72,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:75,3'
          Dst:             str_truncate
        - Src:             'rfc822-parser.c:83,5'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:85,5'
          Dst:             str_append
        - Src:             'rfc822-parser.c:96,6'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:110,4'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:127,5'
          Dst:             str_append_data
    - functionName:    rfc822_parse_content_type
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          159
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - rfc822_parse_mime_token
        - rfc822_skip_lwsp
        - str_append_c
        - str_truncate
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:458,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:462,6'
          Dst:             rfc822_parse_mime_token
        - Src:             'rfc822-parser.c:468,3'
          Dst:             str_truncate
        - Src:             'rfc822-parser.c:472,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:473,3'
          Dst:             str_truncate
        - Src:             'rfc822-parser.c:476,2'
          Dst:             str_append_c
        - Src:             'rfc822-parser.c:483,13'
          Dst:             rfc822_parse_mime_token
        - Src:             'rfc822-parser.c:486,3'
          Dst:             str_truncate
    - functionName:    rfc822_parse_domain_literal
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          289
      EdgeCount:       47
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - rfc822_skip_lwsp
        - str_append
        - str_append_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'rfc822-parser.c:371,3'
          Branch Sides:    []
      Callsites:
        - Src:             'rfc822-parser.c:367,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:368,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:374,5'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:375,5'
          Dst:             str_append
        - Src:             'rfc822-parser.c:383,4'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:385,11'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:391,4'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:405,5'
          Dst:             str_append_data
    - functionName:    rfc822_parse_domain
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - rfc822_parse_domain_literal
        - rfc822_parse_dot_atom
        - rfc822_skip_lwsp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:424,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:425,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:428,6'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:432,10'
          Dst:             rfc822_parse_domain_literal
        - Src:             'rfc822-parser.c:437,13'
          Dst:             rfc822_parse_dot_atom
    - functionName:    rfc822_parse_dot_atom
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          188
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - rfc822_skip_lwsp
        - str_append_c
        - str_append_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:206,3'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:208,14'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:215,3'
          Dst:             str_append_c
        - Src:             'rfc822-parser.c:217,7'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:222,2'
          Dst:             i_panic
        - Src:             'rfc822-parser.c:223,2'
          Dst:             str_append_data
    - functionName:    rfc822_parse_atom_or_dot
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          101
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - rfc822_skip_lwsp
        - str_append_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:313,3'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:314,10'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:317,2'
          Dst:             str_append_data
    - functionName:    rfc822_parse_phrase
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - rfc822_parse_atom_or_dot
        - rfc822_parse_quoted_string
        - rfc822_skip_lwsp
        - str_append_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:338,10'
          Dst:             rfc822_parse_quoted_string
        - Src:             'rfc822-parser.c:340,10'
          Dst:             rfc822_parse_atom_or_dot
        - Src:             'rfc822-parser.c:348,3'
          Dst:             str_append_c
        - Src:             'rfc822-parser.c:350,9'
          Dst:             rfc822_skip_lwsp
    - functionName:    rfc822_parse_atom
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          117
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - rfc822_skip_lwsp
        - str_append_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rfc822-parser.c:173,3'
          Dst:             str_append_data
        - Src:             'rfc822-parser.c:174,10'
          Dst:             rfc822_skip_lwsp
        - Src:             'rfc822-parser.c:177,2'
          Dst:             str_append_data
    - functionName:    rfc822_parser_init
      functionSourceFile: '/src/dovecot/src/lib-mail/rfc822-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    mech_plain_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-plain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-plain.c:50,8'
          Dst:             str_new
        - Src:             'dsasl-client-mech-plain.c:52,3'
          Dst:             str_append
        - Src:             'dsasl-client-mech-plain.c:53,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-plain.c:54,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-plain.c:55,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-plain.c:56,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-plain.c:58,14'
          Dst:             str_data
        - Src:             'dsasl-client-mech-plain.c:59,18'
          Dst:             str_len
    - functionName:    mech_plain_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-plain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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-sasl/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    dsasl_clients_deinit
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:195,2'
          Dst:             array_free_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    dsasl_clients_init
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - dsasl_client_mech_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:176,2'
          Dst:             array_create_i
        - Src:             'dsasl-client.c:177,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:178,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:179,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:180,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:181,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:182,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:183,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:184,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:185,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:186,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:187,2'
          Dst:             dsasl_client_mech_register
        - Src:             'dsasl-client.c:188,2'
          Dst:             dsasl_client_mech_register
    - functionName:    dsasl_client_mech_register
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_delete_i
        - dsasl_client_mech_find_idx
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:50,6'
          Dst:             dsasl_client_mech_find_idx
        - Src:             'dsasl-client.c:52,3'
          Dst:             array_delete_i
        - Src:             'dsasl-client.c:54,2'
          Dst:             array_append_i
    - functionName:    dsasl_client_mech_find_idx
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:21,7'
          Dst:             strcasecmp
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    2
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    dsasl_client_get_result
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:164,3'
          Dst:             i_panic
        - Src:             'dsasl-client.c:165,3'
          Dst:             i_panic
    - functionName:    dsasl_client_set_parameter
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:151,3'
          Dst:             i_panic
    - functionName:    dsasl_client_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dsasl_client_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - memchr
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:123,6'
          Dst:             memchr
        - Src:             'dsasl-client.c:128,14'
          Dst:             t_strdup_printf
    - functionName:    dsasl_client_enable_channel_binding
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    dsasl_client_free
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_unref
        - pool_unref
        - safe_memset
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:102,36'
          Dst:             strlen
        - Src:             'dsasl-client.c:102,3'
          Dst:             safe_memset
        - Src:             'dsasl-client.c:103,2'
          Dst:             event_unref
        - Src:             'dsasl-client.c:104,2'
          Dst:             pool_unref
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    dsasl_client_new
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          112
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - t_str_lcase
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:70,16'
          Dst:             pool_alloconly_create
        - Src:             'dsasl-client.c:72,11'
          Dst:             p_malloc
        - Src:             'dsasl-client.c:75,23'
          Dst:             p_strdup
        - Src:             'dsasl-client.c:76,24'
          Dst:             p_strdup
        - Src:             'dsasl-client.c:77,21'
          Dst:             p_strdup
        - Src:             'dsasl-client.c:79,25'
          Dst:             p_strdup
        - Src:             'dsasl-client.c:80,21'
          Dst:             p_strdup
        - Src:             'dsasl-client.c:83,18'
          Dst:             event_create
        - Src:             'dsasl-client.c:84,2'
          Dst:             event_add_category
        - Src:             'dsasl-client.c:86,33'
          Dst:             t_str_lcase
        - Src:             'dsasl-client.c:86,3'
          Dst:             t_strdup_printf
        - Src:             'dsasl-client.c:85,2'
          Dst:             event_set_append_log_prefix
    - functionName:    dsasl_client_mech_unregister
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_delete_i
        - dsasl_client_mech_find_idx
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:61,6'
          Dst:             dsasl_client_mech_find_idx
        - Src:             'dsasl-client.c:62,3'
          Dst:             i_panic
        - Src:             'dsasl-client.c:63,2'
          Dst:             array_delete_i
    - functionName:    dsasl_client_mech_uses_password
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dsasl_client_mech_get_name
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      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:    dsasl_client_mech_find
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dsasl_client_mech_find_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client.c:33,9'
          Dst:             dsasl_client_mech_find_idx
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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-auth-client/../../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-auth-client/../../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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    args_hide_passwords
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          163
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - pool_datastack_create
        - strchr
        - strstr
        - t_strconcat
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:692,7'
          Dst:             strstr
        - Src:             'auth-master.c:693,24'
          Dst:             strchr
        - Src:             'auth-master.c:700,2'
          Dst:             pool_datastack_create
        - Src:             'auth-master.c:700,2'
          Dst:             array_create_i
        - Src:             'auth-master.c:701,2'
          Dst:             array_append_i
        - Src:             'auth-master.c:703,7'
          Dst:             strstr
        - Src:             'auth-master.c:704,8'
          Dst:             strchr
        - Src:             'auth-master.c:706,20'
          Dst:             t_strdup_until
        - Src:             'auth-master.c:706,8'
          Dst:             t_strconcat
        - Src:             'auth-master.c:708,4'
          Dst:             array_append_i
        - Src:             'auth-master.c:710,4'
          Dst:             array_append_i
        - Src:             'auth-master.c:713,2'
          Dst:             array_append_space_i
        - Src:             'auth-master.c:714,9'
          Dst:             array_idx_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    parse_reply
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:820,6'
          Dst:             strcmp
        - Src:             'auth-master.c:822,6'
          Dst:             strcmp
        - Src:             'auth-master.c:824,6'
          Dst:             strcmp
        - Src:             'auth-master.c:826,4'
          Dst:             e_error
        - Src:             'auth-master.c:829,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:829,4'
          Dst:             e_debug
        - Src:             'auth-master.c:829,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:835,2'
          Dst:             e_error
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_master_handle_input
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          145
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - auth_master_request_got_reply
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - hash_table_lookup
        - str_to_uint
        - strcmp
        - t_strarray_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:326,6'
          Dst:             strcmp
        - Src:             'auth-master.c:327,3'
          Dst:             e_error
        - Src:             'auth-master.c:333,25'
          Dst:             str_to_uint
        - Src:             'auth-master.c:334,3'
          Dst:             t_strarray_join
        - Src:             'auth-master.c:334,3'
          Dst:             e_error
        - Src:             'auth-master.c:339,8'
          Dst:             hash_table_lookup
        - Src:             'auth-master.c:341,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:341,3'
          Dst:             e_debug
        - Src:             'auth-master.c:341,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:347,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:347,2'
          Dst:             t_strarray_join
        - Src:             'auth-master.c:347,2'
          Dst:             e_debug
        - Src:             'auth-master.c:347,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:350,9'
          Dst:             auth_master_request_got_reply
    - functionName:    o_stream_uncork_flush
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../src/lib/ostream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_flush
        - o_stream_uncork
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/ostream.h:176,2'
          Dst:             o_stream_uncork
        - Src:             '../../src/lib/ostream.h:177,9'
          Dst:             o_stream_flush
    - functionName:    auth_master_handle_output_error
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_disconnect
        - e_error
        - o_stream_get_error
        - o_stream_get_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:375,3'
          Dst:             o_stream_get_name
        - Src:             'auth-master.c:375,3'
          Dst:             o_stream_get_error
        - Src:             'auth-master.c:375,3'
          Dst:             e_error
        - Src:             'auth-master.c:378,3'
          Dst:             e_error
        - Src:             'auth-master.c:380,2'
          Dst:             auth_master_disconnect
    - functionName:    auth_master_disconnect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_connection_failure
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:140,2'
          Dst:             auth_master_connection_failure
    - functionName:    auth_master_connection_failure
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          158
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - auth_master_request_fail
        - connection_disconnect
        - e_debug
        - event_send_abort
        - event_want_level
        - hash_table_count
        - i_panic
        - io_loop_stop
        - timeout_remove
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:103,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:103,3'
          Dst:             e_debug
        - Src:             'auth-master.c:103,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:104,2'
          Dst:             connection_disconnect
        - Src:             'auth-master.c:109,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:110,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:111,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:112,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:117,3'
          Dst:             auth_master_request_fail
        - Src:             'auth-master.c:119,2'
          Dst:             hash_table_count
        - Src:             'auth-master.c:119,2'
          Dst:             i_panic
        - Src:             'auth-master.c:122,3'
          Dst:             io_loop_stop
    - functionName:    auth_master_connection_output
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          180
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - auth_master_handle_output_error
        - auth_master_request_send
        - e_debug
        - event_send_abort
        - event_want_level
        - o_stream_cork
        - o_stream_flush
        - o_stream_get_buffer_used_size
        - o_stream_nsend_str
        - o_stream_uncork_flush
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:388,13'
          Dst:             o_stream_flush
        - Src:             'auth-master.c:390,4'
          Dst:             auth_master_handle_output_error
        - Src:             'auth-master.c:394,6'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'auth-master.c:397,2'
          Dst:             o_stream_cork
        - Src:             'auth-master.c:402,4'
          Dst:             t_strdup_printf
        - Src:             'auth-master.c:401,3'
          Dst:             o_stream_nsend_str
        - Src:             'auth-master.c:408,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:408,2'
          Dst:             e_debug
        - Src:             'auth-master.c:408,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:411,3'
          Dst:             auth_master_request_send
        - Src:             'auth-master.c:413,7'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'auth-master.c:418,6'
          Dst:             o_stream_uncork_flush
        - Src:             'auth-master.c:419,3'
          Dst:             auth_master_handle_output_error
    - functionName:    auth_master_handshake_line
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          147
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - auth_master_connection_update_timeout
        - connection_verify_version
        - e_error
        - str_to_pid
        - str_to_uint
        - strcmp
        - t_strsplit_tabescaped
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:287,8'
          Dst:             t_strsplit_tabescaped
        - Src:             'auth-master.c:288,6'
          Dst:             strcmp
        - Src:             'auth-master.c:290,7'
          Dst:             str_to_uint
        - Src:             'auth-master.c:291,7'
          Dst:             str_to_uint
        - Src:             'auth-master.c:292,4'
          Dst:             e_error
        - Src:             'auth-master.c:298,7'
          Dst:             connection_verify_version
        - Src:             'auth-master.c:303,13'
          Dst:             strcmp
        - Src:             'auth-master.c:307,6'
          Dst:             str_to_pid
        - Src:             'auth-master.c:308,3'
          Dst:             e_error
        - Src:             'auth-master.c:314,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:315,2'
          Dst:             auth_master_connection_update_timeout
    - functionName:    auth_master_connection_update_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - auth_master_connection_timeout
        - auth_master_request_get_timeout_msecs
        - i_panic
        - timeout_add_to
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:254,3'
          Dst:             i_panic
        - Src:             'auth-master.c:262,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:266,21'
          Dst:             auth_master_request_get_timeout_msecs
        - Src:             'auth-master.c:266,21'
          Dst:             timeout_add_to
        - Src:             'auth-master.c:266,21'
          Dst:             auth_master_connection_timeout
    - functionName:    auth_master_connection_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_connection_update_timeout
        - auth_master_request_fail
        - auth_master_request_get_timeout_msecs
        - t_strdup_printf
        - timeout_remove
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:221,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:225,24'
          Dst:             auth_master_request_get_timeout_msecs
        - Src:             'auth-master.c:234,11'
          Dst:             timeval_diff_msecs
        - Src:             'auth-master.c:235,12'
          Dst:             t_strdup_printf
        - Src:             'auth-master.c:238,3'
          Dst:             auth_master_request_fail
        - Src:             'auth-master.c:244,2'
          Dst:             auth_master_connection_update_timeout
    - functionName:    auth_master_input_args
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_disconnect
        - auth_master_handle_input
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:360,8'
          Dst:             auth_master_handle_input
        - Src:             'auth-master.c:362,3'
          Dst:             auth_master_disconnect
    - functionName:    auth_master_input_line
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_ref
        - auth_master_unref
        - connection_input_line_default
        - io_loop_is_running
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:431,2'
          Dst:             auth_master_ref
        - Src:             'auth-master.c:433,8'
          Dst:             connection_input_line_default
        - Src:             'auth-master.c:435,7'
          Dst:             io_loop_is_running
        - Src:             'auth-master.c:438,2'
          Dst:             auth_master_unref
    - functionName:    auth_master_ref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      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:    auth_master_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_disconnect
        - connection_deinit
        - connection_list_deinit
        - hash_table_destroy
        - i_panic
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:157,2'
          Dst:             i_panic
        - Src:             'auth-master.c:161,2'
          Dst:             auth_master_disconnect
        - Src:             'auth-master.c:162,2'
          Dst:             connection_deinit
        - Src:             'auth-master.c:163,2'
          Dst:             connection_list_deinit
        - Src:             'auth-master.c:164,2'
          Dst:             hash_table_destroy
        - Src:             'auth-master.c:165,2'
          Dst:             pool_unref
    - functionName:    auth_master_connected
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_connection_output
        - auth_master_handle_requests
        - i_panic
        - o_stream_set_flush_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:449,2'
          Dst:             i_panic
        - Src:             'auth-master.c:453,2'
          Dst:             o_stream_set_flush_callback
        - Src:             'auth-master.c:453,2'
          Dst:             auth_master_connection_output
        - Src:             'auth-master.c:455,2'
          Dst:             auth_master_handle_requests
    - functionName:    auth_master_handle_requests
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_connect
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - o_stream_set_flush_pending
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:511,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:511,3'
          Dst:             e_debug
        - Src:             'auth-master.c:511,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:513,9'
          Dst:             auth_master_connect
        - Src:             'auth-master.c:517,2'
          Dst:             i_panic
        - Src:             'auth-master.c:518,2'
          Dst:             o_stream_set_flush_pending
    - functionName:    auth_master_connect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - auth_master_connect_timeout
        - auth_master_delayed_connect_failure
        - connection_client_connect
        - connection_switch_ioloop_to
        - e_error
        - eacces_error_get
        - i_panic
        - timeout_add_to
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:480,2'
          Dst:             i_panic
        - Src:             'auth-master.c:481,2'
          Dst:             i_panic
        - Src:             'auth-master.c:484,3'
          Dst:             connection_switch_ioloop_to
        - Src:             'auth-master.c:485,6'
          Dst:             connection_client_connect
        - Src:             'auth-master.c:486,7'
          Dst:             __errno_location
        - Src:             'auth-master.c:487,4'
          Dst:             eacces_error_get
        - Src:             'auth-master.c:487,4'
          Dst:             e_error
        - Src:             'auth-master.c:491,4'
          Dst:             e_error
        - Src:             'auth-master.c:494,22'
          Dst:             timeout_add_to
        - Src:             'auth-master.c:494,22'
          Dst:             auth_master_delayed_connect_failure
        - Src:             'auth-master.c:500,21'
          Dst:             timeout_add_to
        - Src:             'auth-master.c:500,21'
          Dst:             auth_master_connect_timeout
    - functionName:    auth_master_delayed_connect_failure
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_connection_failure
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:467,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:467,2'
          Dst:             e_debug
        - Src:             'auth-master.c:467,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:469,2'
          Dst:             i_panic
        - Src:             'auth-master.c:470,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:471,2'
          Dst:             auth_master_connection_failure
    - functionName:    auth_master_connect_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_connection_failure
        - e_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:460,2'
          Dst:             e_error
        - Src:             'auth-master.c:461,2'
          Dst:             auth_master_connection_failure
    - functionName:    auth_master_destroy
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_connection_failure
        - e_error
      functionUses:    0
      BranchProfiles:
        - Branch String:   'auth-master.c:194,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-master.c:196,3'
          Dst:             auth_master_connection_failure
        - Src:             'auth-master.c:200,3'
          Dst:             e_error
        - Src:             'auth-master.c:202,3'
          Dst:             auth_master_connection_failure
        - Src:             'auth-master.c:206,4'
          Dst:             e_error
        - Src:             'auth-master.c:207,4'
          Dst:             auth_master_connection_failure
        - Src:             'auth-master.c:211,3'
          Dst:             auth_master_connection_failure
    - functionName:    auth_cache_status_reply_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1508
      functionLinenumberEnd: 1583
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          331
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - e_error
        - i_panic
        - str_to_uint
        - str_to_uint64
        - strchr
        - strcmp
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1512,3'
          Dst:             e_error
        - Src:             'auth-master.c:1516,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1517,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1519,6'
          Dst:             strcmp
        - Src:             'auth-master.c:1520,3'
          Dst:             e_error
        - Src:             'auth-master.c:1551,20'
          Dst:             strchr
        - Src:             'auth-master.c:1556,10'
          Dst:             t_strdup_until
        - Src:             'auth-master.c:1560,8'
          Dst:             strcmp
        - Src:             'auth-master.c:1563,8'
          Dst:             str_to_uint
        - Src:             'auth-master.c:1564,5'
          Dst:             e_error
        - Src:             'auth-master.c:1571,8'
          Dst:             strcmp
        - Src:             'auth-master.c:1574,8'
          Dst:             str_to_uint64
        - Src:             'auth-master.c:1575,5'
          Dst:             e_error
    - functionName:    auth_master_cache_get_status
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1587
      functionLinenumberEnd: 1619
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          163
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - auth_cache_status_reply_callback
        - auth_master_connect
        - auth_master_request
        - auth_master_request_set_event
        - auth_master_request_wait
        - e_debug
        - event_create
        - event_drop_parent_log_prefixes
        - event_send_abort
        - event_set_append_log_prefix
        - event_unref
        - event_want_level
        - str_append
        - str_data
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1592,6'
          Dst:             auth_master_connect
        - Src:             'auth-master.c:1596,14'
          Dst:             event_create
        - Src:             'auth-master.c:1597,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'auth-master.c:1598,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-master.c:1600,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1600,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1600,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1602,9'
          Dst:             t_str_new
        - Src:             'auth-master.c:1604,3'
          Dst:             str_append
        - Src:             'auth-master.c:1605,8'
          Dst:             str_data
        - Src:             'auth-master.c:1605,8'
          Dst:             str_len
        - Src:             'auth-master.c:1605,8'
          Dst:             auth_master_request
        - Src:             'auth-master.c:1605,8'
          Dst:             auth_cache_status_reply_callback
        - Src:             'auth-master.c:1608,2'
          Dst:             auth_master_request_set_event
        - Src:             'auth-master.c:1609,8'
          Dst:             auth_master_request_wait
        - Src:             'auth-master.c:1612,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1612,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1612,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1614,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1614,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1614,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1615,2'
          Dst:             event_unref
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_cache_flush_reply_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1451
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - str_to_uint
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1442,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1443,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1445,6'
          Dst:             strcmp
        - Src:             'auth-master.c:1447,30'
          Dst:             str_to_uint
    - functionName:    auth_master_cache_flush
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          196
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - auth_cache_flush_reply_callback
        - auth_master_connect
        - auth_master_request
        - auth_master_request_set_event
        - auth_master_request_wait
        - e_debug
        - event_create
        - event_drop_parent_log_prefixes
        - event_send_abort
        - event_set_append_log_prefix
        - event_unref
        - event_want_level
        - str_append_c
        - str_append_tabescaped
        - str_data
        - str_len
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1460,6'
          Dst:             auth_master_connect
        - Src:             'auth-master.c:1466,9'
          Dst:             t_str_new
        - Src:             'auth-master.c:1469,8'
          Dst:             str_len
        - Src:             'auth-master.c:1470,5'
          Dst:             str_append_c
        - Src:             'auth-master.c:1471,4'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:1475,14'
          Dst:             event_create
        - Src:             'auth-master.c:1476,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'auth-master.c:1477,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-master.c:1479,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1479,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1479,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1481,8'
          Dst:             str_data
        - Src:             'auth-master.c:1481,8'
          Dst:             str_len
        - Src:             'auth-master.c:1481,8'
          Dst:             auth_master_request
        - Src:             'auth-master.c:1481,8'
          Dst:             auth_cache_flush_reply_callback
        - Src:             'auth-master.c:1484,2'
          Dst:             auth_master_request_set_event
        - Src:             'auth-master.c:1485,8'
          Dst:             auth_master_request_wait
        - Src:             'auth-master.c:1488,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1488,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1488,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1490,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1490,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1490,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1491,2'
          Dst:             event_unref
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_master_user_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1416
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          160
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_request_abort
        - connection_input_resume
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_unref
        - event_want_level
        - p_free_internal
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1398,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1401,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1401,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1401,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1404,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1406,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1406,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1406,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1409,2'
          Dst:             auth_master_request_abort
        - Src:             'auth-master.c:1411,3'
          Dst:             connection_input_resume
        - Src:             'auth-master.c:1413,2'
          Dst:             str_free
        - Src:             'auth-master.c:1414,2'
          Dst:             event_unref
        - Src:             'auth-master.c:1415,2'
          Dst:             p_free_internal
    - functionName:    auth_master_user_do_list_next
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          268
      EdgeCount:       64
      CyclomaticComplexity: 15
      functionsReached:
        - auth_master_request_wait
        - connection_input_halt
        - connection_input_resume
        - i_panic
        - i_stream_next_line
        - str_c
        - str_len
        - str_truncate
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1346,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1347,2'
          Dst:             str_truncate
        - Src:             'auth-master.c:1351,10'
          Dst:             i_stream_next_line
        - Src:             'auth-master.c:1353,4'
          Dst:             t_push
        - Src:             'auth-master.c:1355,6'
          Dst:             t_pop
        - Src:             'auth-master.c:1355,6'
          Dst:             i_panic
        - Src:             'auth-master.c:1359,7'
          Dst:             str_len
        - Src:             'auth-master.c:1360,11'
          Dst:             str_c
        - Src:             'auth-master.c:1365,3'
          Dst:             connection_input_resume
        - Src:             'auth-master.c:1366,6'
          Dst:             auth_master_request_wait
        - Src:             'auth-master.c:1368,2'
          Dst:             connection_input_halt
        - Src:             'auth-master.c:1372,2'
          Dst:             str_len
        - Src:             'auth-master.c:1372,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1373,9'
          Dst:             str_c
    - functionName:    auth_master_user_list_next
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1386
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_user_do_list_next
        - e_debug
        - event_send_abort
        - event_want_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1380,13'
          Dst:             auth_master_user_do_list_next
        - Src:             'auth-master.c:1384,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1384,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1384,2'
          Dst:             event_send_abort
    - functionName:    auth_user_list_reply_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - e_error
        - i_panic
        - str_append
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1270,3'
          Dst:             e_error
        - Src:             'auth-master.c:1276,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1277,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1279,6'
          Dst:             strcmp
        - Src:             'auth-master.c:1281,26'
          Dst:             strcmp
        - Src:             'auth-master.c:1282,4'
          Dst:             e_error
        - Src:             'auth-master.c:1288,6'
          Dst:             strcmp
        - Src:             'auth-master.c:1289,3'
          Dst:             e_error
        - Src:             'auth-master.c:1295,2'
          Dst:             str_append
    - functionName:    auth_master_user_list_init
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          157
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_request
        - auth_master_request_count
        - auth_master_request_set_event
        - auth_master_user_event_create
        - auth_user_info_export
        - auth_user_list_reply_callback
        - connection_input_halt
        - e_debug
        - event_add_str
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - str_data
        - str_len
        - str_new
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1307,2'
          Dst:             auth_master_request_count
        - Src:             'auth-master.c:1307,2'
          Dst:             i_panic
        - Src:             'auth-master.c:1309,8'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:1309,8'
          Dst:             p_malloc
        - Src:             'auth-master.c:1311,18'
          Dst:             str_new
        - Src:             'auth-master.c:1313,9'
          Dst:             t_str_new
        - Src:             'auth-master.c:1315,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:1317,3'
          Dst:             auth_user_info_export
        - Src:             'auth-master.c:1319,15'
          Dst:             auth_master_user_event_create
        - Src:             'auth-master.c:1320,2'
          Dst:             event_add_str
        - Src:             'auth-master.c:1323,3'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1325,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1325,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1325,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1327,13'
          Dst:             str_data
        - Src:             'auth-master.c:1327,13'
          Dst:             str_len
        - Src:             'auth-master.c:1327,13'
          Dst:             auth_master_request
        - Src:             'auth-master.c:1327,13'
          Dst:             auth_user_list_reply_callback
        - Src:             'auth-master.c:1330,2'
          Dst:             auth_master_request_set_event
        - Src:             'auth-master.c:1332,2'
          Dst:             connection_input_halt
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_user_info_export
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          426
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - array_is_created_i
        - net_ip2addr
        - net_ip_compare
        - str_append
        - str_append_c
        - str_append_tabescaped
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:722,3'
          Dst:             str_append
        - Src:             'auth-master.c:723,3'
          Dst:             str_append
        - Src:             'auth-master.c:726,3'
          Dst:             str_append
        - Src:             'auth-master.c:727,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:730,3'
          Dst:             str_append
        - Src:             'auth-master.c:731,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:734,32'
          Dst:             net_ip2addr
        - Src:             'auth-master.c:734,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:736,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:738,32'
          Dst:             net_ip2addr
        - Src:             'auth-master.c:738,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:740,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:742,7'
          Dst:             net_ip_compare
        - Src:             'auth-master.c:743,37'
          Dst:             net_ip2addr
        - Src:             'auth-master.c:743,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:745,7'
          Dst:             net_ip_compare
        - Src:             'auth-master.c:746,37'
          Dst:             net_ip2addr
        - Src:             'auth-master.c:746,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:749,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:752,3'
          Dst:             str_printfa
        - Src:             'auth-master.c:754,3'
          Dst:             str_append
        - Src:             'auth-master.c:756,23'
          Dst:             t_str_new
        - Src:             'auth-master.c:757,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:759,4'
          Dst:             str_append_c
        - Src:             'auth-master.c:760,4'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:762,3'
          Dst:             str_append
        - Src:             'auth-master.c:763,30'
          Dst:             str_c
        - Src:             'auth-master.c:763,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-master.c:765,6'
          Dst:             array_is_created_i
        - Src:             'auth-master.c:767,4'
          Dst:             str_append_c
        - Src:             'auth-master.c:768,4'
          Dst:             str_append_tabescaped
    - functionName:    auth_master_user_event_create
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          256
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - event_add_int
        - event_add_ip
        - event_add_str
        - event_create
        - event_drop_parent_log_prefixes
        - event_set_append_log_prefix
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:780,10'
          Dst:             event_create
        - Src:             'auth-master.c:781,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'auth-master.c:782,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-master.c:786,4'
          Dst:             event_add_str
        - Src:             'auth-master.c:788,4'
          Dst:             event_add_str
        - Src:             'auth-master.c:790,4'
          Dst:             event_add_str
        - Src:             'auth-master.c:792,4'
          Dst:             event_add_ip
        - Src:             'auth-master.c:794,4'
          Dst:             event_add_int
        - Src:             'auth-master.c:796,4'
          Dst:             event_add_ip
        - Src:             'auth-master.c:798,4'
          Dst:             event_add_int
        - Src:             'auth-master.c:800,4'
          Dst:             event_add_ip
        - Src:             'auth-master.c:803,4'
          Dst:             event_add_ip
        - Src:             'auth-master.c:806,4'
          Dst:             event_add_int
        - Src:             'auth-master.c:809,4'
          Dst:             event_add_int
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    t_split_key_value_eq
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_split_key_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:190,9'
          Dst:             t_split_key_value
    - functionName:    auth_user_fields_parse
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1218
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          165
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - array_create_i
        - p_strdup
        - str_to_gid
        - str_to_uid
        - strcmp
        - t_split_key_value_eq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1222,2'
          Dst:             array_create_i
        - Src:             'auth-master.c:1226,3'
          Dst:             t_split_key_value_eq
        - Src:             'auth-master.c:1228,7'
          Dst:             strcmp
        - Src:             'auth-master.c:1229,8'
          Dst:             str_to_uid
        - Src:             'auth-master.c:1233,14'
          Dst:             strcmp
        - Src:             'auth-master.c:1234,8'
          Dst:             str_to_gid
        - Src:             'auth-master.c:1238,14'
          Dst:             strcmp
        - Src:             'auth-master.c:1239,20'
          Dst:             p_strdup
        - Src:             'auth-master.c:1240,12'
          Dst:             strcmp
        - Src:             'auth-master.c:1241,22'
          Dst:             p_strdup
        - Src:             'auth-master.c:1242,12'
          Dst:             strcmp
        - Src:             'auth-master.c:1245,24'
          Dst:             p_strdup
        - Src:             'auth-master.c:1246,4'
          Dst:             array_append_i
    - functionName:    auth_master_user_lookup_destroyed
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1117,2'
          Dst:             event_unref
        - Src:             'auth-master.c:1118,2'
          Dst:             p_free_internal
        - Src:             'auth-master.c:1119,2'
          Dst:             p_free_internal
    - functionName:    auth_master_user_lookup_finished
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1160
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          230
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - e_error
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - t_strarray_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1132,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1137,4'
          Dst:             e_error
        - Src:             'auth-master.c:1142,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:1142,4'
          Dst:             e_debug
        - Src:             'auth-master.c:1142,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1145,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:1145,4'
          Dst:             e_debug
        - Src:             'auth-master.c:1145,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1153,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1155,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:1155,3'
          Dst:             t_strarray_join
        - Src:             'auth-master.c:1155,3'
          Dst:             e_debug
        - Src:             'auth-master.c:1155,3'
          Dst:             event_send_abort
    - functionName:    auth_master_user_lookup_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strarray_dup
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1076,18'
          Dst:             p_strdup
        - Src:             'auth-master.c:1077,16'
          Dst:             p_strarray_dup
    - functionName:    auth_master_user_lookup_async
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          177
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - auth_lookup_reply_callback
        - auth_master_request
        - auth_master_request_add_destroy_callback
        - auth_master_request_invalid
        - auth_master_request_set_event
        - auth_master_user_event_create
        - auth_master_user_lookup_destroyed
        - auth_user_info_export
        - e_debug
        - event_add_str
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_strdup
        - is_valid_string
        - malloc_multiply_check
        - p_malloc
        - str_append
        - str_data
        - str_len
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1174,11'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:1174,11'
          Dst:             p_malloc
        - Src:             'auth-master.c:1179,7'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1179,33'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1181,9'
          Dst:             auth_master_request_invalid
        - Src:             'auth-master.c:1181,9'
          Dst:             auth_lookup_reply_callback
        - Src:             'auth-master.c:1183,3'
          Dst:             auth_master_request_add_destroy_callback
        - Src:             'auth-master.c:1183,3'
          Dst:             auth_master_user_lookup_destroyed
        - Src:             'auth-master.c:1190,24'
          Dst:             i_strdup
        - Src:             'auth-master.c:1192,9'
          Dst:             t_str_new
        - Src:             'auth-master.c:1193,2'
          Dst:             str_append
        - Src:             'auth-master.c:1194,2'
          Dst:             auth_user_info_export
        - Src:             'auth-master.c:1197,9'
          Dst:             t_strdup_printf
        - Src:             'auth-master.c:1196,25'
          Dst:             auth_master_user_event_create
        - Src:             'auth-master.c:1198,2'
          Dst:             event_add_str
        - Src:             'auth-master.c:1201,3'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1203,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1203,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1203,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1205,8'
          Dst:             str_data
        - Src:             'auth-master.c:1205,8'
          Dst:             str_len
        - Src:             'auth-master.c:1205,8'
          Dst:             auth_master_request
        - Src:             'auth-master.c:1205,8'
          Dst:             auth_lookup_reply_callback
        - Src:             'auth-master.c:1208,2'
          Dst:             auth_master_request_set_event
        - Src:             'auth-master.c:1209,2'
          Dst:             auth_master_request_add_destroy_callback
        - Src:             'auth-master.c:1209,2'
          Dst:             auth_master_user_lookup_destroyed
    - functionName:    is_valid_string
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_lookup_reply_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          379
      EdgeCount:       88
      CyclomaticComplexity: 18
      functionsReached:
        - args_hide_passwords
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - parse_reply
        - str_array_length
        - str_begins
        - str_begins_builtin_success
        - strncmp
        - t_strarray_join
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:852,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:852,3'
          Dst:             e_debug
        - Src:             'auth-master.c:852,3'
          Dst:             event_send_abort
        - Src:             'auth-master.c:857,2'
          Dst:             i_panic
        - Src:             'auth-master.c:858,2'
          Dst:             i_panic
        - Src:             'auth-master.c:860,11'
          Dst:             parse_reply
        - Src:             'auth-master.c:863,8'
          Dst:             str_array_length
        - Src:             'auth-master.c:864,2'
          Dst:             i_panic
        - Src:             'auth-master.c:867,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:867,4'
          Dst:             e_debug
        - Src:             'auth-master.c:867,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:870,11'
          Dst:             args_hide_passwords
        - Src:             'auth-master.c:871,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:871,4'
          Dst:             t_strarray_join
        - Src:             'auth-master.c:871,4'
          Dst:             e_debug
        - Src:             'auth-master.c:871,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:879,8'
          Dst:             str_begins
        - Src:             'auth-master.c:879,8'
          Dst:             strncmp
        - Src:             'auth-master.c:879,8'
          Dst:             str_begins_builtin_success
        - Src:             'auth-master.c:885,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:885,4'
          Dst:             e_debug
        - Src:             'auth-master.c:885,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:888,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:888,4'
          Dst:             e_debug
        - Src:             'auth-master.c:888,4'
          Dst:             event_send_abort
    - functionName:    auth_master_user_lookup
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_connect
        - auth_master_request_wait
        - auth_master_user_lookup_async
        - auth_master_user_lookup_callback
        - is_valid_string
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1087,7'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1087,33'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1093,6'
          Dst:             auth_master_connect
        - Src:             'auth-master.c:1103,8'
          Dst:             auth_master_user_lookup_async
        - Src:             'auth-master.c:1103,8'
          Dst:             auth_master_user_lookup_callback
        - Src:             'auth-master.c:1106,8'
          Dst:             auth_master_request_wait
        - Src:             'auth-master.c:1110,3'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:1110,3'
          Dst:             p_malloc
    - functionName:    auth_master_pass_lookup_destroyed
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:960,2'
          Dst:             event_unref
        - Src:             'auth-master.c:961,2'
          Dst:             p_free_internal
        - Src:             'auth-master.c:962,2'
          Dst:             p_free_internal
    - functionName:    auth_master_pass_lookup_finished
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          192
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - t_strarray_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:974,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:978,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:978,4'
          Dst:             e_debug
        - Src:             'auth-master.c:978,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:981,4'
          Dst:             event_want_level
        - Src:             'auth-master.c:981,4'
          Dst:             e_debug
        - Src:             'auth-master.c:981,4'
          Dst:             event_send_abort
        - Src:             'auth-master.c:986,4'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:988,3'
          Dst:             event_want_level
        - Src:             'auth-master.c:988,3'
          Dst:             t_strarray_join
        - Src:             'auth-master.c:988,3'
          Dst:             e_debug
        - Src:             'auth-master.c:988,3'
          Dst:             event_send_abort
    - functionName:    auth_master_pass_lookup_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strarray_dup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:923,16'
          Dst:             p_strarray_dup
    - functionName:    auth_master_pass_lookup_async
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1047
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          177
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - auth_lookup_reply_callback
        - auth_master_pass_lookup_destroyed
        - auth_master_request
        - auth_master_request_add_destroy_callback
        - auth_master_request_invalid
        - auth_master_request_set_event
        - auth_master_user_event_create
        - auth_user_info_export
        - e_debug
        - event_add_str
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_strdup
        - is_valid_string
        - malloc_multiply_check
        - p_malloc
        - str_append
        - str_data
        - str_len
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:1007,11'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:1007,11'
          Dst:             p_malloc
        - Src:             'auth-master.c:1012,7'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1012,33'
          Dst:             is_valid_string
        - Src:             'auth-master.c:1014,9'
          Dst:             auth_master_request_invalid
        - Src:             'auth-master.c:1014,9'
          Dst:             auth_lookup_reply_callback
        - Src:             'auth-master.c:1016,3'
          Dst:             auth_master_request_add_destroy_callback
        - Src:             'auth-master.c:1016,3'
          Dst:             auth_master_pass_lookup_destroyed
        - Src:             'auth-master.c:1023,24'
          Dst:             i_strdup
        - Src:             'auth-master.c:1025,9'
          Dst:             t_str_new
        - Src:             'auth-master.c:1026,2'
          Dst:             str_append
        - Src:             'auth-master.c:1027,2'
          Dst:             auth_user_info_export
        - Src:             'auth-master.c:1030,9'
          Dst:             t_strdup_printf
        - Src:             'auth-master.c:1029,25'
          Dst:             auth_master_user_event_create
        - Src:             'auth-master.c:1031,2'
          Dst:             event_add_str
        - Src:             'auth-master.c:1034,3'
          Dst:             event_create_passthrough
        - Src:             'auth-master.c:1036,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:1036,2'
          Dst:             e_debug
        - Src:             'auth-master.c:1036,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:1038,8'
          Dst:             str_data
        - Src:             'auth-master.c:1038,8'
          Dst:             str_len
        - Src:             'auth-master.c:1038,8'
          Dst:             auth_master_request
        - Src:             'auth-master.c:1038,8'
          Dst:             auth_lookup_reply_callback
        - Src:             'auth-master.c:1041,2'
          Dst:             auth_master_request_set_event
        - Src:             'auth-master.c:1042,2'
          Dst:             auth_master_request_add_destroy_callback
        - Src:             'auth-master.c:1042,2'
          Dst:             auth_master_pass_lookup_destroyed
    - functionName:    auth_master_pass_lookup
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_connect
        - auth_master_pass_lookup_async
        - auth_master_pass_lookup_callback
        - auth_master_request_wait
        - is_valid_string
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:932,7'
          Dst:             is_valid_string
        - Src:             'auth-master.c:932,33'
          Dst:             is_valid_string
        - Src:             'auth-master.c:937,6'
          Dst:             auth_master_connect
        - Src:             'auth-master.c:947,8'
          Dst:             auth_master_pass_lookup_async
        - Src:             'auth-master.c:947,8'
          Dst:             auth_master_pass_lookup_callback
        - Src:             'auth-master.c:950,8'
          Dst:             auth_master_request_wait
        - Src:             'auth-master.c:953,3'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:953,3'
          Dst:             p_malloc
    - functionName:    auth_master_connection_abort_requests
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_request_abort
        - hash_table_count
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:133,3'
          Dst:             auth_master_request_abort
        - Src:             'auth-master.c:135,2'
          Dst:             hash_table_count
        - Src:             'auth-master.c:135,2'
          Dst:             i_panic
    - functionName:    auth_master_wait
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          314
      EdgeCount:       65
      CyclomaticComplexity: 14
      functionsReached:
        - auth_master_connection_abort_requests
        - auth_master_ref
        - auth_master_request_count
        - auth_master_switch_ioloop_to
        - auth_master_unref
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_get_data_size
        - i_stream_set_input_pending
        - io_loop_create
        - io_loop_destroy
        - io_loop_have_immediate_timeouts
        - io_loop_have_ios
        - master_service_ioloop_run_interruptible
        - o_stream_cork
        - o_stream_is_corked
        - o_stream_set_flush_pending
        - o_stream_uncork
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:604,2'
          Dst:             i_panic
        - Src:             'auth-master.c:605,2'
          Dst:             auth_master_request_count
        - Src:             'auth-master.c:605,2'
          Dst:             i_panic
        - Src:             'auth-master.c:607,2'
          Dst:             auth_master_ref
        - Src:             'auth-master.c:609,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:609,2'
          Dst:             e_debug
        - Src:             'auth-master.c:609,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:614,11'
          Dst:             io_loop_create
        - Src:             'auth-master.c:615,2'
          Dst:             auth_master_switch_ioloop_to
        - Src:             'auth-master.c:618,6'
          Dst:             i_stream_get_data_size
        - Src:             'auth-master.c:619,3'
          Dst:             i_stream_set_input_pending
        - Src:             'auth-master.c:621,3'
          Dst:             o_stream_set_flush_pending
        - Src:             'auth-master.c:622,16'
          Dst:             o_stream_is_corked
        - Src:             'auth-master.c:623,3'
          Dst:             o_stream_uncork
        - Src:             'auth-master.c:628,2'
          Dst:             io_loop_have_ios
        - Src:             'auth-master.c:628,2'
          Dst:             io_loop_have_immediate_timeouts
        - Src:             'auth-master.c:628,2'
          Dst:             i_panic
        - Src:             'auth-master.c:632,9'
          Dst:             auth_master_request_count
        - Src:             'auth-master.c:633,7'
          Dst:             master_service_ioloop_run_interruptible
        - Src:             'auth-master.c:637,4'
          Dst:             auth_master_connection_abort_requests
        - Src:             'auth-master.c:644,3'
          Dst:             o_stream_cork
        - Src:             'auth-master.c:646,2'
          Dst:             auth_master_switch_ioloop_to
        - Src:             'auth-master.c:647,2'
          Dst:             io_loop_destroy
        - Src:             'auth-master.c:651,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:651,2'
          Dst:             e_debug
        - Src:             'auth-master.c:651,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:653,2'
          Dst:             auth_master_unref
    - functionName:    auth_master_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - connection_switch_ioloop_to
        - io_loop_move_timeout_to
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:554,4'
          Dst:             io_loop_move_timeout_to
        - Src:             'auth-master.c:558,4'
          Dst:             io_loop_move_timeout_to
        - Src:             'auth-master.c:561,19'
          Dst:             io_loop_move_timeout_to
        - Src:             'auth-master.c:564,4'
          Dst:             io_loop_move_timeout_to
        - Src:             'auth-master.c:566,2'
          Dst:             connection_switch_ioloop_to
    - functionName:    auth_master_stop_idle
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:596,2'
          Dst:             timeout_remove
    - functionName:    auth_master_idle_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_disconnect
        - e_debug
        - event_send_abort
        - event_want_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:576,2'
          Dst:             event_want_level
        - Src:             'auth-master.c:576,2'
          Dst:             e_debug
        - Src:             'auth-master.c:576,2'
          Dst:             event_send_abort
        - Src:             'auth-master.c:577,2'
          Dst:             auth_master_disconnect
    - functionName:    auth_master_check_idle
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - auth_master_idle_timeout
        - i_panic
        - timeout_add_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:586,2'
          Dst:             i_panic
        - Src:             'auth-master.c:589,18'
          Dst:             timeout_add_to
        - Src:             'auth-master.c:589,18'
          Dst:             auth_master_idle_timeout
    - functionName:    auth_master_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_switch_ioloop_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:571,2'
          Dst:             auth_master_switch_ioloop_to
    - functionName:    auth_master_abort_invalid_requests
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_request_abort_invalid
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:526,2'
          Dst:             timeout_remove
        - Src:             'auth-master.c:532,4'
          Dst:             auth_master_request_abort_invalid
    - functionName:    auth_master_handle_invalid_requests
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_abort_invalid_requests
        - timeout_add_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:542,21'
          Dst:             timeout_add_to
        - Src:             'auth-master.c:542,21'
          Dst:             auth_master_abort_invalid_requests
    - functionName:    auth_master_connection_start_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_connection_update_timeout
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:276,2'
          Dst:             auth_master_connection_update_timeout
    - functionName:    auth_master_get_socket_path
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 186
      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:    auth_master_set_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 182
      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:    auth_master_deinit
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_disconnect
        - auth_master_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:174,2'
          Dst:             auth_master_disconnect
        - Src:             'auth-master.c:175,2'
          Dst:             auth_master_unref
    - functionName:    auth_master_init
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          91
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_init_client_unix
        - connection_list_init
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - event_set_forced_debug
        - event_unref
        - hash_table_create_direct
        - i_rand_limit
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master.c:62,9'
          Dst:             pool_alloconly_create
        - Src:             'auth-master.c:63,9'
          Dst:             malloc_multiply_check
        - Src:             'auth-master.c:63,9'
          Dst:             p_malloc
        - Src:             'auth-master.c:67,27'
          Dst:             p_strdup
        - Src:             'auth-master.c:70,16'
          Dst:             connection_list_init
        - Src:             'auth-master.c:73,17'
          Dst:             event_create
        - Src:             'auth-master.c:74,2'
          Dst:             event_add_category
        - Src:             'auth-master.c:75,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-master.c:76,2'
          Dst:             event_set_forced_debug
        - Src:             'auth-master.c:80,2'
          Dst:             connection_init_client_unix
        - Src:             'auth-master.c:82,2'
          Dst:             event_unref
        - Src:             'auth-master.c:84,2'
          Dst:             hash_table_create_direct
        - Src:             'auth-master.c:88,21'
          Dst:             i_rand_limit
    - functionName:    charset_to_utf8_reset
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    charset_utf8_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append
        - i_panic
        - uni_utf8_get_valid_data
        - uni_utf8_partial_strlen_n
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-utf8.c:53,2'
          Dst:             uni_utf8_partial_strlen_n
        - Src:             'charset-utf8.c:55,3'
          Dst:             i_panic
        - Src:             'charset-utf8.c:63,14'
          Dst:             uni_utf8_get_valid_data
        - Src:             'charset-utf8.c:66,3'
          Dst:             buffer_append
    - functionName:    charset_utf8_to_utf8_begin
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - charset_to_utf8_begin
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-utf8.c:41,6'
          Dst:             charset_to_utf8_begin
        - Src:             'charset-utf8.c:42,3'
          Dst:             i_unreached
    - functionName:    charset_to_utf8_begin
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    charset_to_utf8_end
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    charset_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    charset_to_utf8_str
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - charset_to_utf8
        - charset_to_utf8_begin
        - charset_to_utf8_end
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-utf8.c:25,15'
          Dst:             strlen
        - Src:             'charset-utf8.c:27,6'
          Dst:             charset_to_utf8_begin
        - Src:             'charset-utf8.c:30,14'
          Dst:             charset_to_utf8
        - Src:             'charset-utf8.c:32,2'
          Dst:             charset_to_utf8_end
    - functionName:    charset_is_utf8
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-utf8.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-utf8.c:14,9'
          Dst:             strcasecmp
        - Src:             'charset-utf8.c:15,3'
          Dst:             strcasecmp
        - Src:             'charset-utf8.c:16,3'
          Dst:             strcasecmp
        - Src:             'charset-utf8.c:17,3'
          Dst:             strcasecmp
    - functionName:    ssl_iostream_get_peer_cert_fingerprint
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_channel_binding
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_application_protocol
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_ja3
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_protocol_version
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_protocol_name
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_pfs
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_cipher
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    quick_strcmp
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - null_strcmp
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:359,9'
          Dst:             null_strcmp
    - functionName:    ssl_iostream_settings_equals
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          347
      EdgeCount:       75
      CyclomaticComplexity: 24
      functionsReached:
        - quick_strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:368,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:369,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:370,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:373,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:375,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:377,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:381,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:382,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:385,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:386,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:387,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:388,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:389,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:390,7'
          Dst:             quick_strcmp
        - Src:             'iostream-ssl.c:392,7'
          Dst:             quick_strcmp
    - functionName:    ssl_iostream_get_security_string
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_compression
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_server_name
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_peer_username
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_allow_invalid_cert
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_get_last_error
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_check_cert_validity
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ssl_iostream_cert_match_name
        - ssl_iostream_get_last_error
        - ssl_iostream_has_cert
        - ssl_iostream_has_valid_cert
        - t_strdup
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:305,7'
          Dst:             ssl_iostream_has_valid_cert
        - Src:             'iostream-ssl.c:306,8'
          Dst:             ssl_iostream_has_cert
        - Src:             'iostream-ssl.c:310,24'
          Dst:             ssl_iostream_get_last_error
        - Src:             'iostream-ssl.c:310,15'
          Dst:             t_strdup
        - Src:             'iostream-ssl.c:315,14'
          Dst:             ssl_iostream_cert_match_name
        - Src:             'iostream-ssl.c:316,14'
          Dst:             t_strdup_printf
    - functionName:    ssl_iostream_has_valid_cert
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_has_cert
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_cert_match_name
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_is_handshaked
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ssl_iostream_get_state
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:280,9'
          Dst:             ssl_iostream_get_state
    - functionName:    ssl_iostream_get_state
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_change_context
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_set_sni_callback
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_set_handshake_callback
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_handshake
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_set_log_prefix
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_destroy
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_unref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_autocreate_ssl_server
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          175
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - io_stream_create_ssl_server
        - pool_unref
        - ssl_iostream_context_set_application_protocols
        - ssl_iostream_context_unref
        - ssl_iostream_server_context_cache_get
        - ssl_server_settings_get
        - ssl_server_settings_to_iostream_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:199,2'
          Dst:             i_panic
        - Src:             'iostream-ssl.c:200,6'
          Dst:             ssl_server_settings_get
        - Src:             'iostream-ssl.c:203,2'
          Dst:             ssl_server_settings_to_iostream_set
        - Src:             'iostream-ssl.c:204,2'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:205,2'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:207,8'
          Dst:             ssl_iostream_server_context_cache_get
        - Src:             'iostream-ssl.c:208,2'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:212,3'
          Dst:             ssl_iostream_context_set_application_protocols
        - Src:             'iostream-ssl.c:215,8'
          Dst:             io_stream_create_ssl_server
        - Src:             'iostream-ssl.c:217,2'
          Dst:             ssl_iostream_context_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_context_set_application_protocols
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_create_ssl_server
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_context_unref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_autocreate_ssl_client
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          216
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - io_stream_create_ssl_client
        - p_memdup
        - pool_add_external_ref
        - pool_alloconly_create
        - pool_unref
        - ssl_client_settings_get
        - ssl_client_settings_to_iostream_set
        - ssl_iostream_client_context_cache_get
        - ssl_iostream_context_set_application_protocols
        - ssl_iostream_context_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:153,2'
          Dst:             i_panic
        - Src:             'iostream-ssl.c:154,6'
          Dst:             ssl_client_settings_get
        - Src:             'iostream-ssl.c:157,2'
          Dst:             ssl_client_settings_to_iostream_set
        - Src:             'iostream-ssl.c:159,17'
          Dst:             pool_alloconly_create
        - Src:             'iostream-ssl.c:162,4'
          Dst:             p_memdup
        - Src:             'iostream-ssl.c:164,3'
          Dst:             pool_add_external_ref
        - Src:             'iostream-ssl.c:166,3'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:169,2'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:171,8'
          Dst:             ssl_iostream_client_context_cache_get
        - Src:             'iostream-ssl.c:172,2'
          Dst:             pool_unref
        - Src:             'iostream-ssl.c:176,3'
          Dst:             ssl_iostream_context_set_application_protocols
        - Src:             'iostream-ssl.c:179,8'
          Dst:             io_stream_create_ssl_client
        - Src:             'iostream-ssl.c:183,2'
          Dst:             ssl_iostream_context_unref
    - functionName:    io_stream_create_ssl_client
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_context_ref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_iostream_context_init_server
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - io_stream_ssl_global_init
        - ssl_module_load
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:98,7'
          Dst:             ssl_module_load
        - Src:             'iostream-ssl.c:101,6'
          Dst:             io_stream_ssl_global_init
    - functionName:    ssl_module_load
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lib_atexit_priority
        - module_dir_init
        - module_dir_try_load_missing
        - module_dir_unload
        - ssl_module_unload
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:33,6'
          Dst:             module_dir_try_load_missing
        - Src:             'iostream-ssl.c:36,2'
          Dst:             module_dir_init
        - Src:             'iostream-ssl.c:38,14'
          Dst:             t_strdup_printf
        - Src:             'iostream-ssl.c:41,3'
          Dst:             module_dir_unload
        - Src:             'iostream-ssl.c:48,2'
          Dst:             lib_atexit_priority
        - Src:             'iostream-ssl.c:48,2'
          Dst:             ssl_module_unload
    - functionName:    io_stream_ssl_global_init
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_module_unload
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_dir_unload
        - ssl_iostream_context_cache_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:14,2'
          Dst:             ssl_iostream_context_cache_free
        - Src:             'iostream-ssl.c:15,2'
          Dst:             module_dir_unload
    - functionName:    ssl_iostream_context_init_client
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - io_stream_ssl_global_init
        - ssl_module_load
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:79,7'
          Dst:             ssl_module_load
        - Src:             'iostream-ssl.c:82,6'
          Dst:             io_stream_ssl_global_init
    - functionName:    ssl_iostream_get_default_ca_paths
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ssl_module_load
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl.c:63,28'
          Dst:             ssl_module_load
    - functionName:    iostream_ssl_module_init
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    ssl_server_settings_to_iostream_set
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          186
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pool_add_external_ref
        - settings_file_get
        - ssl_common_settings_to_iostream_set
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:292,3'
          Dst:             ssl_common_settings_to_iostream_set
        - Src:             'ssl-settings.c:293,2'
          Dst:             pool_add_external_ref
        - Src:             'ssl-settings.c:295,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:296,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:298,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:303,3'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:305,3'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:310,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:315,3'
          Dst:             strcmp
    - functionName:    ssl_common_settings_to_iostream_set
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          86
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_add_external_ref
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:247,16'
          Dst:             pool_alloconly_create
        - Src:             'ssl-settings.c:248,8'
          Dst:             malloc_multiply_check
        - Src:             'ssl-settings.c:248,8'
          Dst:             p_malloc
        - Src:             'ssl-settings.c:249,2'
          Dst:             pool_add_external_ref
    - functionName:    ssl_client_settings_to_iostream_set
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          84
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - settings_file_get
        - ssl_common_settings_to_iostream_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:269,3'
          Dst:             ssl_common_settings_to_iostream_set
        - Src:             'ssl-settings.c:271,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:274,2'
          Dst:             settings_file_get
        - Src:             'ssl-settings.c:276,2'
          Dst:             settings_file_get
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    ssl_server_settings_get
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - event_create
        - event_unref
        - pool_unref
        - settings_event_add_filter_name
        - settings_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:229,10'
          Dst:             event_create
        - Src:             'ssl-settings.c:230,2'
          Dst:             settings_event_add_filter_name
        - Src:             'ssl-settings.c:231,12'
          Dst:             settings_get
        - Src:             'ssl-settings.c:234,9'
          Dst:             settings_get
        - Src:             'ssl-settings.c:237,4'
          Dst:             pool_unref
        - Src:             'ssl-settings.c:239,2'
          Dst:             event_unref
    - functionName:    ssl_server_settings_check
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          138
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:186,6'
          Dst:             strcmp
        - Src:             'ssl-settings.c:191,6'
          Dst:             strcmp
        - Src:             'ssl-settings.c:194,13'
          Dst:             strcmp
        - Src:             'ssl-settings.c:197,13'
          Dst:             strcmp
    - functionName:    ssl_settings_check
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          144
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - i_warning
        - settings_get_config_binary
        - str_array_icase_find
        - strcasecmp
        - strstr
        - t_str_ucase
        - t_strdup_printf
        - t_strsplit_spaces
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:131,6'
          Dst:             settings_get_config_binary
        - Src:             'ssl-settings.c:132,23'
          Dst:             t_str_ucase
        - Src:             'ssl-settings.c:137,7'
          Dst:             strstr
        - Src:             'ssl-settings.c:138,4'
          Dst:             i_warning
        - Src:             'ssl-settings.c:148,22'
          Dst:             t_strsplit_spaces
        - Src:             'ssl-settings.c:151,7'
          Dst:             strcasecmp
        - Src:             'ssl-settings.c:153,14'
          Dst:             strcasecmp
        - Src:             'ssl-settings.c:156,15'
          Dst:             t_strdup_printf
        - Src:             'ssl-settings.c:168,6'
          Dst:             str_array_icase_find
        - Src:             'ssl-settings.c:170,14'
          Dst:             t_strdup_printf
    - functionName:    ssl_client_settings_get
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/ssl-settings.c'
      linkageType:     externalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - event_unref
        - settings_event_add_filter_name
        - settings_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ssl-settings.c:216,10'
          Dst:             event_create
        - Src:             'ssl-settings.c:217,2'
          Dst:             settings_event_add_filter_name
        - Src:             'ssl-settings.c:218,12'
          Dst:             settings_get
        - Src:             'ssl-settings.c:220,2'
          Dst:             event_unref
    - 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:    2
      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:    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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-test/../../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:    test_buffer_free
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 20
      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:             'test-istream.c:19,2'
          Dst:             p_free_internal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-test/../../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:    test_istream_set_input_pending
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - test_istream_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:177,33'
          Dst:             test_istream_find
    - functionName:    test_istream_find
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_get_name
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:143,2'
          Dst:             i_panic
        - Src:             'test-istream.c:149,35'
          Dst:             i_stream_get_name
        - Src:             'test-istream.c:149,2'
          Dst:             i_panic
    - functionName:    test_read
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          429
      EdgeCount:       70
      CyclomaticComplexity: 18
      functionsReached:
        - i_malloc
        - i_memcpy
        - i_panic
        - i_rand_limit
        - i_stream_set_input_pending
        - memarea_get_refcount
        - memarea_init
        - memarea_unref
        - test_buffer_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:27,3'
          Dst:             i_stream_set_input_pending
        - Src:             'test-istream.c:32,2'
          Dst:             i_panic
        - Src:             'test-istream.c:35,3'
          Dst:             i_panic
        - Src:             'test-istream.c:45,19'
          Dst:             i_rand_limit
        - Src:             'test-istream.c:67,9'
          Dst:             memarea_get_refcount
        - Src:             'test-istream.c:69,23'
          Dst:             i_malloc
        - Src:             'test-istream.c:71,5'
          Dst:             i_memcpy
        - Src:             'test-istream.c:78,5'
          Dst:             memarea_unref
        - Src:             'test-istream.c:79,22'
          Dst:             memarea_init
        - Src:             'test-istream.c:79,22'
          Dst:             test_buffer_free
        - Src:             'test-istream.c:86,4'
          Dst:             i_memcpy
    - functionName:    test_istream_set_size
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - test_istream_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:168,33'
          Dst:             test_istream_find
    - functionName:    test_istream_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - test_istream_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:161,33'
          Dst:             test_istream_find
    - functionName:    test_istream_set_allow_eof
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - test_istream_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:154,33'
          Dst:             test_istream_find
    - functionName:    test_istream_create
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - test_istream_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:136,40'
          Dst:             strlen
        - Src:             'test-istream.c:136,9'
          Dst:             test_istream_create_data
    - functionName:    test_istream_create_data
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 131
      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
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'test-istream.c:118,12'
          Dst:             malloc_multiply_check
        - Src:             'test-istream.c:118,12'
          Dst:             p_malloc
        - Src:             'test-istream.c:126,2'
          Dst:             i_stream_create
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-test/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-test/../../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:    test_seek
      functionSourceFile: '/src/dovecot/src/lib-test/test-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          34
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    12
      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:    11
      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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:150,10'
          Dst:             array_count_i
        - Src:             'array.c:151,9'
          Dst:             bsearch
    - 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:    49
      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:    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:    3
      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:    3
      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:    2
      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:    3
      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:    42
      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:    41
      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:    84
      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:    5
      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:    4
      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:    4
      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:    12
      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:    13
      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:    3
      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:    2
      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:    2
      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:    1
      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:    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:    26
      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_bsearch_insert_pos_i
      functionSourceFile: '/src/dovecot/src/lib/bsearch-insert-pos.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - bsearch_insert_pos
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'bsearch-insert-pos.c:46,7'
          Dst:             array_count_i
        - Src:             'bsearch-insert-pos.c:45,9'
          Dst:             bsearch_insert_pos
    - functionName:    bsearch_insert_pos
      functionSourceFile: '/src/dovecot/src/lib/bsearch-insert-pos.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'bsearch-insert-pos.c:16,2'
          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:    217
      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:    111
      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:    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:    4
      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:    1
      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:    1
      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:    104
      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:    23
      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:    25
      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:    18
      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:    1
      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:    3
      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:    18
      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:    28
      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:    74
      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:    11
      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:    7
      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:    169
      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:    128
      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:    326
      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:    2
      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:    142
      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:    200
      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:    96
      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:    9
      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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    connection_create_stream_name
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          148
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - str_append
        - str_append_c
        - str_c
        - str_len
        - str_printfa
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:386,9'
          Dst:             t_str_new
        - Src:             'connection.c:387,2'
          Dst:             str_append
        - Src:             'connection.c:390,3'
          Dst:             str_append
        - Src:             'connection.c:392,3'
          Dst:             str_append_c
        - Src:             'connection.c:393,3'
          Dst:             str_append
        - Src:             'connection.c:395,3'
          Dst:             str_append_c
        - Src:             'connection.c:396,3'
          Dst:             str_append
        - Src:             'connection.c:398,3'
          Dst:             str_printfa
        - Src:             'connection.c:401,7'
          Dst:             str_len
        - Src:             'connection.c:402,4'
          Dst:             str_append_c
        - Src:             'connection.c:404,4'
          Dst:             str_append_c
        - Src:             'connection.c:405,3'
          Dst:             str_printfa
        - Src:             'connection.c:407,2'
          Dst:             str_append_c
        - Src:             'connection.c:409,9'
          Dst:             str_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:    12
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - 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_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:72,32'
          Dst:             strlen
        - Src:             './str.h:72,2'
          Dst:             buffer_insert
    - functionName:    connection_flush_callback
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          139
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - connection_input_resume
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - o_stream_flush
        - o_stream_get_buffer_used_size
        - o_stream_get_error
        - o_stream_set_flush_callback
        - o_stream_unset_flush_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:56,9'
          Dst:             o_stream_flush
        - Src:             'connection.c:59,3'
          Dst:             o_stream_get_error
        - Src:             'connection.c:59,3'
          Dst:             e_error
        - Src:             'connection.c:61,13'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'connection.c:64,3'
          Dst:             event_want_level
        - Src:             'connection.c:64,3'
          Dst:             e_debug
        - Src:             'connection.c:64,3'
          Dst:             event_send_abort
        - Src:             'connection.c:66,3'
          Dst:             connection_input_resume
        - Src:             'connection.c:67,3'
          Dst:             o_stream_unset_flush_callback
        - Src:             'connection.c:69,4'
          Dst:             o_stream_set_flush_callback
    - functionName:    connection_input_resume
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_input_resume_full
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:302,2'
          Dst:             connection_input_resume_full
    - functionName:    connection_input_resume_full
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          222
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - io_add_istream_to
        - io_add_to
        - io_set_pending
        - timeout_add_to
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:278,2'
          Dst:             i_panic
        - Src:             'connection.c:283,14'
          Dst:             io_add_istream_to
        - Src:             'connection.c:286,4'
          Dst:             io_set_pending
        - Src:             'connection.c:288,14'
          Dst:             io_add_to
        - Src:             'connection.c:291,4'
          Dst:             io_set_pending
        - Src:             'connection.c:294,14'
          Dst:             timeout_add_to
    - functionName:    connection_output_throttle
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - connection_flush_callback
        - connection_input_halt
        - e_debug
        - event_send_abort
        - event_want_level
        - o_stream_get_buffer_used_size
        - o_stream_get_flush_callback
        - o_stream_set_flush_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:82,6'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'connection.c:85,4'
          Dst:             o_stream_get_flush_callback
        - Src:             'connection.c:86,3'
          Dst:             o_stream_set_flush_callback
        - Src:             'connection.c:86,3'
          Dst:             connection_flush_callback
        - Src:             'connection.c:88,3'
          Dst:             event_want_level
        - Src:             'connection.c:88,3'
          Dst:             e_debug
        - Src:             'connection.c:88,3'
          Dst:             event_send_abort
        - Src:             'connection.c:90,3'
          Dst:             connection_input_halt
    - functionName:    connection_input_halt
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_remove
        - timeout_remove
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:271,2'
          Dst:             io_remove
        - Src:             'connection.c:272,2'
          Dst:             timeout_remove
    - functionName:    connection_is_valid_dns_name
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          182
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1139,6'
          Dst:             strstr
    - functionName:    connection_list_deinit
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1132
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - connection_closed
        - i_panic
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1128,3'
          Dst:             connection_closed
        - Src:             'connection.c:1129,3'
          Dst:             i_panic
        - Src:             'connection.c:1131,2'
          Dst:             p_free_internal
    - functionName:    connection_closed
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      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:    7
      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:    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:    connection_list_init
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1103,2'
          Dst:             i_panic
        - Src:             'connection.c:1105,2'
          Dst:             i_panic
        - Src:             'connection.c:1110,9'
          Dst:             malloc_multiply_check
        - Src:             'connection.c:1110,9'
          Dst:             p_malloc
    - functionName:    connection_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1095
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_switch_ioloop_to
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1094,2'
          Dst:             connection_switch_ioloop_to
    - functionName:    connection_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1090
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_switch_ioloop_to
        - io_loop_move_io_to
        - io_loop_move_timeout_to
        - o_stream_switch_ioloop_to
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1083,14'
          Dst:             io_loop_move_io_to
        - Src:             'connection.c:1085,14'
          Dst:             io_loop_move_timeout_to
        - Src:             'connection.c:1087,3'
          Dst:             i_stream_switch_ioloop_to
        - Src:             'connection.c:1089,3'
          Dst:             o_stream_switch_ioloop_to
    - functionName:    connection_set_default_handlers
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_set_handlers
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1075,2'
          Dst:             connection_set_handlers
    - functionName:    connection_set_handlers
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          146
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - connection_input_halt
        - connection_input_resume_full
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1056,2'
          Dst:             connection_input_halt
        - Src:             'connection.c:1057,2'
          Dst:             i_panic
        - Src:             'connection.c:1070,3'
          Dst:             connection_input_resume_full
    - functionName:    connection_input_default
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          101
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - connection_closed
        - connection_handshake_received
        - connection_input_parse_lines
        - connection_input_read
        - connection_set_handshake_ready
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'connection.c:172,2'
          Branch Sides:    []
      Callsites:
        - Src:             'connection.c:159,7'
          Dst:             connection_handshake_received
        - Src:             'connection.c:162,4'
          Dst:             connection_closed
        - Src:             'connection.c:168,4'
          Dst:             connection_set_handshake_ready
        - Src:             'connection.c:172,10'
          Dst:             connection_input_read
        - Src:             'connection.c:179,3'
          Dst:             i_unreached
        - Src:             'connection.c:182,9'
          Dst:             connection_input_parse_lines
    - functionName:    connection_input_line_default
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          173
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - connection_handshake_received
        - connection_set_handshake_ready
        - e_error
        - i_panic
        - t_strsplit_tabescaped
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:239,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'connection.c:241,3'
          Dst:             e_error
        - Src:             'connection.c:245,7'
          Dst:             connection_handshake_received
        - Src:             'connection.c:252,4'
          Dst:             connection_set_handshake_ready
        - Src:             'connection.c:258,14'
          Dst:             connection_handshake_received
        - Src:             'connection.c:260,3'
          Dst:             connection_set_handshake_ready
        - Src:             'connection.c:264,2'
          Dst:             i_panic
    - functionName:    connection_handshake_args_default
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - connection_verify_version
        - e_error
        - str_array_length
        - str_to_uint
        - strcmp
        - t_strarray_join
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:220,6'
          Dst:             str_array_length
        - Src:             'connection.c:221,6'
          Dst:             strcmp
        - Src:             'connection.c:222,6'
          Dst:             str_to_uint
        - Src:             'connection.c:223,6'
          Dst:             str_to_uint
        - Src:             'connection.c:224,3'
          Dst:             t_strarray_join
        - Src:             'connection.c:224,3'
          Dst:             e_error
        - Src:             'connection.c:229,6'
          Dst:             connection_verify_version
    - functionName:    connection_idle_timeout
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_closed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:41,2'
          Dst:             connection_closed
    - functionName:    connection_connect_timeout
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_closed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:46,2'
          Dst:             connection_closed
    - functionName:    connection_verify_version
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - i_panic
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:190,2'
          Dst:             i_panic
        - Src:             'connection.c:192,6'
          Dst:             strcmp
        - Src:             'connection.c:193,3'
          Dst:             e_error
        - Src:             'connection.c:200,3'
          Dst:             e_error
    - functionName:    connection_handshake_received
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    connection_set_handshake_ready
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:21,2'
          Dst:             i_panic
    - functionName:    connection_input_read
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_input_read_stream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:999,9'
          Dst:             connection_input_read_stream
    - functionName:    connection_input_parse_lines
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          270
      EdgeCount:       70
      CyclomaticComplexity: 18
      functionsReached:
        - connection_closed
        - connection_handshake_received
        - connection_output_throttle
        - connection_set_handshake_ready
        - i_panic
        - i_stream_next_line
        - i_stream_ref
        - i_stream_unref
        - o_stream_cork
        - o_stream_ref
        - o_stream_uncork
        - o_stream_unref
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:105,2'
          Dst:             i_stream_ref
        - Src:             'connection.c:107,3'
          Dst:             o_stream_ref
        - Src:             'connection.c:108,3'
          Dst:             o_stream_cork
        - Src:             'connection.c:110,35'
          Dst:             i_stream_next_line
        - Src:             'connection.c:111,3'
          Dst:             t_push
        - Src:             'connection.c:112,9'
          Dst:             connection_handshake_received
        - Src:             'connection.c:116,6'
          Dst:             connection_set_handshake_ready
        - Src:             'connection.c:126,5'
          Dst:             t_pop
        - Src:             'connection.c:126,5'
          Dst:             i_panic
        - Src:             'connection.c:128,18'
          Dst:             connection_output_throttle
        - Src:             'connection.c:139,3'
          Dst:             o_stream_uncork
        - Src:             'connection.c:140,3'
          Dst:             o_stream_unref
        - Src:             'connection.c:147,3'
          Dst:             connection_closed
        - Src:             'connection.c:151,2'
          Dst:             i_stream_unref
    - functionName:    connection_input_read_stream
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 995
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       33
      CyclomaticComplexity: 18
      functionsReached:
        - connection_closed
        - i_stream_get_error
        - i_stream_read
        - i_stream_set_error
        - i_unreached
        - timeout_reset
      functionUses:    1
      BranchProfiles:
        - Branch String:   'connection.c:968,2'
          Branch Sides:    []
        - Branch String:   'connection.c:971,3'
          Branch Sides:    []
      Callsites:
        - Src:             'connection.c:966,3'
          Dst:             timeout_reset
        - Src:             'connection.c:968,10'
          Dst:             i_stream_read
        - Src:             'connection.c:973,4'
          Dst:             connection_closed
        - Src:             'connection.c:979,3'
          Dst:             i_unreached
        - Src:             'connection.c:984,15'
          Dst:             i_stream_get_error
        - Src:             'connection.c:983,4'
          Dst:             i_stream_set_error
        - Src:             'connection.c:986,3'
          Dst:             connection_closed
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    connection_input_timeout_reason
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1032
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:1034,20'
          Dst:             timeval_diff_msecs
        - Src:             'connection.c:1036,10'
          Dst:             t_strdup_printf
        - Src:             'connection.c:1039,20'
          Dst:             timeval_diff_msecs
        - Src:             'connection.c:1041,10'
          Dst:             t_strdup_printf
        - Src:             'connection.c:1045,20'
          Dst:             timeval_diff_msecs
        - Src:             'connection.c:1047,10'
          Dst:             t_strdup_printf
    - functionName:    connection_deinit
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - connection_disconnect
        - event_unref
        - i_panic
        - i_stream_destroy
        - o_stream_destroy
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:945,2'
          Dst:             i_panic
        - Src:             'connection.c:950,2'
          Dst:             connection_disconnect
        - Src:             'connection.c:951,2'
          Dst:             i_stream_destroy
        - Src:             'connection.c:952,2'
          Dst:             o_stream_destroy
        - Src:             'connection.c:953,2'
          Dst:             p_free_internal
        - Src:             'connection.c:954,2'
          Dst:             p_free_internal
        - Src:             'connection.c:955,2'
          Dst:             p_free_internal
        - Src:             'connection.c:956,2'
          Dst:             event_unref
    - functionName:    connection_disconnect
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          139
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - connection_disconnect_reason
        - connection_update_counters
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - fd_close_maybe_stdio
        - i_stream_close
        - io_remove
        - o_stream_close
        - shutdown
        - timeout_remove
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:918,2'
          Dst:             connection_update_counters
        - Src:             'connection.c:925,32'
          Dst:             event_create_passthrough
        - Src:             'connection.c:927,21'
          Dst:             connection_disconnect_reason
        - Src:             'connection.c:928,2'
          Dst:             event_want_level
        - Src:             'connection.c:928,2'
          Dst:             connection_disconnect_reason
        - Src:             'connection.c:928,2'
          Dst:             e_debug
        - Src:             'connection.c:928,2'
          Dst:             event_send_abort
        - Src:             'connection.c:933,2'
          Dst:             timeout_remove
        - Src:             'connection.c:934,2'
          Dst:             io_remove
        - Src:             'connection.c:935,2'
          Dst:             i_stream_close
        - Src:             'connection.c:936,2'
          Dst:             o_stream_close
        - Src:             'connection.c:938,9'
          Dst:             shutdown
        - Src:             'connection.c:939,2'
          Dst:             fd_close_maybe_stdio
    - functionName:    connection_update_counters
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:909,3'
          Dst:             event_add_int
        - Src:             'connection.c:911,3'
          Dst:             event_add_int
    - functionName:    connection_disconnect_reason
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_unreached
        - io_stream_get_disconnect_reason
        - t_strdup_printf
      functionUses:    5
      BranchProfiles:
        - Branch String:   'connection.c:1004,2'
          Branch Sides:    []
      Callsites:
        - Src:             'connection.c:1010,10'
          Dst:             t_strdup_printf
        - Src:             'connection.c:1018,4'
          Dst:             i_panic
        - Src:             'connection.c:1019,11'
          Dst:             i_stream_get_error
        - Src:             'connection.c:1024,10'
          Dst:             io_stream_get_disconnect_reason
        - Src:             'connection.c:1028,2'
          Dst:             i_unreached
    - functionName:    connection_client_connect_failed
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - connection_closed
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:887,2'
          Dst:             timeout_remove
        - Src:             'connection.c:888,2'
          Dst:             __errno_location
        - Src:             'connection.c:890,2'
          Dst:             connection_closed
    - functionName:    connection_client_connect_async
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 904
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - connection_client_connect
        - connection_client_connect_failed
        - i_panic
        - timeout_add_short
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:895,2'
          Dst:             i_panic
        - Src:             'connection.c:897,6'
          Dst:             connection_client_connect
        - Src:             'connection.c:898,3'
          Dst:             i_panic
        - Src:             'connection.c:899,32'
          Dst:             __errno_location
        - Src:             'connection.c:900,14'
          Dst:             timeout_add_short
        - Src:             'connection.c:900,14'
          Dst:             connection_client_connect_failed
    - functionName:    connection_client_connect
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 880
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_client_connect_with_retries
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:881,9'
          Dst:             connection_client_connect_with_retries
    - functionName:    connection_client_connect_with_retries
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          309
      EdgeCount:       59
      CyclomaticComplexity: 13
      functionsReached:
        - connection_client_connected
        - connection_set_connect_error_streams
        - connection_socket_connected
        - connection_update_properties
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - io_add_to
        - net_connect_ip
        - net_connect_unix
        - net_connect_unix_with_retries
        - timeout_add_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:838,2'
          Dst:             i_panic
        - Src:             'connection.c:839,2'
          Dst:             i_panic
        - Src:             'connection.c:841,2'
          Dst:             event_want_level
        - Src:             'connection.c:841,2'
          Dst:             e_debug
        - Src:             'connection.c:841,2'
          Dst:             event_send_abort
        - Src:             'connection.c:844,8'
          Dst:             net_connect_ip
        - Src:             'connection.c:848,8'
          Dst:             net_connect_unix
        - Src:             'connection.c:850,8'
          Dst:             net_connect_unix_with_retries
        - Src:             'connection.c:853,3'
          Dst:             connection_set_connect_error_streams
        - Src:             'connection.c:862,3'
          Dst:             connection_update_properties
        - Src:             'connection.c:863,14'
          Dst:             io_add_to
        - Src:             'connection.c:863,14'
          Dst:             connection_socket_connected
        - Src:             'connection.c:865,3'
          Dst:             event_want_level
        - Src:             'connection.c:865,3'
          Dst:             e_debug
        - Src:             'connection.c:865,3'
          Dst:             event_send_abort
        - Src:             'connection.c:869,15'
          Dst:             timeout_add_to
        - Src:             'connection.c:874,3'
          Dst:             connection_client_connected
    - functionName:    connection_set_connect_error_streams
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - i_stream_create_error_str
        - i_stream_destroy
        - o_stream_create_error_str
        - o_stream_destroy
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:811,21'
          Dst:             __errno_location
        - Src:             'connection.c:812,22'
          Dst:             t_strdup_printf
        - Src:             'connection.c:814,2'
          Dst:             i_stream_destroy
        - Src:             'connection.c:815,2'
          Dst:             o_stream_destroy
        - Src:             'connection.c:816,16'
          Dst:             i_stream_create_error_str
        - Src:             'connection.c:817,17'
          Dst:             o_stream_create_error_str
        - Src:             'connection.c:818,2'
          Dst:             __errno_location
    - functionName:    connection_update_properties
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          204
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - connection_update_event
        - connection_update_label
        - connection_update_property_label
        - connection_update_stream_names
        - i_panic
        - net_getpeername
        - net_getunixcred
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:481,7'
          Dst:             net_getpeername
        - Src:             'connection.c:484,4'
          Dst:             __errno_location
        - Src:             'connection.c:489,4'
          Dst:             i_panic
        - Src:             'connection.c:490,14'
          Dst:             __errno_location
        - Src:             'connection.c:493,14'
          Dst:             net_getunixcred
        - Src:             'connection.c:502,2'
          Dst:             connection_update_property_label
        - Src:             'connection.c:503,2'
          Dst:             connection_update_label
        - Src:             'connection.c:504,2'
          Dst:             connection_update_stream_names
        - Src:             'connection.c:505,2'
          Dst:             connection_update_event
    - functionName:    connection_socket_connected
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - connection_client_connected
        - connection_set_connect_error_streams
        - io_remove
        - net_geterror
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:823,2'
          Dst:             io_remove
        - Src:             'connection.c:824,2'
          Dst:             timeout_remove
        - Src:             'connection.c:826,10'
          Dst:             net_geterror
        - Src:             'connection.c:826,2'
          Dst:             __errno_location
        - Src:             'connection.c:827,6'
          Dst:             __errno_location
        - Src:             'connection.c:828,3'
          Dst:             connection_set_connect_error_streams
        - Src:             'connection.c:829,36'
          Dst:             __errno_location
        - Src:             'connection.c:829,2'
          Dst:             connection_client_connected
    - functionName:    connection_client_connected
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          180
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - connection_closed
        - connection_init_streams
        - connection_update_properties
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:577,2'
          Dst:             i_panic
        - Src:             'connection.c:579,2'
          Dst:             connection_update_properties
        - Src:             'connection.c:584,32'
          Dst:             event_create_passthrough
        - Src:             'connection.c:587,3'
          Dst:             event_want_level
        - Src:             'connection.c:587,3'
          Dst:             e_debug
        - Src:             'connection.c:587,3'
          Dst:             event_send_abort
        - Src:             'connection.c:590,3'
          Dst:             event_want_level
        - Src:             'connection.c:590,3'
          Dst:             e_debug
        - Src:             'connection.c:590,3'
          Dst:             event_send_abort
        - Src:             'connection.c:595,3'
          Dst:             connection_init_streams
        - Src:             'connection.c:599,3'
          Dst:             connection_closed
    - functionName:    connection_init_streams
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          382
      EdgeCount:       68
      CyclomaticComplexity: 12
      functionsReached:
        - connection_input_resume_full
        - connection_update_stream_names
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_create_fd
        - i_stream_create_unix
        - i_stream_destroy
        - i_stream_switch_ioloop_to
        - o_stream_create_fd
        - o_stream_create_unix
        - o_stream_destroy
        - o_stream_nsend_str
        - o_stream_set_finish_via_child
        - o_stream_set_no_error_handling
        - o_stream_switch_ioloop_to
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:517,3'
          Dst:             i_panic
        - Src:             'connection.c:518,3'
          Dst:             i_stream_destroy
        - Src:             'connection.c:521,3'
          Dst:             i_panic
        - Src:             'connection.c:522,3'
          Dst:             o_stream_destroy
        - Src:             'connection.c:525,2'
          Dst:             i_panic
        - Src:             'connection.c:526,2'
          Dst:             i_panic
        - Src:             'connection.c:533,18'
          Dst:             i_stream_create_unix
        - Src:             'connection.c:536,18'
          Dst:             i_stream_create_fd
        - Src:             'connection.c:538,3'
          Dst:             i_stream_switch_ioloop_to
        - Src:             'connection.c:542,19'
          Dst:             o_stream_create_unix
        - Src:             'connection.c:545,19'
          Dst:             o_stream_create_fd
        - Src:             'connection.c:547,3'
          Dst:             o_stream_set_no_error_handling
        - Src:             'connection.c:548,3'
          Dst:             o_stream_set_finish_via_child
        - Src:             'connection.c:549,3'
          Dst:             o_stream_switch_ioloop_to
        - Src:             'connection.c:551,2'
          Dst:             connection_update_stream_names
        - Src:             'connection.c:554,2'
          Dst:             i_panic
        - Src:             'connection.c:555,2'
          Dst:             connection_input_resume_full
        - Src:             'connection.c:556,2'
          Dst:             i_panic
        - Src:             'connection.c:558,3'
          Dst:             event_want_level
        - Src:             'connection.c:558,3'
          Dst:             e_debug
        - Src:             'connection.c:558,3'
          Dst:             event_send_abort
        - Src:             'connection.c:559,36'
          Dst:             t_strdup_printf
        - Src:             'connection.c:559,3'
          Dst:             o_stream_nsend_str
    - functionName:    connection_update_stream_names
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - connection_create_stream_name
        - i_stream_set_name
        - o_stream_set_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:417,4'
          Dst:             connection_create_stream_name
        - Src:             'connection.c:415,3'
          Dst:             i_stream_set_name
        - Src:             'connection.c:422,4'
          Dst:             connection_create_stream_name
        - Src:             'connection.c:420,3'
          Dst:             o_stream_set_name
    - functionName:    connection_update_property_label
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          196
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_strdup
        - net_ip2addr
        - p_free_internal
        - strcmp
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:313,12'
          Dst:             t_strdup_printf
        - Src:             'connection.c:317,12'
          Dst:             t_strdup_printf
        - Src:             'connection.c:322,6'
          Dst:             net_ip2addr
        - Src:             'connection.c:321,11'
          Dst:             t_strdup_printf
        - Src:             'connection.c:326,6'
          Dst:             net_ip2addr
        - Src:             'connection.c:325,11'
          Dst:             t_strdup_printf
        - Src:             'connection.c:330,2'
          Dst:             i_panic
        - Src:             'connection.c:332,6'
          Dst:             strcmp
        - Src:             'connection.c:333,3'
          Dst:             event_want_level
        - Src:             'connection.c:333,3'
          Dst:             e_debug
        - Src:             'connection.c:333,3'
          Dst:             event_send_abort
        - Src:             'connection.c:336,2'
          Dst:             p_free_internal
        - Src:             'connection.c:337,25'
          Dst:             i_strdup
    - functionName:    connection_update_label
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          299
      EdgeCount:       71
      CyclomaticComplexity: 19
      functionsReached:
        - i_strdup
        - p_free_internal
        - str_append
        - str_append_c
        - str_c
        - str_insert
        - str_len
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:346,10'
          Dst:             t_str_new
        - Src:             'connection.c:348,3'
          Dst:             str_append
        - Src:             'connection.c:350,7'
          Dst:             str_len
        - Src:             'connection.c:351,4'
          Dst:             str_append
        - Src:             'connection.c:353,4'
          Dst:             str_append
        - Src:             'connection.c:354,4'
          Dst:             str_append
        - Src:             'connection.c:355,4'
          Dst:             str_append
        - Src:             'connection.c:358,6'
          Dst:             str_len
        - Src:             'connection.c:361,4'
          Dst:             str_printfa
        - Src:             'connection.c:363,4'
          Dst:             str_printfa
        - Src:             'connection.c:365,4'
          Dst:             str_printfa
        - Src:             'connection.c:369,21'
          Dst:             str_len
        - Src:             'connection.c:370,3'
          Dst:             str_insert
        - Src:             'connection.c:372,7'
          Dst:             str_len
        - Src:             'connection.c:373,4'
          Dst:             str_append_c
        - Src:             'connection.c:374,3'
          Dst:             str_printfa
        - Src:             'connection.c:377,2'
          Dst:             p_free_internal
        - Src:             'connection.c:378,25'
          Dst:             str_c
        - Src:             'connection.c:378,16'
          Dst:             i_strdup
    - functionName:    connection_update_event
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          242
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - event_add_int
        - event_add_str
        - event_set_append_log_prefix
        - net_ip2addr
        - str_append
        - str_append_c
        - str_c
        - strlen
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:430,11'
          Dst:             t_str_new
        - Src:             'connection.c:431,2'
          Dst:             str_append
        - Src:             'connection.c:432,6'
          Dst:             strlen
        - Src:             'connection.c:433,3'
          Dst:             str_append_c
        - Src:             'connection.c:434,3'
          Dst:             str_append
        - Src:             'connection.c:436,2'
          Dst:             str_append
        - Src:             'connection.c:437,43'
          Dst:             str_c
        - Src:             'connection.c:437,2'
          Dst:             event_set_append_log_prefix
        - Src:             'connection.c:442,10'
          Dst:             net_ip2addr
        - Src:             'connection.c:440,3'
          Dst:             event_add_str
        - Src:             'connection.c:445,3'
          Dst:             event_add_int
        - Src:             'connection.c:453,10'
          Dst:             net_ip2addr
        - Src:             'connection.c:451,3'
          Dst:             event_add_str
        - Src:             'connection.c:456,3'
          Dst:             event_add_int
        - Src:             'connection.c:462,3'
          Dst:             event_add_int
        - Src:             'connection.c:464,3'
          Dst:             event_add_int
        - Src:             'connection.c:466,3'
          Dst:             event_add_int
    - functionName:    connection_init_from_streams
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          161
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - connection_init_full
        - connection_input_resume_full
        - connection_update_stream_names
        - i_panic
        - i_stream_destroy
        - i_stream_get_fd
        - i_stream_ref
        - o_stream_destroy
        - o_stream_get_fd
        - o_stream_ref
        - o_stream_set_no_error_handling
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:784,9'
          Dst:             i_stream_get_fd
        - Src:             'connection.c:784,33'
          Dst:             o_stream_get_fd
        - Src:             'connection.c:783,2'
          Dst:             connection_init_full
        - Src:             'connection.c:786,2'
          Dst:             i_panic
        - Src:             'connection.c:787,2'
          Dst:             i_panic
        - Src:             'connection.c:788,2'
          Dst:             i_panic
        - Src:             'connection.c:789,2'
          Dst:             i_panic
        - Src:             'connection.c:791,2'
          Dst:             i_stream_destroy
        - Src:             'connection.c:793,2'
          Dst:             i_stream_ref
        - Src:             'connection.c:795,2'
          Dst:             o_stream_destroy
        - Src:             'connection.c:797,2'
          Dst:             o_stream_ref
        - Src:             'connection.c:798,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'connection.c:800,2'
          Dst:             connection_update_stream_names
        - Src:             'connection.c:803,2'
          Dst:             connection_input_resume_full
    - functionName:    connection_init_full
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          333
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - connection_set_default_handlers
        - connection_update_properties
        - event_create
        - event_set_forced_debug
        - i_panic
        - i_strdup
        - i_stream_create_error_str
        - o_stream_create_error_str
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:626,2'
          Dst:             p_free_internal
        - Src:             'connection.c:627,20'
          Dst:             i_strdup
        - Src:             'connection.c:636,17'
          Dst:             event_create
        - Src:             'connection.c:638,3'
          Dst:             event_set_forced_debug
        - Src:             'connection.c:644,17'
          Dst:             i_stream_create_error_str
        - Src:             'connection.c:648,18'
          Dst:             o_stream_create_error_str
        - Src:             'connection.c:653,3'
          Dst:             i_panic
        - Src:             'connection.c:660,2'
          Dst:             connection_update_properties
        - Src:             'connection.c:661,2'
          Dst:             connection_set_default_handlers
    - functionName:    connection_init_client_unix
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - connection_init
        - event_add_str
        - i_panic
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:768,2'
          Dst:             i_panic
        - Src:             'connection.c:772,2'
          Dst:             connection_init
        - Src:             'connection.c:773,2'
          Dst:             event_add_str
    - functionName:    connection_init
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_init_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:667,2'
          Dst:             connection_init_full
    - functionName:    connection_init_client_ip
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_init_client_ip_from
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:762,2'
          Dst:             connection_init_client_ip_from
    - functionName:    connection_init_client_ip_from
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - connection_init
        - connection_update_event
        - event_add_str
        - i_panic
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:737,10'
          Dst:             t_strdup_printf
        - Src:             'connection.c:739,2'
          Dst:             i_panic
        - Src:             'connection.c:749,2'
          Dst:             connection_init
        - Src:             'connection.c:751,3'
          Dst:             event_add_str
        - Src:             'connection.c:752,2'
          Dst:             connection_update_event
    - functionName:    connection_init_client_fd
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - connection_client_connected
        - connection_init_full
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:712,2'
          Dst:             i_panic
        - Src:             'connection.c:714,2'
          Dst:             connection_init_full
        - Src:             'connection.c:716,32'
          Dst:             event_create_passthrough
        - Src:             'connection.c:721,2'
          Dst:             event_want_level
        - Src:             'connection.c:721,2'
          Dst:             e_debug
        - Src:             'connection.c:721,2'
          Dst:             event_send_abort
        - Src:             'connection.c:725,2'
          Dst:             connection_client_connected
    - functionName:    connection_init_server_ip
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - connection_init_server
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:705,2'
          Dst:             connection_init_server
    - functionName:    connection_init_server
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          111
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - connection_init_full
        - connection_init_streams
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:674,2'
          Dst:             i_panic
        - Src:             'connection.c:676,2'
          Dst:             connection_init_full
        - Src:             'connection.c:678,32'
          Dst:             event_create_passthrough
        - Src:             'connection.c:683,2'
          Dst:             event_want_level
        - Src:             'connection.c:683,2'
          Dst:             e_debug
        - Src:             'connection.c:683,2'
          Dst:             event_send_abort
        - Src:             'connection.c:685,2'
          Dst:             connection_init_streams
    - functionName:    connection_streams_changed
      functionSourceFile: '/src/dovecot/src/lib/connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - connection_input_halt
        - connection_input_resume
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'connection.c:570,3'
          Dst:             connection_input_halt
        - Src:             'connection.c:571,3'
          Dst:             connection_input_resume
    - 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:    cpu_limit_update_recursive
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - cpu_limit_get_usage_msecs_with
        - cpu_limit_update_recursive
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:77,6'
          Dst:             cpu_limit_update_recursive
        - Src:             'cpu-limit.c:83,3'
          Dst:             cpu_limit_get_usage_msecs_with
    - functionName:    cpu_limit_get_usage_msecs_with
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - timeval_add
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:42,3'
          Dst:             timeval_add
        - Src:             'cpu-limit.c:44,3'
          Dst:             timeval_add
        - Src:             'cpu-limit.c:48,3'
          Dst:             timeval_add
        - Src:             'cpu-limit.c:50,3'
          Dst:             timeval_add
        - Src:             'cpu-limit.c:51,15'
          Dst:             timeval_diff_msecs
        - Src:             'cpu-limit.c:52,2'
          Dst:             i_panic
        - Src:             'cpu-limit.c:53,2'
          Dst:             i_panic
    - functionName:    timeval_add
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:90,2'
          Dst:             i_panic
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    cpu_limit_exceeded
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - cpu_limit_update_rlimit
        - i_gettimeofday
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:183,3'
          Dst:             i_gettimeofday
        - Src:             'cpu-limit.c:185,7'
          Dst:             timeval_diff_msecs
        - Src:             'cpu-limit.c:198,3'
          Dst:             cpu_limit_update_rlimit
    - functionName:    cpu_limit_update_rlimit
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - cpu_limit_update_recursive
        - getrusage
        - i_fatal
        - setrlimit
        - timeval_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:100,6'
          Dst:             getrusage
        - Src:             'cpu-limit.c:101,3'
          Dst:             i_fatal
        - Src:             'cpu-limit.c:103,8'
          Dst:             cpu_limit_update_recursive
        - Src:             'cpu-limit.c:110,3'
          Dst:             timeval_add
        - Src:             'cpu-limit.c:120,7'
          Dst:             setrlimit
        - Src:             'cpu-limit.c:121,4'
          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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    cpu_limit_deinit
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - cpu_limit_handler
        - cpu_limit_update_rlimit
        - i_panic
        - lib_signals_unset_handler
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:168,2'
          Dst:             i_panic
        - Src:             'cpu-limit.c:171,2'
          Dst:             cpu_limit_update_rlimit
        - Src:             'cpu-limit.c:173,3'
          Dst:             lib_signals_unset_handler
        - Src:             'cpu-limit.c:173,3'
          Dst:             cpu_limit_handler
        - Src:             'cpu-limit.c:174,2'
          Dst:             p_free_internal
    - functionName:    cpu_limit_handler
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    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:    cpu_limit_init
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          120
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - cpu_limit_handler
        - cpu_limit_update_rlimit
        - getrlimit
        - getrusage
        - i_fatal
        - i_panic
        - lib_signals_set_handler
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:131,2'
          Dst:             i_panic
        - Src:             'cpu-limit.c:132,2'
          Dst:             i_panic
        - Src:             'cpu-limit.c:134,11'
          Dst:             malloc_multiply_check
        - Src:             'cpu-limit.c:134,11'
          Dst:             p_malloc
        - Src:             'cpu-limit.c:141,7'
          Dst:             getrlimit
        - Src:             'cpu-limit.c:142,4'
          Dst:             i_fatal
        - Src:             'cpu-limit.c:146,6'
          Dst:             getrusage
        - Src:             'cpu-limit.c:147,3'
          Dst:             i_fatal
        - Src:             'cpu-limit.c:151,3'
          Dst:             lib_signals_set_handler
        - Src:             'cpu-limit.c:151,3'
          Dst:             cpu_limit_handler
        - Src:             'cpu-limit.c:156,2'
          Dst:             cpu_limit_update_rlimit
    - functionName:    getrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_limit_get_usage_msecs
      functionSourceFile: '/src/dovecot/src/lib/cpu-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_limit_get_usage_msecs_with
        - getrusage
        - i_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-limit.c:64,6'
          Dst:             getrusage
        - Src:             'cpu-limit.c:65,3'
          Dst:             i_fatal
        - Src:             'cpu-limit.c:67,9'
          Dst:             cpu_limit_get_usage_msecs_with
    - functionName:    crc32_data_more
      functionSourceFile: '/src/dovecot/src/lib/crc32.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - crc32_z
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'crc32.c:19,10'
          Dst:             crc32_z
        - Src:             'crc32.c:24,19'
          Dst:             crc32_z
    - functionName:    crc32_z
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crc32_data
      functionSourceFile: '/src/dovecot/src/lib/crc32.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 9
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crc32_data_more
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'crc32.c:9,9'
          Dst:             crc32_data_more
    - 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:    459
      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:    479
      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:    16
      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:    54
      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:    13
      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:    23
      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:    is_in_group
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getegid
        - restrict_get_groups_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'eacces-error.c:19,6'
          Dst:             getegid
        - Src:             'eacces-error.c:22,9'
          Dst:             restrict_get_groups_list
    - functionName:    test_manual_access
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          184
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - dec2str
        - geteuid
        - getgrgid
        - i_unreached
        - is_in_group
        - stat
        - str_printfa
        - write_eacces_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   'eacces-error.c:64,2'
          Branch Sides:    []
      Callsites:
        - Src:             'eacces-error.c:59,6'
          Dst:             stat
        - Src:             'eacces-error.c:60,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:75,3'
          Dst:             i_unreached
        - Src:             'eacces-error.c:78,19'
          Dst:             geteuid
        - Src:             'eacces-error.c:80,11'
          Dst:             is_in_group
        - Src:             'eacces-error.c:92,3'
          Dst:             write_eacces_error
        - Src:             'eacces-error.c:97,8'
          Dst:             dec2str
        - Src:             'eacces-error.c:96,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:98,11'
          Dst:             getgrgid
        - Src:             'eacces-error.c:100,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:102,2'
          Dst:             __errno_location
    - functionName:    write_eacces_error
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached:
        - i_unreached
        - str_printfa
      functionUses:    3
      BranchProfiles:
        - Branch String:   'eacces-error.c:34,2'
          Branch Sides:    []
      Callsites:
        - Src:             'eacces-error.c:45,3'
          Dst:             i_unreached
        - Src:             'eacces-error.c:47,2'
          Dst:             str_printfa
    - functionName:    getgrgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    test_access
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          155
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - access
        - geteuid
        - getuid
        - i_unreached
        - stat
        - str_append
        - str_printfa
        - t_strconcat
        - test_manual_access
        - write_eacces_error
      functionUses:    4
      BranchProfiles:
        - Branch String:   'eacces-error.c:130,2'
          Branch Sides:    []
      Callsites:
        - Src:             'eacces-error.c:110,6'
          Dst:             getuid
        - Src:             'eacces-error.c:110,18'
          Dst:             geteuid
        - Src:             'eacces-error.c:111,7'
          Dst:             access
        - Src:             'eacces-error.c:113,7'
          Dst:             __errno_location
        - Src:             'eacces-error.c:114,4'
          Dst:             write_eacces_error
        - Src:             'eacces-error.c:115,8'
          Dst:             test_manual_access
        - Src:             'eacces-error.c:117,5'
          Dst:             str_append
        - Src:             'eacces-error.c:120,4'
          Dst:             __errno_location
        - Src:             'eacces-error.c:122,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:132,12'
          Dst:             t_strconcat
        - Src:             'eacces-error.c:132,7'
          Dst:             stat
        - Src:             'eacces-error.c:134,7'
          Dst:             __errno_location
        - Src:             'eacces-error.c:134,26'
          Dst:             __errno_location
        - Src:             'eacces-error.c:136,7'
          Dst:             __errno_location
        - Src:             'eacces-error.c:137,4'
          Dst:             write_eacces_error
        - Src:             'eacces-error.c:139,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:145,3'
          Dst:             i_unreached
        - Src:             'eacces-error.c:148,9'
          Dst:             test_manual_access
    - 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:    9
      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:    eperm_error_get_chgrp
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - dec2str
        - getegid
        - getgrgid
        - str_append
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'eacces-error.c:299,19'
          Dst:             __errno_location
        - Src:             'eacces-error.c:301,11'
          Dst:             t_str_new
        - Src:             'eacces-error.c:303,53'
          Dst:             dec2str
        - Src:             'eacces-error.c:303,2'
          Dst:             str_printfa
        - Src:             'eacces-error.c:304,10'
          Dst:             getgrgid
        - Src:             'eacces-error.c:306,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:309,15'
          Dst:             getegid
        - Src:             'eacces-error.c:309,7'
          Dst:             dec2str
        - Src:             'eacces-error.c:308,2'
          Dst:             str_printfa
        - Src:             'eacces-error.c:310,19'
          Dst:             getegid
        - Src:             'eacces-error.c:310,10'
          Dst:             getgrgid
        - Src:             'eacces-error.c:312,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:314,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:315,2'
          Dst:             str_append
        - Src:             'eacces-error.c:317,2'
          Dst:             __errno_location
        - Src:             'eacces-error.c:318,9'
          Dst:             str_c
    - functionName:    eacces_error_get_creating
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eacces_error_get_full
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'eacces-error.c:291,9'
          Dst:             eacces_error_get_full
    - functionName:    eacces_error_get_full
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          546
      EdgeCount:       138
      CyclomaticComplexity: 34
      functionsReached:
        - __errno_location
        - dec2str
        - getegid
        - geteuid
        - i_error
        - i_getgrgid
        - i_getpwuid
        - stat
        - str_append
        - str_append_c
        - str_c
        - str_printfa
        - strcmp
        - strrchr
        - t_get_working_dir
        - t_str_new
        - t_strconcat
        - t_strdup
        - t_strdup_until
        - test_access
      functionUses:    2
      BranchProfiles:
        - Branch String:   'eacces-error.c:178,2'
          Branch Sides:    []
        - Branch String:   'eacces-error.c:192,2'
          Branch Sides:    []
      Callsites:
        - Src:             'eacces-error.c:162,15'
          Dst:             __errno_location
        - Src:             'eacces-error.c:163,11'
          Dst:             t_str_new
        - Src:             'eacces-error.c:164,2'
          Dst:             str_printfa
        - Src:             'eacces-error.c:167,7'
          Dst:             t_get_working_dir
        - Src:             'eacces-error.c:168,4'
          Dst:             i_error
        - Src:             'eacces-error.c:169,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:171,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:172,11'
          Dst:             t_strconcat
        - Src:             'eacces-error.c:176,15'
          Dst:             geteuid
        - Src:             'eacces-error.c:176,7'
          Dst:             dec2str
        - Src:             'eacces-error.c:175,2'
          Dst:             str_printfa
        - Src:             'eacces-error.c:178,21'
          Dst:             geteuid
        - Src:             'eacces-error.c:178,10'
          Dst:             i_getpwuid
        - Src:             'eacces-error.c:180,3'
          Dst:             str_append
        - Src:             'eacces-error.c:183,3'
          Dst:             str_append
        - Src:             'eacces-error.c:186,13'
          Dst:             t_strdup
        - Src:             'eacces-error.c:187,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:191,42'
          Dst:             getegid
        - Src:             'eacces-error.c:191,34'
          Dst:             dec2str
        - Src:             'eacces-error.c:191,2'
          Dst:             str_printfa
        - Src:             'eacces-error.c:192,21'
          Dst:             getegid
        - Src:             'eacces-error.c:192,10'
          Dst:             i_getgrgid
        - Src:             'eacces-error.c:194,3'
          Dst:             str_append
        - Src:             'eacces-error.c:197,3'
          Dst:             str_append
        - Src:             'eacces-error.c:200,13'
          Dst:             t_strdup
        - Src:             'eacces-error.c:201,3'
          Dst:             str_printfa
        - Src:             'eacces-error.c:206,3'
          Dst:             str_append
        - Src:             'eacces-error.c:207,3'
          Dst:             str_append_c
        - Src:             'eacces-error.c:208,3'
          Dst:             __errno_location
        - Src:             'eacces-error.c:209,10'
          Dst:             str_c
        - Src:             'eacces-error.c:213,9'
          Dst:             strcmp
        - Src:             'eacces-error.c:214,12'
          Dst:             strrchr
        - Src:             'eacces-error.c:217,9'
          Dst:             t_strdup_until
        - Src:             'eacces-error.c:218,9'
          Dst:             stat
        - Src:             'eacces-error.c:221,7'
          Dst:             __errno_location
        - Src:             'eacces-error.c:221,26'
          Dst:             strcmp
        - Src:             'eacces-error.c:223,14'
          Dst:             __errno_location
        - Src:             'eacces-error.c:224,7'
          Dst:             strcmp
        - Src:             'eacces-error.c:229,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:237,7'
          Dst:             test_access
        - Src:             'eacces-error.c:238,8'
          Dst:             __errno_location
        - Src:             'eacces-error.c:240,26'
          Dst:             test_access
        - Src:             'eacces-error.c:241,8'
          Dst:             __errno_location
        - Src:             'eacces-error.c:244,7'
          Dst:             test_access
        - Src:             'eacces-error.c:245,27'
          Dst:             test_access
        - Src:             'eacces-error.c:249,8'
          Dst:             __errno_location
        - Src:             'eacces-error.c:252,4'
          Dst:             str_append
        - Src:             'eacces-error.c:258,24'
          Dst:             geteuid
        - Src:             'eacces-error.c:259,26'
          Dst:             i_getpwuid
        - Src:             'eacces-error.c:260,7'
          Dst:             strcmp
        - Src:             'eacces-error.c:262,9'
          Dst:             dec2str
        - Src:             'eacces-error.c:261,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:265,9'
          Dst:             dec2str
        - Src:             'eacces-error.c:265,29'
          Dst:             dec2str
        - Src:             'eacces-error.c:264,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:270,3'
          Dst:             str_append
        - Src:             'eacces-error.c:272,50'
          Dst:             getegid
        - Src:             'eacces-error.c:273,7'
          Dst:             i_getgrgid
        - Src:             'eacces-error.c:274,7'
          Dst:             strcmp
        - Src:             'eacces-error.c:276,9'
          Dst:             dec2str
        - Src:             'eacces-error.c:275,4'
          Dst:             str_printfa
        - Src:             'eacces-error.c:279,2'
          Dst:             str_append_c
        - Src:             'eacces-error.c:280,2'
          Dst:             __errno_location
        - Src:             'eacces-error.c:281,9'
          Dst:             str_c
    - functionName:    eacces_error_get
      functionSourceFile: '/src/dovecot/src/lib/eacces-error.c'
      linkageType:     externalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eacces_error_get_full
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'eacces-error.c:286,9'
          Dst:             eacces_error_get_full
    - 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:    3
      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:    15
      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:    1
      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:    15
      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:    1
      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:    4
      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:    7
      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:    2
      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:    1
      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:    1
      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:    3
      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:    4
      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:    16
      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:    3
      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:    3
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:63,34'
          Dst:             pool_alloconly_create
        - Src:             'event-filter.c:63,9'
          Dst:             event_filter_create_real
    - 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:    1
      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:    2
      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:    2
      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:    1
      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:    8
      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:    6
      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:    1
      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:    7
      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:    1
      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:    354
      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:    7
      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:    361
      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:    60
      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:    409
      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:    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:    argv_drop_const
      functionSourceFile: '/src/dovecot/src/lib/execv-const.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
        - t_strdup_noconst
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'execv-const.c:15,8'
          Dst:             malloc_multiply_check
        - Src:             'execv-const.c:15,8'
          Dst:             t_malloc0
        - Src:             'execv-const.c:17,12'
          Dst:             t_strdup_noconst
    - functionName:    execv_const
      functionSourceFile: '/src/dovecot/src/lib/execv-const.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - argv_drop_const
        - execv
        - i_fatal_status
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'execv-const.c:23,20'
          Dst:             argv_drop_const
        - Src:             'execv-const.c:23,8'
          Dst:             execv
        - Src:             'execv-const.c:24,17'
          Dst:             __errno_location
        - Src:             'execv-const.c:24,2'
          Dst:             i_fatal_status
    - functionName:    execv
      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:    execvp_const
      functionSourceFile: '/src/dovecot/src/lib/execv-const.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - argv_drop_const
        - execvp
        - i_fatal_status
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'execv-const.c:30,21'
          Dst:             argv_drop_const
        - Src:             'execv-const.c:30,8'
          Dst:             execvp
        - Src:             'execv-const.c:31,17'
          Dst:             __errno_location
        - Src:             'execv-const.c:31,2'
          Dst:             i_fatal_status
    - functionName:    execvp
      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:    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:    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:    290
      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:    4727
      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:    2
      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:    147
      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:    11
      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:    15
      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:    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:    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:    1
      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:    2
      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:    1
      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:    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:    1
      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:    6
      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:    1
      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:    2
      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:    4
      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:    6
      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:    5
      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:    37
      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:    2
      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:    13
      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:    3
      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:    1
      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:    149
      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:    93
      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:    1
      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:    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:    7
      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:    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:    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:    8
      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:    fdatasync_path
      functionSourceFile: '/src/dovecot/src/lib/fdatasync-path.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fdatasync
        - i_close_fd_path
        - open
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fdatasync-path.c:15,7'
          Dst:             open
        - Src:             'fdatasync-path.c:18,6'
          Dst:             fdatasync
        - Src:             'fdatasync-path.c:21,7'
          Dst:             __errno_location
        - Src:             'fdatasync-path.c:23,14'
          Dst:             __errno_location
        - Src:             'fdatasync-path.c:29,2'
          Dst:             i_close_fd_path
    - functionName:    fd_read
      functionSourceFile: '/src/dovecot/src/lib/fdpass.c'
      linkageType:     externalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          158
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - i_panic
        - recvmsg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fdpass.c:162,2'
          Dst:             i_panic
        - Src:             'fdpass.c:176,8'
          Dst:             recvmsg
        - Src:             'fdpass.c:191,3'
          Dst:             i_memcpy
    - functionName:    recvmsg
      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:    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:    fd_send
      functionSourceFile: '/src/dovecot/src/lib/fdpass.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          117
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - sendmsg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fdpass.c:112,2'
          Dst:             i_panic
        - Src:             'fdpass.c:132,3'
          Dst:             i_memcpy
        - Src:             'fdpass.c:140,9'
          Dst:             sendmsg
    - functionName:    sendmsg
      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:    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:    file_cache_write
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          231
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_space_unsafe
        - file_cache_invalidate
        - file_cache_set_size
        - i_memcpy
        - i_panic
        - mmap_get_page_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:239,21'
          Dst:             mmap_get_page_size
        - Src:             'file-cache.c:243,2'
          Dst:             i_panic
        - Src:             'file-cache.c:244,2'
          Dst:             i_panic
        - Src:             'file-cache.c:245,2'
          Dst:             i_panic
        - Src:             'file-cache.c:247,6'
          Dst:             file_cache_set_size
        - Src:             'file-cache.c:250,3'
          Dst:             file_cache_invalidate
        - Src:             'file-cache.c:254,2'
          Dst:             i_memcpy
        - Src:             'file-cache.c:259,10'
          Dst:             buffer_get_space_unsafe
        - Src:             'file-cache.c:272,10'
          Dst:             buffer_get_space_unsafe
    - functionName:    file_cache_set_size
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          177
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - i_error
        - i_panic
        - mmap_anon
        - mmap_get_page_size
        - mremap_anon
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:59,21'
          Dst:             mmap_get_page_size
        - Src:             'file-cache.c:63,2'
          Dst:             i_panic
        - Src:             'file-cache.c:69,2'
          Dst:             i_panic
        - Src:             'file-cache.c:74,3'
          Dst:             i_error
        - Src:             'file-cache.c:81,22'
          Dst:             mmap_anon
        - Src:             'file-cache.c:83,4'
          Dst:             i_error
        - Src:             'file-cache.c:90,14'
          Dst:             mremap_anon
        - Src:             'file-cache.c:93,4'
          Dst:             i_error
    - functionName:    file_cache_invalidate
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          287
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - buffer_get_space_unsafe
        - i_panic
        - mmap_get_page_size
        - posix_madvise
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:283,21'
          Dst:             mmap_get_page_size
        - Src:             'file-cache.c:290,2'
          Dst:             i_panic
        - Src:             'file-cache.c:304,2'
          Dst:             i_panic
        - Src:             'file-cache.c:312,9'
          Dst:             posix_madvise
        - Src:             'file-cache.c:316,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    file_cache_get_map
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_cache_read
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          529
      EdgeCount:       92
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - buffer_get_space_unsafe
        - file_cache_set_size
        - fstat
        - i_error
        - i_panic
        - mmap_get_page_size
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:106,21'
          Dst:             mmap_get_page_size
        - Src:             'file-cache.c:111,2'
          Dst:             i_panic
        - Src:             'file-cache.c:129,21'
          Dst:             fstat
        - Src:             'file-cache.c:130,29'
          Dst:             __errno_location
        - Src:             'file-cache.c:131,33'
          Dst:             i_error
        - Src:             'file-cache.c:142,6'
          Dst:             file_cache_set_size
        - Src:             'file-cache.c:147,2'
          Dst:             i_panic
        - Src:             'file-cache.c:149,9'
          Dst:             buffer_get_space_unsafe
        - Src:             'file-cache.c:171,5'
          Dst:             i_panic
        - Src:             'file-cache.c:182,9'
          Dst:             pread
        - Src:             'file-cache.c:191,5'
          Dst:             i_panic
    - functionName:    file_cache_set_fd
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_cache_invalidate
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:54,2'
          Dst:             file_cache_invalidate
    - 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:    file_cache_free
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
        - i_error
        - munmap_anon
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:43,7'
          Dst:             munmap_anon
        - Src:             'file-cache.c:44,4'
          Dst:             i_error
        - Src:             'file-cache.c:46,2'
          Dst:             buffer_free
        - Src:             'file-cache.c:47,2'
          Dst:             p_free_internal
        - Src:             'file-cache.c:48,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:    file_cache_new_path
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:29,10'
          Dst:             malloc_multiply_check
        - Src:             'file-cache.c:29,10'
          Dst:             p_malloc
        - Src:             'file-cache.c:31,16'
          Dst:             i_strdup
        - Src:             'file-cache.c:32,24'
          Dst:             buffer_create_dynamic
    - functionName:    file_cache_new
      functionSourceFile: '/src/dovecot/src/lib/file-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_cache_new_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'file-cache.c:22,9'
          Dst:             file_cache_new_path
    - functionName:    file_copy_to_tmp
      functionSourceFile: '/src/dovecot/src/lib/file-copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          298
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - close
        - fchown
        - fstat
        - i_close_fd_path
        - i_error
        - i_stream_create_fd
        - i_stream_destroy
        - i_stream_get_error
        - i_unlink_if_exists
        - i_unreached
        - link
        - o_stream_create_fd_file
        - o_stream_destroy
        - o_stream_get_error
        - o_stream_send_istream
        - open
        - umask
      functionUses:    1
      BranchProfiles:
        - Branch String:   'file-copy.c:73,2'
          Branch Sides:    []
      Callsites:
        - Src:             'file-copy.c:25,7'
          Dst:             link
        - Src:             'file-copy.c:27,7'
          Dst:             __errno_location
        - Src:             'file-copy.c:28,8'
          Dst:             i_unlink_if_exists
        - Src:             'file-copy.c:30,8'
          Dst:             link
        - Src:             'file-copy.c:33,7'
          Dst:             __errno_location
        - Src:             'file-copy.c:35,8'
          Dst:             __errno_location
        - Src:             'file-copy.c:35,8'
          Dst:             __errno_location
        - Src:             'file-copy.c:35,8'
          Dst:             __errno_location
        - Src:             'file-copy.c:36,4'
          Dst:             i_error
        - Src:             'file-copy.c:43,10'
          Dst:             open
        - Src:             'file-copy.c:45,7'
          Dst:             __errno_location
        - Src:             'file-copy.c:47,3'
          Dst:             i_error
        - Src:             'file-copy.c:51,6'
          Dst:             fstat
        - Src:             'file-copy.c:52,3'
          Dst:             i_error
        - Src:             'file-copy.c:53,3'
          Dst:             i_close_fd_path
        - Src:             'file-copy.c:57,14'
          Dst:             umask
        - Src:             'file-copy.c:58,11'
          Dst:             open
        - Src:             'file-copy.c:59,2'
          Dst:             umask
        - Src:             'file-copy.c:61,3'
          Dst:             i_error
        - Src:             'file-copy.c:62,3'
          Dst:             i_close_fd_path
        - Src:             'file-copy.c:67,6'
          Dst:             fchown
        - Src:             'file-copy.c:67,50'
          Dst:             __errno_location
        - Src:             'file-copy.c:68,3'
          Dst:             i_error
        - Src:             'file-copy.c:70,10'
          Dst:             i_stream_create_fd
        - Src:             'file-copy.c:71,11'
          Dst:             o_stream_create_fd_file
        - Src:             'file-copy.c:73,10'
          Dst:             o_stream_send_istream
        - Src:             'file-copy.c:79,3'
          Dst:             i_unreached
        - Src:             'file-copy.c:82,4'
          Dst:             i_stream_get_error
        - Src:             'file-copy.c:81,3'
          Dst:             i_error
        - Src:             'file-copy.c:86,4'
          Dst:             o_stream_get_error
        - Src:             'file-copy.c:85,3'
          Dst:             i_error
        - Src:             'file-copy.c:90,2'
          Dst:             i_stream_destroy
        - Src:             'file-copy.c:91,2'
          Dst:             o_stream_destroy
        - Src:             'file-copy.c:93,6'
          Dst:             close
        - Src:             'file-copy.c:94,3'
          Dst:             i_error
        - Src:             'file-copy.c:97,6'
          Dst:             close
        - Src:             'file-copy.c:98,3'
          Dst:             i_error
    - functionName:    file_copy
      functionSourceFile: '/src/dovecot/src/lib/file-copy.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - file_copy_to_tmp
        - i_error
        - i_panic
        - i_unlink
        - rename
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-copy.c:108,2'
          Dst:             t_push
        - Src:             'file-copy.c:111,13'
          Dst:             t_strconcat
        - Src:             'file-copy.c:113,9'
          Dst:             file_copy_to_tmp
        - Src:             'file-copy.c:115,8'
          Dst:             rename
        - Src:             'file-copy.c:116,5'
          Dst:             i_error
        - Src:             'file-copy.c:122,4'
          Dst:             i_unlink
        - Src:             'file-copy.c:123,4'
          Dst:             t_pop
        - Src:             'file-copy.c:123,4'
          Dst:             i_panic
    - functionName:    try_mkdir
      functionSourceFile: '/src/dovecot/src/lib/file-create-locked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - mkdir_parents_chgrp
        - mkdir_parents_chown
        - strrchr
        - t_strdup_printf
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-create-locked.c:67,18'
          Dst:             strrchr
        - Src:             'file-create-locked.c:71,20'
          Dst:             t_strdup_until
        - Src:             'file-create-locked.c:74,9'
          Dst:             mkdir_parents_chown
        - Src:             'file-create-locked.c:76,9'
          Dst:             mkdir_parents_chgrp
        - Src:             'file-create-locked.c:79,17'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:80,14'
          Dst:             t_strdup_printf
    - 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:    try_create_new
      functionSourceFile: '/src/dovecot/src/lib/file-create-locked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          345
      EdgeCount:       65
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - eacces_error_get
        - file_lock_free
        - file_lock_set_close_on_free
        - file_lock_set_path
        - file_lock_set_unlink_on_free
        - file_try_lock
        - i_close_fd_path
        - i_unlink_if_exists
        - link
        - safe_mkstemp
        - safe_mkstemp_group
        - str_append
        - str_c
        - t_str_new
        - t_strdup_printf
        - try_mkdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-create-locked.c:90,24'
          Dst:             t_str_new
        - Src:             'file-create-locked.c:96,2'
          Dst:             str_append
        - Src:             'file-create-locked.c:99,9'
          Dst:             safe_mkstemp
        - Src:             'file-create-locked.c:101,9'
          Dst:             safe_mkstemp_group
        - Src:             'file-create-locked.c:102,19'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:106,20'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:107,14'
          Dst:             try_mkdir
        - Src:             'file-create-locked.c:109,3'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:112,7'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:113,15'
          Dst:             eacces_error_get
        - Src:             'file-create-locked.c:115,15'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:126,24'
          Dst:             str_c
        - Src:             'file-create-locked.c:126,6'
          Dst:             file_try_lock
        - Src:             'file-create-locked.c:128,18'
          Dst:             str_c
        - Src:             'file-create-locked.c:128,13'
          Dst:             link
        - Src:             'file-create-locked.c:129,7'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:132,14'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:137,5'
          Dst:             str_c
        - Src:             'file-create-locked.c:135,15'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:140,10'
          Dst:             str_c
        - Src:             'file-create-locked.c:139,15'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:142,3'
          Dst:             file_lock_free
        - Src:             'file-create-locked.c:144,3'
          Dst:             file_lock_set_path
        - Src:             'file-create-locked.c:145,3'
          Dst:             file_lock_set_unlink_on_free
        - Src:             'file-create-locked.c:147,3'
          Dst:             file_lock_set_close_on_free
        - Src:             'file-create-locked.c:149,3'
          Dst:             str_c
        - Src:             'file-create-locked.c:149,3'
          Dst:             i_unlink_if_exists
        - Src:             'file-create-locked.c:153,15'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:154,2'
          Dst:             i_close_fd_path
        - Src:             'file-create-locked.c:155,2'
          Dst:             str_c
        - Src:             'file-create-locked.c:155,2'
          Dst:             i_unlink_if_exists
        - Src:             'file-create-locked.c:156,2'
          Dst:             __errno_location
    - functionName:    try_lock_existing
      functionSourceFile: '/src/dovecot/src/lib/file-create-locked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          174
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - file_lock_free
        - file_lock_set_close_on_free
        - file_lock_set_unlink_on_free
        - file_wait_lock
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - stat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-create-locked.c:33,6'
          Dst:             fstat
        - Src:             'file-create-locked.c:34,14'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:37,6'
          Dst:             file_wait_lock
        - Src:             'file-create-locked.c:40,6'
          Dst:             stat
        - Src:             'file-create-locked.c:42,4'
          Dst:             gnu_dev_major
        - Src:             'file-create-locked.c:42,4'
          Dst:             gnu_dev_major
        - Src:             'file-create-locked.c:42,4'
          Dst:             gnu_dev_minor
        - Src:             'file-create-locked.c:42,4'
          Dst:             gnu_dev_minor
        - Src:             'file-create-locked.c:43,13'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:46,14'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:51,3'
          Dst:             file_lock_free
        - Src:             'file-create-locked.c:53,3'
          Dst:             file_lock_set_unlink_on_free
        - Src:             'file-create-locked.c:55,3'
          Dst:             file_lock_set_close_on_free
    - functionName:    file_create_locked
      functionSourceFile: '/src/dovecot/src/lib/file-create-locked.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          152
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - eacces_error_get
        - i_close_fd_path
        - open
        - t_strdup_printf
        - try_create_new
        - try_lock_existing
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-create-locked.c:168,8'
          Dst:             open
        - Src:             'file-create-locked.c:170,10'
          Dst:             try_lock_existing
        - Src:             'file-create-locked.c:176,4'
          Dst:             i_close_fd_path
        - Src:             'file-create-locked.c:179,14'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:180,15'
          Dst:             eacces_error_get
        - Src:             'file-create-locked.c:182,14'
          Dst:             __errno_location
        - Src:             'file-create-locked.c:183,15'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:187,10'
          Dst:             try_create_new
        - Src:             'file-create-locked.c:199,13'
          Dst:             t_strdup_printf
        - Src:             'file-create-locked.c:200,2'
          Dst:             __errno_location
    - 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
      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:    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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    file_write_pid
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fdatasync
        - ftruncate
        - i_error
        - strlen
        - t_strdup_printf
        - write_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:307,8'
          Dst:             t_strdup_printf
        - Src:             'file-dotlock.c:308,26'
          Dst:             strlen
        - Src:             'file-dotlock.c:308,6'
          Dst:             write_full
        - Src:             'file-dotlock.c:309,20'
          Dst:             fdatasync
        - Src:             'file-dotlock.c:311,7'
          Dst:             ftruncate
        - Src:             'file-dotlock.c:312,4'
          Dst:             i_error
    - functionName:    update_change_info
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          239
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - gnu_dev_major
        - gnu_dev_minor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:140,36'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:140,36'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:140,36'
          Dst:             gnu_dev_minor
        - Src:             'file-dotlock.c:140,36'
          Dst:             gnu_dev_minor
    - functionName:    dotlock_override
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_rand
        - i_sleep_usecs
        - i_unlink_if_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:195,6'
          Dst:             i_unlink_if_exists
        - Src:             'file-dotlock.c:202,17'
          Dst:             i_rand
        - Src:             'file-dotlock.c:202,3'
          Dst:             i_sleep_usecs
    - functionName:    read_local_pid
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - i_close_fd_path
        - open
        - read
        - str_to_pid
        - strchr
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:102,7'
          Dst:             open
        - Src:             'file-dotlock.c:107,8'
          Dst:             read
        - Src:             'file-dotlock.c:108,2'
          Dst:             i_close_fd_path
        - Src:             'file-dotlock.c:118,9'
          Dst:             strchr
        - Src:             'file-dotlock.c:124,6'
          Dst:             strcmp
        - Src:             'file-dotlock.c:127,6'
          Dst:             str_to_pid
    - functionName:    update_lock_info
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          111
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_error
        - nfs_flush_attr_cache_unlocked
        - nfs_flush_file_handle_cache
        - nfs_safe_lstat
        - update_change_info
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:174,3'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'file-dotlock.c:175,3'
          Dst:             nfs_flush_attr_cache_unlocked
        - Src:             'file-dotlock.c:179,6'
          Dst:             nfs_safe_lstat
        - Src:             'file-dotlock.c:180,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:181,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:187,15'
          Dst:             update_change_info
    - functionName:    dotlock_wait_end
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_stop
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:427,2'
          Dst:             io_loop_stop
    - functionName:    try_create_lock_hardlink
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          313
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - file_write_pid
        - fstat
        - i_close_fd_path
        - i_error
        - i_panic
        - i_unlink
        - nfs_safe_link
        - safe_mkstemp
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - str_printfa
        - str_truncate
        - strrchr
        - umask
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:329,3'
          Dst:             i_panic
        - Src:             'file-dotlock.c:331,7'
          Dst:             strrchr
        - Src:             'file-dotlock.c:333,3'
          Dst:             str_truncate
        - Src:             'file-dotlock.c:337,5'
          Dst:             str_append_data
        - Src:             'file-dotlock.c:339,5'
          Dst:             str_append_c
        - Src:             'file-dotlock.c:341,4'
          Dst:             str_append
        - Src:             'file-dotlock.c:345,5'
          Dst:             str_append_data
        - Src:             'file-dotlock.c:347,5'
          Dst:             str_append_c
        - Src:             'file-dotlock.c:349,4'
          Dst:             str_printfa
        - Src:             'file-dotlock.c:353,14'
          Dst:             umask
        - Src:             'file-dotlock.c:354,19'
          Dst:             safe_mkstemp
        - Src:             'file-dotlock.c:356,3'
          Dst:             umask
        - Src:             'file-dotlock.c:362,9'
          Dst:             str_c
        - Src:             'file-dotlock.c:361,8'
          Dst:             file_write_pid
        - Src:             'file-dotlock.c:364,5'
          Dst:             i_close_fd_path
        - Src:             'file-dotlock.c:369,26'
          Dst:             str_c
        - Src:             'file-dotlock.c:370,13'
          Dst:             fstat
        - Src:             'file-dotlock.c:371,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:376,7'
          Dst:             utime
        - Src:             'file-dotlock.c:377,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:380,6'
          Dst:             nfs_safe_link
        - Src:             'file-dotlock.c:382,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:385,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:386,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:392,6'
          Dst:             i_unlink
    - functionName:    try_create_lock_excl
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - file_write_pid
        - i_close_fd_path
        - i_error
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:403,7'
          Dst:             open
        - Src:             'file-dotlock.c:405,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:408,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:408,26'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:409,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:414,7'
          Dst:             file_write_pid
        - Src:             'file-dotlock.c:416,4'
          Dst:             i_close_fd_path
    - functionName:    check_lock
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          334
      EdgeCount:       68
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - dotlock_override
        - getpid
        - i_error
        - kill
        - nfs_flush_attr_cache_maybe_locked
        - nfs_flush_file_handle_cache
        - nfs_safe_stat
        - read_local_pid
        - update_change_info
        - update_lock_info
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:213,13'
          Dst:             update_lock_info
        - Src:             'file-dotlock.c:222,10'
          Dst:             read_local_pid
        - Src:             'file-dotlock.c:237,9'
          Dst:             read_local_pid
        - Src:             'file-dotlock.c:243,7'
          Dst:             kill
        - Src:             'file-dotlock.c:243,28'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:244,15'
          Dst:             getpid
        - Src:             'file-dotlock.c:255,14'
          Dst:             update_lock_info
        - Src:             'file-dotlock.c:260,11'
          Dst:             dotlock_override
        - Src:             'file-dotlock.c:276,4'
          Dst:             nfs_flush_file_handle_cache
        - Src:             'file-dotlock.c:277,4'
          Dst:             nfs_flush_attr_cache_maybe_locked
        - Src:             'file-dotlock.c:279,7'
          Dst:             nfs_safe_stat
        - Src:             'file-dotlock.c:280,8'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:284,5'
          Dst:             i_error
        - Src:             'file-dotlock.c:288,10'
          Dst:             update_change_info
        - Src:             'file-dotlock.c:296,10'
          Dst:             dotlock_override
    - functionName:    kill
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dotlock_wait
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          128
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - dotlock_wait_end
        - i_rand
        - i_sleep_usecs
        - io_add_notify
        - io_loop_create
        - io_loop_destroy
        - io_loop_run
        - io_remove
        - timeout_add
        - timeout_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'file-dotlock.c:442,2'
          Branch Sides:    []
      Callsites:
        - Src:             'file-dotlock.c:437,3'
          Dst:             i_sleep_usecs
        - Src:             'file-dotlock.c:441,11'
          Dst:             io_loop_create
        - Src:             'file-dotlock.c:442,10'
          Dst:             io_add_notify
        - Src:             'file-dotlock.c:442,10'
          Dst:             dotlock_wait_end
        - Src:             'file-dotlock.c:448,3'
          Dst:             io_loop_destroy
        - Src:             'file-dotlock.c:452,3'
          Dst:             io_loop_destroy
        - Src:             'file-dotlock.c:454,17'
          Dst:             i_rand
        - Src:             'file-dotlock.c:454,3'
          Dst:             i_sleep_usecs
        - Src:             'file-dotlock.c:459,7'
          Dst:             timeout_add
        - Src:             'file-dotlock.c:459,7'
          Dst:             dotlock_wait_end
        - Src:             'file-dotlock.c:461,2'
          Dst:             io_loop_run
        - Src:             'file-dotlock.c:462,2'
          Dst:             io_remove
        - Src:             'file-dotlock.c:463,2'
          Dst:             timeout_remove
        - Src:             'file-dotlock.c:464,2'
          Dst:             io_loop_destroy
    - 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:    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:    file_dotlock_touch
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_get_lock_path
        - i_error
        - i_panic
        - t_pop
        - t_push
        - time
        - utime
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:879,15'
          Dst:             time
        - Src:             'file-dotlock.c:889,2'
          Dst:             t_push
        - Src:             'file-dotlock.c:890,27'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:891,7'
          Dst:             utime
        - Src:             'file-dotlock.c:892,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:895,4'
          Dst:             t_pop
        - Src:             'file-dotlock.c:895,4'
          Dst:             i_panic
    - functionName:    file_dotlock_get_lock_path
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strconcat
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:921,4'
          Dst:             i_strconcat
    - functionName:    file_dotlock_is_locked
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 915
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - file_dotlock_get_lock_path
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - i_error
        - nfs_safe_lstat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:904,14'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:905,6'
          Dst:             fstat
        - Src:             'file-dotlock.c:906,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:910,6'
          Dst:             nfs_safe_lstat
        - Src:             'file-dotlock.c:911,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:914,36'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:914,36'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:914,36'
          Dst:             gnu_dev_minor
        - Src:             'file-dotlock.c:914,36'
          Dst:             gnu_dev_minor
    - functionName:    file_dotlock_replace
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dotlock_replaced_warning
        - file_dotlock_free
        - file_dotlock_get_lock_path
        - file_dotlock_is_locked
        - i_error
        - rename
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:853,3'
          Dst:             file_dotlock_is_locked
        - Src:             'file-dotlock.c:859,3'
          Dst:             dotlock_replaced_warning
        - Src:             'file-dotlock.c:860,3'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:861,3'
          Dst:             file_dotlock_free
        - Src:             'file-dotlock.c:865,14'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:866,6'
          Dst:             rename
        - Src:             'file-dotlock.c:867,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:868,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:869,4'
          Dst:             dotlock_replaced_warning
        - Src:             'file-dotlock.c:870,3'
          Dst:             file_dotlock_free
        - Src:             'file-dotlock.c:873,2'
          Dst:             file_dotlock_free
    - functionName:    dotlock_replaced_warning
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - file_dotlock_get_lock_path
        - i_warning
        - time
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:691,15'
          Dst:             time
        - Src:             'file-dotlock.c:693,14'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:695,3'
          Dst:             i_warning
        - Src:             'file-dotlock.c:701,3'
          Dst:             i_warning
    - functionName:    file_dotlock_free
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - close
        - i_error
        - p_free_internal
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:616,15'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:617,7'
          Dst:             close
        - Src:             'file-dotlock.c:618,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:620,3'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:623,2'
          Dst:             p_free_internal
        - Src:             'file-dotlock.c:624,2'
          Dst:             p_free_internal
        - Src:             'file-dotlock.c:625,2'
          Dst:             p_free_internal
    - functionName:    file_dotlock_open_group
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_dotlock_open_mode_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:838,9'
          Dst:             file_dotlock_open_mode_full
    - functionName:    file_dotlock_open_mode_full
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - file_dotlock_delete
        - file_dotlock_get_lock_path
        - file_dotlock_open
        - i_error
        - umask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:801,13'
          Dst:             umask
        - Src:             'file-dotlock.c:802,7'
          Dst:             file_dotlock_open
        - Src:             'file-dotlock.c:803,2'
          Dst:             umask
        - Src:             'file-dotlock.c:806,7'
          Dst:             fchown
        - Src:             'file-dotlock.c:807,8'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:809,6'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:808,19'
          Dst:             eperm_error_get_chgrp
        - Src:             'file-dotlock.c:808,5'
          Dst:             i_error
        - Src:             'file-dotlock.c:813,6'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:812,5'
          Dst:             i_error
        - Src:             'file-dotlock.c:816,4'
          Dst:             file_dotlock_delete
    - functionName:    file_dotlock_open
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - dotlock_create
        - file_dotlock_alloc
        - file_dotlock_free
        - i_panic
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:774,12'
          Dst:             file_dotlock_alloc
        - Src:             'file-dotlock.c:775,2'
          Dst:             t_push
        - Src:             'file-dotlock.c:778,9'
          Dst:             dotlock_create
        - Src:             'file-dotlock.c:779,4'
          Dst:             t_pop
        - Src:             'file-dotlock.c:779,4'
          Dst:             i_panic
        - Src:             'file-dotlock.c:782,3'
          Dst:             file_dotlock_free
    - functionName:    file_dotlock_delete
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          162
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dec2str
        - dotlock_replaced_warning
        - file_dotlock_free
        - file_dotlock_get_lock_path
        - file_dotlock_has_mtime_changed
        - gnu_dev_major
        - gnu_dev_minor
        - i_error
        - i_unlink_if_exists
        - i_warning
        - nfs_safe_lstat
        - time
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:731,14'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-dotlock.c:732,6'
          Dst:             nfs_safe_lstat
        - Src:             'file-dotlock.c:733,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:734,4'
          Dst:             dotlock_replaced_warning
        - Src:             'file-dotlock.c:735,4'
          Dst:             file_dotlock_free
        - Src:             'file-dotlock.c:739,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:740,3'
          Dst:             file_dotlock_free
        - Src:             'file-dotlock.c:745,7'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:745,7'
          Dst:             gnu_dev_major
        - Src:             'file-dotlock.c:745,7'
          Dst:             gnu_dev_minor
        - Src:             'file-dotlock.c:745,7'
          Dst:             gnu_dev_minor
        - Src:             'file-dotlock.c:746,3'
          Dst:             dotlock_replaced_warning
        - Src:             'file-dotlock.c:747,3'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:748,3'
          Dst:             file_dotlock_free
        - Src:             'file-dotlock.c:752,6'
          Dst:             file_dotlock_has_mtime_changed
        - Src:             'file-dotlock.c:757,6'
          Dst:             dec2str
        - Src:             'file-dotlock.c:757,31'
          Dst:             dec2str
        - Src:             'file-dotlock.c:758,12'
          Dst:             time
        - Src:             'file-dotlock.c:754,3'
          Dst:             i_warning
        - Src:             'file-dotlock.c:761,13'
          Dst:             i_unlink_if_exists
        - Src:             'file-dotlock.c:762,3'
          Dst:             dotlock_replaced_warning
        - Src:             'file-dotlock.c:763,2'
          Dst:             file_dotlock_free
    - functionName:    file_dotlock_has_mtime_changed
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_dotlock_alloc
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:85,12'
          Dst:             malloc_multiply_check
        - Src:             'file-dotlock.c:85,12'
          Dst:             p_malloc
        - Src:             'file-dotlock.c:89,18'
          Dst:             i_strdup
    - functionName:    dotlock_create
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          556
      EdgeCount:       111
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - check_lock
        - close
        - dec2str
        - dotlock_wait
        - file_lock_wait_end
        - file_lock_wait_start
        - fstat
        - i_error
        - i_panic
        - i_rand
        - i_unlink
        - i_warning
        - t_str_new
        - t_strconcat
        - time
        - try_create_lock_excl
        - try_create_lock_hardlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:483,8'
          Dst:             time
        - Src:             'file-dotlock.c:486,3'
          Dst:             t_strconcat
        - Src:             'file-dotlock.c:490,13'
          Dst:             t_str_new
        - Src:             'file-dotlock.c:501,2'
          Dst:             file_lock_wait_start
        - Src:             'file-dotlock.c:507,28'
          Dst:             i_rand
        - Src:             'file-dotlock.c:517,4'
          Dst:             dotlock_wait
        - Src:             'file-dotlock.c:518,10'
          Dst:             time
        - Src:             'file-dotlock.c:521,9'
          Dst:             check_lock
        - Src:             'file-dotlock.c:530,5'
          Dst:             try_create_lock_excl
        - Src:             'file-dotlock.c:531,5'
          Dst:             try_create_lock_hardlink
        - Src:             'file-dotlock.c:537,11'
          Dst:             time
        - Src:             'file-dotlock.c:565,9'
          Dst:             time
        - Src:             'file-dotlock.c:567,2'
          Dst:             file_lock_wait_end
        - Src:             'file-dotlock.c:570,3'
          Dst:             i_panic
        - Src:             'file-dotlock.c:571,7'
          Dst:             fstat
        - Src:             'file-dotlock.c:572,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:587,26'
          Dst:             dec2str
        - Src:             'file-dotlock.c:588,8'
          Dst:             dec2str
        - Src:             'file-dotlock.c:585,5'
          Dst:             i_warning
        - Src:             'file-dotlock.c:594,19'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:596,7'
          Dst:             close
        - Src:             'file-dotlock.c:597,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:598,3'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:601,3'
          Dst:             i_unlink
        - Src:             'file-dotlock.c:604,3'
          Dst:             __errno_location
    - functionName:    file_dotlock_open_mode
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_dotlock_open_mode_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:829,9'
          Dst:             file_dotlock_open_mode_full
    - functionName:    file_dotlock_create_real
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - close
        - dotlock_create
        - i_error
        - lstat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:635,8'
          Dst:             dotlock_create
        - Src:             'file-dotlock.c:642,6'
          Dst:             close
        - Src:             'file-dotlock.c:643,3'
          Dst:             i_error
        - Src:             'file-dotlock.c:650,6'
          Dst:             lstat
        - Src:             'file-dotlock.c:651,7'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:652,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:654,4'
          Dst:             i_error
        - Src:             'file-dotlock.c:661,3'
          Dst:             __errno_location
        - Src:             'file-dotlock.c:662,3'
          Dst:             i_error
    - functionName:    file_dotlock_create
      functionSourceFile: '/src/dovecot/src/lib/file-dotlock.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_alloc
        - file_dotlock_create_real
        - file_dotlock_free
        - i_panic
        - t_pop
        - t_push
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'file-dotlock.c:677,12'
          Dst:             file_dotlock_alloc
        - Src:             'file-dotlock.c:678,2'
          Dst:             t_push
        - Src:             'file-dotlock.c:679,9'
          Dst:             file_dotlock_create_real
        - Src:             'file-dotlock.c:680,4'
          Dst:             t_pop
        - Src:             'file-dotlock.c:680,4'
          Dst:             i_panic
        - Src:             'file-dotlock.c:682,3'
          Dst:             file_dotlock_free
    - 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:    err_is_lock_timeout
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:157,9'
          Dst:             __errno_location
        - Src:             'file-lock.c:158,19'
          Dst:             time
    - functionName:    file_lock_wait_get_total_usecs
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_lock_wait_init_warning
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - getenv
        - i_error
        - i_panic
        - str_to_llong
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:457,2'
          Dst:             i_panic
        - Src:             'file-lock.c:459,10'
          Dst:             getenv
        - Src:             'file-lock.c:462,11'
          Dst:             str_to_llong
        - Src:             'file-lock.c:466,3'
          Dst:             i_error
    - functionName:    file_lock_wait_end
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - file_lock_wait_init_warning
        - i_gettimeofday
        - i_panic
        - i_warning
        - timeval_diff_usecs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:500,2'
          Dst:             i_panic
        - Src:             'file-lock.c:502,2'
          Dst:             i_gettimeofday
        - Src:             'file-lock.c:503,19'
          Dst:             timeval_diff_usecs
        - Src:             'file-lock.c:510,4'
          Dst:             file_lock_wait_init_warning
        - Src:             'file-lock.c:513,4'
          Dst:             i_warning
    - functionName:    file_lock_wait_start
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_gettimeofday
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:448,2'
          Dst:             i_panic
        - Src:             'file-lock.c:450,2'
          Dst:             i_gettimeofday
    - functionName:    file_lock_set_path
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:441,3'
          Dst:             p_free_internal
        - Src:             'file-lock.c:442,16'
          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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_lock_get_path
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 435
      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:    file_try_unlink_locked
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          155
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - file_lock_free
        - file_try_lock
        - file_unlock_real
        - fstat
        - gnu_dev_major
        - gnu_dev_minor
        - i_error
        - i_unlink
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:388,2'
          Dst:             file_unlock_real
        - Src:             'file-lock.c:389,8'
          Dst:             file_try_lock
        - Src:             'file-lock.c:392,3'
          Dst:             i_error
        - Src:             'file-lock.c:396,13'
          Dst:             fstat
        - Src:             'file-lock.c:398,3'
          Dst:             i_error
        - Src:             'file-lock.c:399,13'
          Dst:             stat
        - Src:             'file-lock.c:400,7'
          Dst:             __errno_location
        - Src:             'file-lock.c:401,4'
          Dst:             i_error
        - Src:             'file-lock.c:403,7'
          Dst:             gnu_dev_major
        - Src:             'file-lock.c:403,7'
          Dst:             gnu_dev_major
        - Src:             'file-lock.c:403,7'
          Dst:             gnu_dev_minor
        - Src:             'file-lock.c:403,7'
          Dst:             gnu_dev_minor
        - Src:             'file-lock.c:407,3'
          Dst:             i_unlink
        - Src:             'file-lock.c:409,2'
          Dst:             file_lock_free
    - functionName:    file_unlock_real
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - file_lock_do
        - i_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:354,6'
          Dst:             file_lock_do
        - Src:             'file-lock.c:357,3'
          Dst:             i_error
    - functionName:    file_try_lock
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_wait_lock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:62,9'
          Dst:             file_wait_lock
    - functionName:    file_lock_free
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - file_dotlock_delete
        - file_lock_log_warning_if_slow
        - file_try_unlink_locked
        - i_close_fd_path
        - p_free_internal
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:422,3'
          Dst:             file_dotlock_delete
        - Src:             'file-lock.c:424,3'
          Dst:             file_try_unlink_locked
        - Src:             'file-lock.c:426,3'
          Dst:             i_close_fd_path
        - Src:             'file-lock.c:428,2'
          Dst:             file_lock_log_warning_if_slow
        - Src:             'file-lock.c:429,2'
          Dst:             p_free_internal
        - Src:             'file-lock.c:430,2'
          Dst:             p_free_internal
    - functionName:    file_lock_log_warning_if_slow
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - file_lock_wait_init_warning
        - i_gettimeofday
        - i_warning
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:475,3'
          Dst:             file_lock_wait_init_warning
        - Src:             'file-lock.c:487,2'
          Dst:             i_gettimeofday
        - Src:             'file-lock.c:489,19'
          Dst:             timeval_diff_msecs
        - Src:             'file-lock.c:491,3'
          Dst:             i_warning
    - functionName:    file_wait_lock
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - file_lock_do
        - i_gettimeofday
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:296,8'
          Dst:             file_lock_do
        - Src:             'file-lock.c:300,9'
          Dst:             malloc_multiply_check
        - Src:             'file-lock.c:300,9'
          Dst:             p_malloc
        - Src:             'file-lock.c:303,15'
          Dst:             i_strdup
        - Src:             'file-lock.c:305,2'
          Dst:             i_gettimeofday
    - functionName:    file_lock_do
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          398
      EdgeCount:       73
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - alarm
        - err_is_lock_timeout
        - fcntl
        - file_lock_find
        - file_lock_wait_end
        - file_lock_wait_start
        - flock
        - i_panic
        - i_unreached
        - t_strdup_printf
        - time
      functionUses:    3
      BranchProfiles:
        - Branch String:   'file-lock.c:179,2'
          Branch Sides:    []
        - Branch String:   'file-lock.c:233,3'
          Branch Sides:    []
      Callsites:
        - Src:             'file-lock.c:166,19'
          Dst:             time
        - Src:             'file-lock.c:169,2'
          Dst:             i_panic
        - Src:             'file-lock.c:172,3'
          Dst:             alarm
        - Src:             'file-lock.c:173,3'
          Dst:             file_lock_wait_start
        - Src:             'file-lock.c:188,9'
          Dst:             fcntl
        - Src:             'file-lock.c:190,4'
          Dst:             alarm
        - Src:             'file-lock.c:191,4'
          Dst:             file_lock_wait_end
        - Src:             'file-lock.c:198,8'
          Dst:             __errno_location
        - Src:             'file-lock.c:198,27'
          Dst:             __errno_location
        - Src:             'file-lock.c:200,15'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:206,7'
          Dst:             err_is_lock_timeout
        - Src:             'file-lock.c:207,4'
          Dst:             __errno_location
        - Src:             'file-lock.c:212,5'
          Dst:             file_lock_find
        - Src:             'file-lock.c:208,15'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:216,14'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:218,7'
          Dst:             __errno_location
        - Src:             'file-lock.c:220,5'
          Dst:             file_lock_find
        - Src:             'file-lock.c:219,4'
          Dst:             i_panic
        - Src:             'file-lock.c:245,9'
          Dst:             flock
        - Src:             'file-lock.c:247,4'
          Dst:             alarm
        - Src:             'file-lock.c:248,4'
          Dst:             file_lock_wait_end
        - Src:             'file-lock.c:254,28'
          Dst:             __errno_location
        - Src:             'file-lock.c:256,15'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:261,7'
          Dst:             err_is_lock_timeout
        - Src:             'file-lock.c:262,4'
          Dst:             __errno_location
        - Src:             'file-lock.c:266,5'
          Dst:             file_lock_find
        - Src:             'file-lock.c:263,15'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:270,14'
          Dst:             t_strdup_printf
        - Src:             'file-lock.c:272,7'
          Dst:             __errno_location
        - Src:             'file-lock.c:274,5'
          Dst:             file_lock_find
        - Src:             'file-lock.c:273,4'
          Dst:             i_panic
        - Src:             'file-lock.c:282,3'
          Dst:             i_unreached
    - 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:    file_lock_find
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - file_lock_find_fcntl
        - file_lock_find_proc_locks
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:144,9'
          Dst:             file_lock_find_fcntl
        - Src:             'file-lock.c:148,9'
          Dst:             file_lock_find_proc_locks
    - functionName:    file_lock_find_fcntl
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - fcntl
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:76,6'
          Dst:             fcntl
        - Src:             'file-lock.c:79,9'
          Dst:             t_strdup_printf
    - functionName:    file_lock_find_proc_locks
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          190
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - fstat
        - getpid
        - gnu_dev_major
        - gnu_dev_minor
        - i_panic
        - i_snprintf
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_read_next_line
        - open
        - str_array_length
        - str_to_pid
        - strcmp
        - t_pop
        - t_push
        - t_strdup_printf
        - t_strsplit_spaces
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:100,6'
          Dst:             fstat
        - Src:             'file-lock.c:103,6'
          Dst:             gnu_dev_major
        - Src:             'file-lock.c:103,24'
          Dst:             gnu_dev_minor
        - Src:             'file-lock.c:102,2'
          Dst:             i_snprintf
        - Src:             'file-lock.c:105,7'
          Dst:             open
        - Src:             'file-lock.c:110,10'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'file-lock.c:111,29'
          Dst:             i_stream_read_next_line
        - Src:             'file-lock.c:111,70'
          Dst:             t_push
        - Src:             'file-lock.c:112,29'
          Dst:             t_strsplit_spaces
        - Src:             'file-lock.c:116,7'
          Dst:             str_array_length
        - Src:             'file-lock.c:118,14'
          Dst:             strcmp
        - Src:             'file-lock.c:119,16'
          Dst:             strcmp
        - Src:             'file-lock.c:121,8'
          Dst:             str_to_pid
        - Src:             'file-lock.c:124,4'
          Dst:             t_pop
        - Src:             'file-lock.c:124,4'
          Dst:             i_panic
        - Src:             'file-lock.c:125,2'
          Dst:             i_stream_destroy
        - Src:             'file-lock.c:130,13'
          Dst:             getpid
        - Src:             'file-lock.c:132,9'
          Dst:             t_strdup_printf
    - functionName:    file_unlock
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - file_lock_free
        - file_unlock_real
        - i_panic
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:370,2'
          Dst:             i_panic
        - Src:             'file-lock.c:373,3'
          Dst:             file_unlock_real
        - Src:             'file-lock.c:374,2'
          Dst:             file_lock_free
    - functionName:    file_lock_from_dotlock
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_dotlock_get_lock_path
        - i_gettimeofday
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:338,9'
          Dst:             malloc_multiply_check
        - Src:             'file-lock.c:338,9'
          Dst:             p_malloc
        - Src:             'file-lock.c:341,24'
          Dst:             file_dotlock_get_lock_path
        - Src:             'file-lock.c:341,15'
          Dst:             i_strdup
        - Src:             'file-lock.c:343,2'
          Dst:             i_gettimeofday
    - functionName:    file_lock_set_close_on_free
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_lock_set_unlink_on_free
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_lock_try_update
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - file_lock_do
        - file_lock_log_warning_if_slow
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:315,8'
          Dst:             file_lock_do
        - Src:             'file-lock.c:319,2'
          Dst:             file_lock_log_warning_if_slow
    - functionName:    file_lock_method_to_str
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'file-lock.c:47,2'
          Branch Sides:    []
      Callsites:
        - Src:             'file-lock.c:55,2'
          Dst:             i_unreached
    - functionName:    file_lock_method_parse
      functionSourceFile: '/src/dovecot/src/lib/file-lock.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          59
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'file-lock.c:34,6'
          Dst:             strcasecmp
        - Src:             'file-lock.c:36,11'
          Dst:             strcasecmp
        - Src:             'file-lock.c:38,11'
          Dst:             strcasecmp
    - functionName:    file_preallocate
      functionSourceFile: '/src/dovecot/src/lib/file-set-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fallocate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'file-set-size.c:86,6'
          Dst:             fallocate
        - Src:             'file-set-size.c:87,10'
          Dst:             __errno_location
    - functionName:    fallocate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_set_size
      functionSourceFile: '/src/dovecot/src/lib/file-set-size.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          243
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - fstat
        - ftruncate
        - i_error
        - i_panic
        - posix_fallocate
        - pwrite
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'file-set-size.c:29,2'
          Dst:             i_panic
        - Src:             'file-set-size.c:31,6'
          Dst:             fstat
        - Src:             'file-set-size.c:32,3'
          Dst:             i_error
        - Src:             'file-set-size.c:37,7'
          Dst:             ftruncate
        - Src:             'file-set-size.c:38,4'
          Dst:             i_error
        - Src:             'file-set-size.c:50,9'
          Dst:             posix_fallocate
        - Src:             'file-set-size.c:57,5'
          Dst:             i_error
        - Src:             'file-set-size.c:69,9'
          Dst:             pwrite
        - Src:             'file-set-size.c:73,9'
          Dst:             __errno_location
        - Src:             'file-set-size.c:73,9'
          Dst:             __errno_location
        - Src:             'file-set-size.c:74,5'
          Dst:             i_error
    - functionName:    posix_fallocate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      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:    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:    7
      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:    39
      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:    3
      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:    3
      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:    2
      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:    43
      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:    20
      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:    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:    2
      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:    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:    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:    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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './base64.h:287,2'
          Dst:             base64_scheme_encode
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:77,2'
          Dst:             buffer_delete
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_format_parse
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          171
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - hash_method_lookup
        - str_to_uint
        - strchr
        - t_strconcat
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:42,8'
          Dst:             strchr
        - Src:             'hash-format.c:48,9'
          Dst:             t_strdup_until
        - Src:             'hash-format.c:50,10'
          Dst:             strchr
        - Src:             'hash-format.c:52,10'
          Dst:             t_strdup_until
        - Src:             'hash-format.c:54,14'
          Dst:             hash_method_lookup
        - Src:             'hash-format.c:56,14'
          Dst:             t_strconcat
        - Src:             'hash-format.c:62,7'
          Dst:             str_to_uint
        - Src:             'hash-format.c:64,15'
          Dst:             t_strconcat
        - Src:             'hash-format.c:69,15'
          Dst:             t_strconcat
    - functionName:    hash_format_deinit_free
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:244,2'
          Dst:             pool_unref
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_format_deinit
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_format_write
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:235,2'
          Dst:             hash_format_write
        - Src:             'hash-format.c:236,2'
          Dst:             pool_unref
    - functionName:    hash_format_write
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          207
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - hash_format_digest
        - i_panic
        - p_malloc
        - str_append_c
        - strchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:208,20'
          Dst:             p_malloc
        - Src:             'hash-format.c:213,4'
          Dst:             str_append_c
        - Src:             'hash-format.c:218,3'
          Dst:             i_panic
        - Src:             'hash-format.c:220,3'
          Dst:             hash_format_digest
        - Src:             'hash-format.c:223,7'
          Dst:             strchr
        - Src:             'hash-format.c:224,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:    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:    hash_format_digest
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          186
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - base64_encode
        - binary_to_hex_append
        - i_panic
        - str_data
        - str_delete
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'hash-format.c:171,2'
          Branch Sides:    []
      Callsites:
        - Src:             'hash-format.c:169,2'
          Dst:             i_panic
        - Src:             'hash-format.c:173,3'
          Dst:             binary_to_hex_append
        - Src:             'hash-format.c:176,14'
          Dst:             str_len
        - Src:             'hash-format.c:177,3'
          Dst:             binary_to_hex_append
        - Src:             'hash-format.c:179,26'
          Dst:             str_len
        - Src:             'hash-format.c:180,8'
          Dst:             str_data
        - Src:             'hash-format.c:183,12'
          Dst:             str_len
        - Src:             'hash-format.c:184,3'
          Dst:             str_delete
        - Src:             'hash-format.c:187,14'
          Dst:             str_len
        - Src:             'hash-format.c:188,3'
          Dst:             base64_encode
        - Src:             'hash-format.c:190,10'
          Dst:             str_len
        - Src:             'hash-format.c:191,10'
          Dst:             str_data
        - Src:             'hash-format.c:191,25'
          Dst:             str_len
        - Src:             'hash-format.c:192,23'
          Dst:             str_len
        - Src:             'hash-format.c:192,4'
          Dst:             str_truncate
    - functionName:    hash_format_reset
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_format_loop
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_format_string_analyze
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - hash_format_parse
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:91,10'
          Dst:             malloc_multiply_check
        - Src:             'hash-format.c:91,10'
          Dst:             p_malloc
        - Src:             'hash-format.c:107,7'
          Dst:             hash_format_parse
        - Src:             'hash-format.c:110,19'
          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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    hash_format_init
      functionSourceFile: '/src/dovecot/src/lib/hash-format.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - hash_format_string_analyze
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - t_pop
        - t_push
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-format.c:124,9'
          Dst:             pool_alloconly_create
        - Src:             'hash-format.c:125,11'
          Dst:             malloc_multiply_check
        - Src:             'hash-format.c:125,11'
          Dst:             p_malloc
        - Src:             'hash-format.c:127,16'
          Dst:             p_strdup
        - Src:             'hash-format.c:129,2'
          Dst:             t_push
        - Src:             'hash-format.c:130,9'
          Dst:             hash_format_string_analyze
        - Src:             'hash-format.c:133,15'
          Dst:             p_strdup
        - Src:             'hash-format.c:134,4'
          Dst:             t_pop
        - Src:             'hash-format.c:134,4'
          Dst:             i_panic
        - Src:             'hash-format.c:136,14'
          Dst:             t_strdup
        - Src:             'hash-format.c:137,3'
          Dst:             pool_unref
    - 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:    3
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-method.c:16,7'
          Dst:             strcmp
    - 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:    1
      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:    2
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:549,18'
          Dst:             toupper
    - 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:    19
      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:    12
      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:    12
      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:    40
      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:    12
      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:    6
      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:    13
      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:    9
      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:    6
      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:    57
      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:    5
      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:    39
      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:    7
      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:    27
      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:    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_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:    hash2_count
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 242
      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:    hash2_remove_iter
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_modifiable_i
        - hash2_remove_value_p
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:224,11'
          Dst:             array_idx_modifiable_i
        - Src:             'hash2.c:231,4'
          Dst:             hash2_remove_value_p
        - Src:             'hash2.c:237,2'
          Dst:             i_panic
    - functionName:    hash2_remove_value_p
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash2_remove
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_idx_modifiable_i
        - hash2_remove_value_p
        - hash2_resize
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:206,11'
          Dst:             array_idx_modifiable_i
        - Src:             'hash2.c:211,4'
          Dst:             hash2_remove_value_p
        - Src:             'hash2.c:212,4'
          Dst:             hash2_resize
        - Src:             'hash2.c:217,2'
          Dst:             i_panic
    - functionName:    hash2_resize
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          189
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - array_count_i
        - array_free_i
        - array_idx_i
        - array_idx_modifiable_i
        - hash2_alloc_table
        - primes_closest
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:90,14'
          Dst:             primes_closest
        - Src:             'hash2.c:90,14'
          Dst:             primes_closest
        - Src:             'hash2.c:96,2'
          Dst:             hash2_alloc_table
        - Src:             'hash2.c:98,14'
          Dst:             array_count_i
        - Src:             'hash2.c:100,14'
          Dst:             array_idx_i
        - Src:             'hash2.c:105,13'
          Dst:             array_idx_modifiable_i
        - Src:             'hash2.c:110,2'
          Dst:             array_free_i
    - functionName:    hash2_alloc_table
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - array_idx_get_space_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:37,2'
          Dst:             array_create_i
        - Src:             'hash2.c:38,8'
          Dst:             array_idx_get_space_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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - 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:    hash2_insert_hash
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          93
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_idx_modifiable_i
        - hash2_resize
        - malloc_add_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:164,2'
          Dst:             hash2_resize
        - Src:             'hash2.c:173,4'
          Dst:             malloc_add_check
        - Src:             'hash2.c:174,11'
          Dst:             p_malloc
        - Src:             'hash2.c:178,11'
          Dst:             array_idx_modifiable_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:    hash2_insert
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash2_insert_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:157,9'
          Dst:             hash2_insert_hash
    - functionName:    hash2_iterate
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:140,11'
          Dst:             array_idx_i
    - functionName:    hash2_lookup
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:119,10'
          Dst:             array_idx_i
    - functionName:    p_clear
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    hash2_clear
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - hash2_alloc_table
        - p_clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:72,2'
          Dst:             array_free_i
        - Src:             'hash2.c:73,2'
          Dst:             hash2_alloc_table
        - Src:             'hash2.c:74,2'
          Dst:             p_clear
    - 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:    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:    hash2_destroy
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:65,2'
          Dst:             array_free_i
        - Src:             'hash2.c:66,2'
          Dst:             pool_unref
        - Src:             'hash2.c:67,2'
          Dst:             p_free_internal
    - functionName:    hash2_create
      functionSourceFile: '/src/dovecot/src/lib/hash2.c'
      linkageType:     externalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash2_alloc_table
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash2.c:48,9'
          Dst:             malloc_multiply_check
        - Src:             'hash2.c:48,9'
          Dst:             p_malloc
        - Src:             'hash2.c:55,21'
          Dst:             pool_alloconly_create
        - Src:             'hash2.c:56,2'
          Dst:             hash2_alloc_table
    - 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:    4
      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:    6
      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:    17
      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:    hex2dec_case
      functionSourceFile: '/src/dovecot/src/lib/hex-dec.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          190
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dec2hex
      functionSourceFile: '/src/dovecot/src/lib/hex-dec.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    home_expand_tilde
      functionSourceFile: '/src/dovecot/src/lib/home-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - t_strconcat
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'home-expand.c:71,9'
          Dst:             t_strconcat
    - functionName:    home_expand
      functionSourceFile: '/src/dovecot/src/lib/home-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - home_try_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'home-expand.c:56,8'
          Dst:             home_try_expand
    - functionName:    home_try_expand
      functionSourceFile: '/src/dovecot/src/lib/home-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          167
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - getenv
        - i_error
        - i_getpwnam
        - strchr
        - t_strconcat
        - t_strdup
        - t_strdup_until
      functionUses:    1
      BranchProfiles:
        - Branch String:   'home-expand.c:30,3'
          Branch Sides:    []
      Callsites:
        - Src:             'home-expand.c:19,10'
          Dst:             getenv
        - Src:             'home-expand.c:22,7'
          Dst:             strchr
        - Src:             'home-expand.c:27,11'
          Dst:             t_strdup_until
        - Src:             'home-expand.c:30,11'
          Dst:             i_getpwnam
        - Src:             'home-expand.c:32,4'
          Dst:             i_error
        - Src:             'home-expand.c:48,12'
          Dst:             t_strdup
        - Src:             'home-expand.c:50,12'
          Dst:             t_strconcat
    - 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:    hook_build_deinit
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:120,2'
          Dst:             pool_unref
    - functionName:    hook_copy_stack
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:75,2'
          Dst:             i_panic
    - functionName:    hook_update_mask
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:64,4'
          Dst:             i_panic
    - functionName:    hook_build_update
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hook_build_append
        - hook_copy_stack
        - hook_update_mask
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:105,2'
          Dst:             hook_update_mask
        - Src:             'hook-build.c:110,3'
          Dst:             hook_copy_stack
        - Src:             'hook-build.c:113,2'
          Dst:             hook_build_append
    - functionName:    hook_build_append
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:34,10'
          Dst:             malloc_multiply_check
        - Src:             'hook-build.c:34,10'
          Dst:             p_malloc
        - Src:             'hook-build.c:36,16'
          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:    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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    hook_build_init
      functionSourceFile: '/src/dovecot/src/lib/hook-build.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - hook_build_append
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'hook-build.c:45,2'
          Dst:             i_panic
        - Src:             'hook-build.c:47,9'
          Dst:             pool_alloconly_create
        - Src:             'hook-build.c:48,8'
          Dst:             malloc_multiply_check
        - Src:             'hook-build.c:48,8'
          Dst:             p_malloc
        - Src:             'hook-build.c:52,2'
          Dst:             hook_build_append
    - 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:    4
      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:    2
      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:    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:    21
      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:    11
      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:    18
      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:    6
      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:    2
      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:    2
      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:    2
      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:    176
      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:    8
      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:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:9,9'
          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:    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:    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:    1
      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:    5
      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_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:    4
      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:    1
      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:    1
      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:    2
      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:    2
      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:    2
      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:    12
      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:    7
      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:    99
      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:    6
      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:    3
      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:    4
      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:    8
      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:    44
      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:    4
      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:    5
      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:    5
      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:    4
      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:    1
      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:    2
      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:    2
      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:    1
      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:    1
      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:    2
      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:    19
      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:    25
      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:    15
      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:    4
      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:    4
      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:    2
      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:    33
      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:    15
      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:    13
      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:    1
      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:    14
      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:    38
      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:    12
      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:    2
      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:    5
      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:    2
      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:    8
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:98,2'
          Dst:             i_panic
        - Src:             'ioloop.c:99,7'
          Dst:             io_add_file
    - 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:    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:    1
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    rawlog_write_timestamp
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_create_from_data
        - o_stream_nsend
        - str_append_c
        - str_printfa
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:33,2'
          Dst:             buffer_create_from_data
        - Src:             'iostream-rawlog.c:34,2'
          Dst:             str_printfa
        - Src:             'iostream-rawlog.c:38,3'
          Dst:             str_append_c
        - Src:             'iostream-rawlog.c:39,3'
          Dst:             str_append_c
        - Src:             'iostream-rawlog.c:40,3'
          Dst:             str_append_c
        - Src:             'iostream-rawlog.c:42,2'
          Dst:             o_stream_nsend
    - functionName:    iostream_rawlog_create_from_stream
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_create_rawlog_from_stream
        - i_stream_unref
        - o_stream_create_rawlog_from_stream
        - o_stream_ref
        - o_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:322,12'
          Dst:             i_stream_create_rawlog_from_stream
        - Src:             'iostream-rawlog.c:324,3'
          Dst:             i_stream_unref
        - Src:             'iostream-rawlog.c:328,13'
          Dst:             o_stream_create_rawlog_from_stream
        - Src:             'iostream-rawlog.c:330,3'
          Dst:             o_stream_unref
        - Src:             'iostream-rawlog.c:333,3'
          Dst:             o_stream_ref
    - functionName:    iostream_rawlog_create_fd
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_rawlog
        - i_stream_unref
        - o_stream_create_rawlog
        - o_stream_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:173,11'
          Dst:             i_stream_create_rawlog
        - Src:             'iostream-rawlog.c:176,12'
          Dst:             o_stream_create_rawlog
        - Src:             'iostream-rawlog.c:180,2'
          Dst:             i_stream_unref
        - Src:             'iostream-rawlog.c:181,2'
          Dst:             o_stream_unref
    - functionName:    iostream_rawlog_create_path
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - iostream_rawlog_create_fd
        - iostream_rawlog_try_create_tcp
        - open
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:293,13'
          Dst:             iostream_rawlog_try_create_tcp
        - Src:             'iostream-rawlog.c:295,7'
          Dst:             open
        - Src:             'iostream-rawlog.c:297,7'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:297,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:297,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:297,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:298,4'
          Dst:             e_error
        - Src:             'iostream-rawlog.c:301,4'
          Dst:             event_want_level
        - Src:             'iostream-rawlog.c:301,4'
          Dst:             e_debug
        - Src:             'iostream-rawlog.c:301,4'
          Dst:             event_send_abort
        - Src:             'iostream-rawlog.c:306,2'
          Dst:             iostream_rawlog_create_fd
    - functionName:    iostream_rawlog_try_create_tcp
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - i_error
        - iostream_rawlog_create_fd
        - net_connect_ip_blocking
        - net_gethostbyname
        - net_gethosterror
        - net_ip2addr
        - net_str2hostport
        - str_begins
        - str_begins_builtin_success
        - strchr
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:195,7'
          Dst:             str_begins
        - Src:             'iostream-rawlog.c:195,7'
          Dst:             strncmp
        - Src:             'iostream-rawlog.c:195,7'
          Dst:             str_begins_builtin_success
        - Src:             'iostream-rawlog.c:198,6'
          Dst:             strchr
        - Src:             'iostream-rawlog.c:200,6'
          Dst:             net_str2hostport
        - Src:             'iostream-rawlog.c:203,8'
          Dst:             net_gethostbyname
        - Src:             'iostream-rawlog.c:206,4'
          Dst:             net_gethosterror
        - Src:             'iostream-rawlog.c:205,3'
          Dst:             i_error
        - Src:             'iostream-rawlog.c:209,7'
          Dst:             net_connect_ip_blocking
        - Src:             'iostream-rawlog.c:211,40'
          Dst:             net_ip2addr
        - Src:             'iostream-rawlog.c:211,3'
          Dst:             i_error
        - Src:             'iostream-rawlog.c:214,2'
          Dst:             iostream_rawlog_create_fd
    - functionName:    iostream_rawlog_create_prefix
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          221
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - i_close_fd_path
        - i_stream_create_rawlog
        - i_stream_unref
        - i_unlink
        - o_stream_create_rawlog
        - o_stream_unref
        - open
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:245,12'
          Dst:             t_strdup_printf
        - Src:             'iostream-rawlog.c:246,10'
          Dst:             open
        - Src:             'iostream-rawlog.c:248,7'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:248,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:248,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:248,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:249,4'
          Dst:             e_error
        - Src:             'iostream-rawlog.c:252,4'
          Dst:             event_want_level
        - Src:             'iostream-rawlog.c:252,4'
          Dst:             e_debug
        - Src:             'iostream-rawlog.c:252,4'
          Dst:             event_send_abort
        - Src:             'iostream-rawlog.c:258,13'
          Dst:             t_strdup_printf
        - Src:             'iostream-rawlog.c:259,11'
          Dst:             open
        - Src:             'iostream-rawlog.c:261,7'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:261,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:261,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:261,27'
          Dst:             __errno_location
        - Src:             'iostream-rawlog.c:262,4'
          Dst:             e_error
        - Src:             'iostream-rawlog.c:265,4'
          Dst:             event_want_level
        - Src:             'iostream-rawlog.c:265,4'
          Dst:             e_debug
        - Src:             'iostream-rawlog.c:265,4'
          Dst:             event_send_abort
        - Src:             'iostream-rawlog.c:268,3'
          Dst:             i_close_fd_path
        - Src:             'iostream-rawlog.c:269,3'
          Dst:             i_unlink
        - Src:             'iostream-rawlog.c:276,11'
          Dst:             i_stream_create_rawlog
        - Src:             'iostream-rawlog.c:279,12'
          Dst:             o_stream_create_rawlog
        - Src:             'iostream-rawlog.c:282,2'
          Dst:             i_stream_unref
        - Src:             'iostream-rawlog.c:283,2'
          Dst:             o_stream_unref
    - functionName:    iostream_rawlog_create
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iostream_rawlog_create_prefix
        - iostream_rawlog_try_create_tcp
        - t_strdup_printf
        - t_strflocaltime
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:226,13'
          Dst:             iostream_rawlog_try_create_tcp
        - Src:             'iostream-rawlog.c:229,14'
          Dst:             t_strflocaltime
        - Src:             'iostream-rawlog.c:232,11'
          Dst:             t_strdup_printf
        - Src:             'iostream-rawlog.c:233,9'
          Dst:             iostream_rawlog_create_prefix
    - functionName:    iostream_rawlog_close
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - o_stream_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:160,2'
          Dst:             o_stream_unref
        - Src:             'iostream-rawlog.c:161,2'
          Dst:             buffer_free
    - functionName:    iostream_rawlog_write_flush
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_set_used_size
        - o_stream_nsend
        - rawlog_write_timestamp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:59,2'
          Dst:             rawlog_write_timestamp
        - Src:             'iostream-rawlog.c:61,3'
          Dst:             o_stream_nsend
        - Src:             'iostream-rawlog.c:64,3'
          Dst:             buffer_set_used_size
        - Src:             'iostream-rawlog.c:66,2'
          Dst:             o_stream_nsend
        - Src:             'iostream-rawlog.c:68,3'
          Dst:             o_stream_nsend
    - functionName:    iostream_rawlog_flush
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - iostream_rawlog_flush_output
        - iostream_rawlog_write_flush
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:153,3'
          Dst:             iostream_rawlog_write_flush
        - Src:             'iostream-rawlog.c:154,3'
          Dst:             iostream_rawlog_flush_output
    - functionName:    iostream_rawlog_flush_output
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - iostream_rawlog_close
        - o_stream_flush
        - o_stream_get_error
        - o_stream_get_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:125,6'
          Dst:             o_stream_flush
        - Src:             'iostream-rawlog.c:127,4'
          Dst:             o_stream_get_name
        - Src:             'iostream-rawlog.c:128,4'
          Dst:             o_stream_get_error
        - Src:             'iostream-rawlog.c:126,3'
          Dst:             i_error
        - Src:             'iostream-rawlog.c:129,3'
          Dst:             iostream_rawlog_close
    - functionName:    iostream_rawlog_write_unbuffered
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - o_stream_nsend
        - rawlog_write_timestamp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:106,3'
          Dst:             rawlog_write_timestamp
        - Src:             'iostream-rawlog.c:110,4'
          Dst:             o_stream_nsend
        - Src:             'iostream-rawlog.c:112,4'
          Dst:             rawlog_write_timestamp
        - Src:             'iostream-rawlog.c:117,3'
          Dst:             o_stream_nsend
    - functionName:    iostream_rawlog_write_buffered
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append
        - iostream_rawlog_write_flush
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:80,7'
          Dst:             memchr
        - Src:             'iostream-rawlog.c:85,4'
          Dst:             buffer_append
        - Src:             'iostream-rawlog.c:92,3'
          Dst:             iostream_rawlog_write_flush
    - functionName:    iostream_rawlog_write
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - io_loop_time_refresh
        - iostream_rawlog_flush_output
        - iostream_rawlog_write_buffered
        - iostream_rawlog_write_unbuffered
        - o_stream_cork
        - o_stream_uncork
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:139,2'
          Dst:             io_loop_time_refresh
        - Src:             'iostream-rawlog.c:141,2'
          Dst:             o_stream_cork
        - Src:             'iostream-rawlog.c:143,3'
          Dst:             iostream_rawlog_write_buffered
        - Src:             'iostream-rawlog.c:145,3'
          Dst:             iostream_rawlog_write_unbuffered
        - Src:             'iostream-rawlog.c:146,2'
          Dst:             o_stream_uncork
        - Src:             'iostream-rawlog.c:147,2'
          Dst:             iostream_rawlog_flush_output
    - functionName:    iostream_rawlog_init
      functionSourceFile: '/src/dovecot/src/lib/iostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-rawlog.c:51,21'
          Dst:             buffer_create_dynamic
    - 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:    o_stream_temp_dup_istream
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          182
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_get_fd
        - i_stream_get_size
        - i_stream_ref
        - i_stream_seek
        - o_stream_temp_dup_cancel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:307,32'
          Dst:             i_stream_get_fd
        - Src:             'iostream-temp.c:310,6'
          Dst:             i_stream_get_size
        - Src:             'iostream-temp.c:312,11'
          Dst:             o_stream_temp_dup_cancel
        - Src:             'iostream-temp.c:315,2'
          Dst:             i_panic
        - Src:             'iostream-temp.c:320,3'
          Dst:             i_stream_ref
        - Src:             'iostream-temp.c:325,11'
          Dst:             o_stream_temp_dup_cancel
        - Src:             'iostream-temp.c:327,2'
          Dst:             i_stream_seek
    - functionName:    o_stream_temp_dup_cancel
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - i_stream_create_limit
        - i_stream_destroy
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_seek
        - i_stream_unref
        - i_unreached
        - io_stream_copy
        - io_stream_set_error
      functionUses:    3
      BranchProfiles:
        - Branch String:   'iostream-temp.c:266,2'
          Branch Sides:    []
      Callsites:
        - Src:             'iostream-temp.c:259,2'
          Dst:             i_stream_seek
        - Src:             'iostream-temp.c:262,10'
          Dst:             i_stream_create_limit
        - Src:             'iostream-temp.c:263,2'
          Dst:             i_stream_unref
        - Src:             'iostream-temp.c:265,11'
          Dst:             io_stream_copy
        - Src:             'iostream-temp.c:273,3'
          Dst:             i_unreached
        - Src:             'iostream-temp.c:278,4'
          Dst:             i_stream_get_name
        - Src:             'iostream-temp.c:279,4'
          Dst:             i_stream_get_error
        - Src:             'iostream-temp.c:276,3'
          Dst:             io_stream_set_error
        - Src:             'iostream-temp.c:284,2'
          Dst:             i_stream_destroy
    - 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:    o_stream_temp_move_to_memory
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          108
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - i_close_fd_path
        - i_error
        - i_panic
        - o_stream_get_name
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:100,2'
          Dst:             i_panic
        - Src:             'iostream-temp.c:101,17'
          Dst:             buffer_create_dynamic
        - Src:             'iostream-temp.c:102,16'
          Dst:             pread
        - Src:             'iostream-temp.c:103,3'
          Dst:             buffer_append
        - Src:             'iostream-temp.c:109,4'
          Dst:             o_stream_get_name
        - Src:             'iostream-temp.c:108,3'
          Dst:             i_error
        - Src:             'iostream-temp.c:114,2'
          Dst:             i_close_fd_path
    - 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:    o_stream_temp_fd_buf_sendv
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          456
      EdgeCount:       77
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - buffer_append
        - buffer_free
        - buffer_get_writable_size
        - buffer_set_used_size
        - i_error
        - i_memcpy
        - i_panic
        - o_stream_get_name
        - o_stream_temp_move_to_memory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:124,2'
          Dst:             i_panic
        - Src:             'iostream-temp.c:131,6'
          Dst:             buffer_get_writable_size
        - Src:             'iostream-temp.c:133,4'
          Dst:             buffer_append
        - Src:             'iostream-temp.c:145,3'
          Dst:             i_memcpy
        - Src:             'iostream-temp.c:150,3'
          Dst:             i_memcpy
        - Src:             'iostream-temp.c:160,3'
          Dst:             i_panic
        - Src:             'iostream-temp.c:168,4'
          Dst:             i_panic
        - Src:             'iostream-temp.c:175,3'
          Dst:             __errno_location
        - Src:             'iostream-temp.c:180,4'
          Dst:             o_stream_get_name
        - Src:             'iostream-temp.c:179,3'
          Dst:             i_error
        - Src:             'iostream-temp.c:182,7'
          Dst:             o_stream_temp_move_to_memory
        - Src:             'iostream-temp.c:185,4'
          Dst:             buffer_append
        - Src:             'iostream-temp.c:189,3'
          Dst:             i_panic
        - Src:             'iostream-temp.c:190,3'
          Dst:             buffer_free
        - Src:             'iostream-temp.c:192,3'
          Dst:             buffer_set_used_size
    - functionName:    o_stream_temp_move_to_fd
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          147
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_create_dynamic_max
        - buffer_free
        - i_close_fd_path
        - i_error
        - i_unlink
        - safe_mkstemp_hostpid
        - str_append
        - str_c
        - t_str_new
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:64,9'
          Dst:             t_str_new
        - Src:             'iostream-temp.c:65,2'
          Dst:             str_append
        - Src:             'iostream-temp.c:66,16'
          Dst:             safe_mkstemp_hostpid
        - Src:             'iostream-temp.c:68,42'
          Dst:             str_c
        - Src:             'iostream-temp.c:68,3'
          Dst:             i_error
        - Src:             'iostream-temp.c:71,6'
          Dst:             str_c
        - Src:             'iostream-temp.c:71,6'
          Dst:             i_unlink
        - Src:             'iostream-temp.c:72,3'
          Dst:             i_close_fd_path
        - Src:             'iostream-temp.c:75,6'
          Dst:             write_full
        - Src:             'iostream-temp.c:76,35'
          Dst:             str_c
        - Src:             'iostream-temp.c:76,3'
          Dst:             i_error
        - Src:             'iostream-temp.c:77,3'
          Dst:             i_close_fd_path
        - Src:             'iostream-temp.c:86,20'
          Dst:             buffer_create_dynamic_max
        - Src:             'iostream-temp.c:88,2'
          Dst:             buffer_free
    - functionName:    o_stream_temp_fd_sendv
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - o_stream_temp_fd_buf_sendv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:201,2'
          Dst:             i_panic
        - Src:             'iostream-temp.c:203,16'
          Dst:             o_stream_temp_fd_buf_sendv
    - functionName:    iostream_temp_buf_destroyed
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:418,2'
          Dst:             buffer_free
    - functionName:    iostream_temp_finish
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          280
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dup
        - i_panic
        - i_stream_add_destroy_callback
        - i_stream_create_error_str
        - i_stream_create_fd_autoclose
        - i_stream_create_from_data
        - i_stream_create_limit
        - i_stream_get_absolute_offset
        - i_stream_get_fd
        - i_stream_get_name
        - i_stream_seek
        - i_stream_set_name
        - i_stream_unref
        - iostream_temp_buf_destroyed
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:435,14'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:437,8'
          Dst:             o_stream_finish
        - Src:             'iostream-temp.c:439,3'
          Dst:             i_panic
        - Src:             'iostream-temp.c:441,9'
          Dst:             o_stream_get_error
        - Src:             'iostream-temp.c:440,11'
          Dst:             i_stream_create_error_str
        - Src:             'iostream-temp.c:442,28'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:442,3'
          Dst:             i_stream_set_name
        - Src:             'iostream-temp.c:445,16'
          Dst:             i_stream_get_absolute_offset
        - Src:             'iostream-temp.c:450,12'
          Dst:             i_stream_get_fd
        - Src:             'iostream-temp.c:450,8'
          Dst:             dup
        - Src:             'iostream-temp.c:452,38'
          Dst:             __errno_location
        - Src:             'iostream-temp.c:452,12'
          Dst:             i_stream_create_error_str
        - Src:             'iostream-temp.c:454,13'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'iostream-temp.c:455,4'
          Dst:             i_stream_seek
        - Src:             'iostream-temp.c:456,12'
          Dst:             i_stream_create_limit
        - Src:             'iostream-temp.c:457,4'
          Dst:             i_stream_unref
        - Src:             'iostream-temp.c:461,14'
          Dst:             i_stream_get_name
        - Src:             'iostream-temp.c:459,28'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:459,3'
          Dst:             i_stream_set_name
        - Src:             'iostream-temp.c:462,3'
          Dst:             i_stream_unref
        - Src:             'iostream-temp.c:468,11'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'iostream-temp.c:469,28'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:469,3'
          Dst:             i_stream_set_name
        - Src:             'iostream-temp.c:473,11'
          Dst:             i_stream_create_from_data
        - Src:             'iostream-temp.c:475,28'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:475,3'
          Dst:             i_stream_set_name
        - Src:             'iostream-temp.c:478,3'
          Dst:             i_stream_add_destroy_callback
        - Src:             'iostream-temp.c:478,3'
          Dst:             iostream_temp_buf_destroyed
        - Src:             'iostream-temp.c:482,2'
          Dst:             o_stream_destroy
    - functionName:    iostream_temp_writev
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - writev
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:357,9'
          Dst:             writev
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_temp_close
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
        - i_close_fd_path
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:49,2'
          Dst:             i_close_fd_path
        - Src:             'iostream-temp.c:50,2'
          Dst:             buffer_free
        - Src:             'iostream-temp.c:51,2'
          Dst:             buffer_free
        - Src:             'iostream-temp.c:52,2'
          Dst:             p_free_internal
        - Src:             'iostream-temp.c:53,2'
          Dst:             p_free_internal
    - functionName:    o_stream_temp_flush
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - o_stream_temp_fd_buf_sendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:297,9'
          Dst:             o_stream_temp_fd_buf_sendv
    - functionName:    o_stream_temp_send_istream
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - io_stream_copy
        - o_stream_temp_dup_istream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:347,7'
          Dst:             o_stream_temp_dup_istream
        - Src:             'iostream-temp.c:351,9'
          Dst:             io_stream_copy
    - functionName:    o_stream_temp_sendv
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          192
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append
        - i_panic
        - o_stream_temp_dup_cancel
        - o_stream_temp_fd_sendv
        - o_stream_temp_move_to_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:226,7'
          Dst:             o_stream_temp_dup_cancel
        - Src:             'iostream-temp.c:231,10'
          Dst:             o_stream_temp_fd_sendv
        - Src:             'iostream-temp.c:237,8'
          Dst:             o_stream_temp_move_to_fd
        - Src:             'iostream-temp.c:238,5'
          Dst:             i_panic
        - Src:             'iostream-temp.c:239,12'
          Dst:             o_stream_temp_fd_sendv
        - Src:             'iostream-temp.c:244,3'
          Dst:             buffer_append
    - 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_temp_create_sized
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     externalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          109
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - i_strdup
        - malloc_multiply_check
        - o_stream_create
        - o_stream_set_name
        - p_malloc
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:391,12'
          Dst:             malloc_multiply_check
        - Src:             'iostream-temp.c:391,12'
          Dst:             p_malloc
        - Src:             'iostream-temp.c:397,30'
          Dst:             i_strdup
        - Src:             'iostream-temp.c:400,17'
          Dst:             buffer_create_dynamic
        - Src:             'iostream-temp.c:404,11'
          Dst:             o_stream_create
        - Src:             'iostream-temp.c:405,18'
          Dst:             i_strdup
        - Src:             'iostream-temp.c:407,29'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:407,3'
          Dst:             o_stream_set_name
        - Src:             'iostream-temp.c:410,29'
          Dst:             t_strdup_printf
        - Src:             'iostream-temp.c:410,3'
          Dst:             o_stream_set_name
    - functionName:    iostream_temp_create_named
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     externalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iostream_temp_create_sized
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:379,9'
          Dst:             iostream_temp_create_sized
    - functionName:    iostream_temp_create
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     externalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iostream_temp_create_named
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-temp.c:372,9'
          Dst:             iostream_temp_create_named
    - functionName:    o_stream_temp_set_writev
      functionSourceFile: '/src/dovecot/src/lib/iostream-temp.c'
      linkageType:     externalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      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:    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:    3
      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:    47
      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_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:    5
      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:    2
      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:    5
      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:    2
      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:    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:    3
      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:    base64_decode_reset
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './base64.h:178,2'
          Dst:             base64_decode_init
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_base64_try_decode_block
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          121
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - base64_decode_more
        - binary_to_hex
        - buffer_create_from_data
        - i_stream_get_data
        - i_stream_skip
        - i_stream_try_alloc
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:45,9'
          Dst:             i_stream_get_data
        - Src:             'istream-base64-decoder.c:49,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-base64-decoder.c:52,2'
          Dst:             buffer_create_from_data
        - Src:             'istream-base64-decoder.c:53,6'
          Dst:             base64_decode_more
        - Src:             'istream-base64-decoder.c:56,4'
          Dst:             binary_to_hex
        - Src:             'istream-base64-decoder.c:54,3'
          Dst:             io_stream_set_error
        - Src:             'istream-base64-decoder.c:62,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_base64_finish_decode
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - base64_decode_finish
        - i_panic
        - i_stream_get_data_size
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:71,2'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-decoder.c:71,2'
          Dst:             i_panic
        - Src:             'istream-base64-decoder.c:73,6'
          Dst:             base64_decode_finish
        - Src:             'istream-base64-decoder.c:74,3'
          Dst:             io_stream_set_error
    - functionName:    i_stream_read_parent
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read_memarea
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:21,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-decoder.c:27,8'
          Dst:             i_stream_read_memarea
        - Src:             'istream-base64-decoder.c:32,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-decoder.c:33,2'
          Dst:             i_panic
    - functionName:    base64_decode_is_finished
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_base64_decoder_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - base64_decode_reset
        - i_stream_default_seek_nonseekable
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:132,3'
          Dst:             i_stream_seek
        - Src:             'istream-base64-decoder.c:134,3'
          Dst:             base64_decode_reset
        - Src:             'istream-base64-decoder.c:136,2'
          Dst:             i_stream_default_seek_nonseekable
    - functionName:    i_stream_base64_decoder_read
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          204
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - base64_decode_is_finished
        - i_panic
        - i_stream_base64_finish_decode
        - i_stream_base64_try_decode_block
        - i_stream_get_data_size
        - i_stream_read_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:87,6'
          Dst:             base64_decode_is_finished
        - Src:             'istream-base64-decoder.c:93,9'
          Dst:             i_stream_read_parent
        - Src:             'istream-base64-decoder.c:99,8'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-decoder.c:100,5'
          Dst:             i_stream_base64_finish_decode
        - Src:             'istream-base64-decoder.c:108,17'
          Dst:             i_stream_base64_try_decode_block
        - Src:             'istream-base64-decoder.c:115,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_stream_create_base64url_decoder
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_base64_decoder_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:171,9'
          Dst:             i_stream_create_base64_decoder_common
    - functionName:    i_stream_create_base64_decoder_common
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          90
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode_init
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:145,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-base64-decoder.c:145,12'
          Dst:             p_malloc
        - Src:             'istream-base64-decoder.c:155,2'
          Dst:             base64_decode_init
        - Src:             'istream-base64-decoder.c:158,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-base64-decoder.c:157,9'
          Dst:             i_stream_create
    - functionName:    i_stream_create_base64_decoder
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-decoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_base64_decoder_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-decoder.c:165,9'
          Dst:             i_stream_create_base64_decoder_common
    - functionName:    base64_encode_reset
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './base64.h:79,2'
          Dst:             base64_encode_init
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_base64_finish_encode
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - base64_encode_finish
        - base64_encode_get_size
        - buffer_create_from_data
        - i_panic
        - i_stream_try_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:68,13'
          Dst:             base64_encode_get_size
        - Src:             'istream-base64-encoder.c:70,7'
          Dst:             base64_encode_finish
        - Src:             'istream-base64-encoder.c:75,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-base64-encoder.c:78,2'
          Dst:             buffer_create_from_data
        - Src:             'istream-base64-encoder.c:80,6'
          Dst:             base64_encode_finish
        - Src:             'istream-base64-encoder.c:82,2'
          Dst:             i_panic
    - functionName:    i_stream_base64_try_encode
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - base64_encode_get_size
        - base64_encode_more
        - buffer_create_from_data
        - i_panic
        - i_stream_get_data
        - i_stream_skip
        - i_stream_try_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:43,9'
          Dst:             i_stream_get_data
        - Src:             'istream-base64-encoder.c:47,13'
          Dst:             base64_encode_get_size
        - Src:             'istream-base64-encoder.c:48,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-base64-encoder.c:51,2'
          Dst:             buffer_create_from_data
        - Src:             'istream-base64-encoder.c:52,2'
          Dst:             base64_encode_more
        - Src:             'istream-base64-encoder.c:53,2'
          Dst:             i_panic
        - Src:             'istream-base64-encoder.c:56,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_read_parent
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read_memarea
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:20,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-encoder.c:24,8'
          Dst:             i_stream_read_memarea
        - Src:             'istream-base64-encoder.c:29,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-encoder.c:30,2'
          Dst:             i_panic
    - functionName:    base64_encode_is_finished
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_base64_encoder_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - base64_get_full_encoded_size
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:169,6'
          Dst:             i_stream_stat
        - Src:             'istream-base64-encoder.c:179,3'
          Dst:             base64_get_full_encoded_size
    - functionName:    i_stream_base64_encoder_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - base64_encode_reset
        - i_stream_default_seek_nonseekable
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:154,3'
          Dst:             i_stream_seek
        - Src:             'istream-base64-encoder.c:156,3'
          Dst:             base64_encode_reset
        - Src:             'istream-base64-encoder.c:158,2'
          Dst:             i_stream_default_seek_nonseekable
    - functionName:    i_stream_base64_encoder_read
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          279
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - base64_encode_is_finished
        - i_panic
        - i_stream_base64_finish_encode
        - i_stream_base64_try_encode
        - i_stream_get_data_size
        - i_stream_read_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:95,6'
          Dst:             base64_encode_is_finished
        - Src:             'istream-base64-encoder.c:102,9'
          Dst:             i_stream_read_parent
        - Src:             'istream-base64-encoder.c:108,8'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-encoder.c:115,17'
          Dst:             i_stream_base64_try_encode
        - Src:             'istream-base64-encoder.c:123,7'
          Dst:             i_stream_get_data_size
        - Src:             'istream-base64-encoder.c:124,4'
          Dst:             i_panic
        - Src:             'istream-base64-encoder.c:126,10'
          Dst:             i_stream_base64_finish_encode
        - Src:             'istream-base64-encoder.c:137,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_stream_create_base64url_encoder
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_base64_encoder_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:225,9'
          Dst:             i_stream_create_base64_encoder_common
    - functionName:    i_stream_create_base64_encoder_common
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          136
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - base64_encode_init
        - i_panic
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:191,2'
          Dst:             i_panic
        - Src:             'istream-base64-encoder.c:193,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-base64-encoder.c:193,12'
          Dst:             p_malloc
        - Src:             'istream-base64-encoder.c:206,2'
          Dst:             base64_encode_init
        - Src:             'istream-base64-encoder.c:209,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-base64-encoder.c:208,9'
          Dst:             i_stream_create
    - functionName:    i_stream_create_base64_encoder
      functionSourceFile: '/src/dovecot/src/lib/istream-base64-encoder.c'
      linkageType:     externalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_base64_encoder_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-base64-encoder.c:217,9'
          Dst:             i_stream_create_base64_encoder_common
    - 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_chain_read_next
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          339
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_alloc
        - i_stream_get_data
        - i_stream_get_data_size
        - i_stream_memarea_detach
        - i_stream_seek
        - i_stream_skip
        - i_stream_unref
        - memarea_get_refcount
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:112,2'
          Dst:             i_panic
        - Src:             'istream-chain.c:113,2'
          Dst:             i_panic
        - Src:             'istream-chain.c:116,9'
          Dst:             i_stream_get_data
        - Src:             'istream-chain.c:119,2'
          Dst:             p_free_internal
        - Src:             'istream-chain.c:125,3'
          Dst:             i_stream_seek
        - Src:             'istream-chain.c:133,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:147,7'
          Dst:             memarea_get_refcount
        - Src:             'istream-chain.c:148,4'
          Dst:             i_stream_memarea_detach
        - Src:             'istream-chain.c:149,3'
          Dst:             i_stream_alloc
        - Src:             'istream-chain.c:149,3'
          Dst:             i_memcpy
        - Src:             'istream-chain.c:155,28'
          Dst:             i_stream_get_data_size
        - Src:             'istream-chain.c:155,2'
          Dst:             i_stream_skip
        - Src:             'istream-chain.c:156,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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_chain_skip
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:165,2'
          Dst:             i_panic
        - Src:             'istream-chain.c:180,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:187,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:190,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_chain_snapshot
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_default_snapshot
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:300,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:301,10'
          Dst:             i_stream_default_snapshot
        - Src:             'istream-chain.c:311,38'
          Dst:             malloc_multiply_check
        - Src:             'istream-chain.c:311,38'
          Dst:             p_malloc
        - Src:             'istream-chain.c:321,3'
          Dst:             i_stream_ref
    - 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:    i_stream_chain_read
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          396
      EdgeCount:       66
      CyclomaticComplexity: 13
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_alloc
        - i_stream_chain_read
        - i_stream_chain_read_next
        - i_stream_chain_skip
        - i_stream_get_data
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_memarea
        - io_stream_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:209,7'
          Dst:             i_stream_chain_skip
        - Src:             'istream-chain.c:211,2'
          Dst:             i_panic
        - Src:             'istream-chain.c:213,2'
          Dst:             i_panic
        - Src:             'istream-chain.c:216,9'
          Dst:             i_stream_get_data
        - Src:             'istream-chain.c:221,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:222,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-chain.c:230,6'
          Dst:             i_stream_get_name
        - Src:             'istream-chain.c:231,6'
          Dst:             i_stream_get_error
        - Src:             'istream-chain.c:228,5'
          Dst:             io_stream_set_error
        - Src:             'istream-chain.c:237,4'
          Dst:             i_stream_chain_read_next
        - Src:             'istream-chain.c:239,11'
          Dst:             i_stream_chain_read
        - Src:             'istream-chain.c:242,10'
          Dst:             i_stream_get_data
        - Src:             'istream-chain.c:247,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:259,3'
          Dst:             i_panic
        - Src:             'istream-chain.c:261,3'
          Dst:             i_stream_alloc
        - Src:             'istream-chain.c:261,3'
          Dst:             i_memcpy
        - Src:             'istream-chain.c:267,2'
          Dst:             i_panic
    - functionName:    i_stream_chain_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:84,4'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    i_stream_chain_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_free_buffer
        - i_stream_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:98,3'
          Dst:             i_stream_unref
        - Src:             'istream-chain.c:99,3'
          Dst:             p_free_internal
        - Src:             'istream-chain.c:102,2'
          Dst:             i_stream_free_buffer
    - functionName:    i_stream_chain_close
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_chain_skip
        - i_stream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:282,8'
          Dst:             i_stream_chain_skip
        - Src:             'istream-chain.c:287,4'
          Dst:             i_stream_close
    - functionName:    i_stream_create_chain
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     externalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          85
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:331,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-chain.c:331,12'
          Dst:             p_malloc
        - Src:             'istream-chain.c:348,9'
          Dst:             i_stream_create
    - functionName:    i_stream_chain_append_eof
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_chain_append_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:70,2'
          Dst:             i_stream_chain_append_internal
    - functionName:    i_stream_chain_append_internal
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          154
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - i_stream_ref
        - i_stream_set_input_pending
        - i_stream_set_max_buffer_size
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:45,9'
          Dst:             malloc_multiply_check
        - Src:             'istream-chain.c:45,9'
          Dst:             p_malloc
        - Src:             'istream-chain.c:50,3'
          Dst:             i_stream_ref
        - Src:             'istream-chain.c:53,3'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'istream-chain.c:60,3'
          Dst:             i_stream_set_input_pending
    - functionName:    i_stream_chain_append
      functionSourceFile: '/src/dovecot/src/lib/istream-chain.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_chain_append_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-chain.c:65,2'
          Dst:             i_stream_chain_append_internal
    - functionName:    find_v_offset
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          180
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_error
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_stat
        - io_stream_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:283,8'
          Dst:             i_stream_stat
        - Src:             'istream-concat.c:286,6'
          Dst:             i_stream_get_name
        - Src:             'istream-concat.c:287,6'
          Dst:             i_stream_get_error
        - Src:             'istream-concat.c:284,5'
          Dst:             io_stream_set_error
        - Src:             'istream-concat.c:289,6'
          Dst:             i_stream_get_name
        - Src:             'istream-concat.c:290,6'
          Dst:             i_stream_get_error
        - Src:             'istream-concat.c:288,5'
          Dst:             i_error
    - 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_concat_read_next
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          295
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_get_data
        - i_stream_memarea_detach
        - i_stream_seek
        - i_stream_skip
        - i_stream_try_alloc
        - i_unreached
        - memarea_get_refcount
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:75,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:78,3'
          Dst:             i_stream_skip
        - Src:             'istream-concat.c:82,9'
          Dst:             i_stream_get_data
        - Src:             'istream-concat.c:85,2'
          Dst:             i_stream_seek
        - Src:             'istream-concat.c:91,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:95,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:103,7'
          Dst:             memarea_get_refcount
        - Src:             'istream-concat.c:104,4'
          Dst:             i_stream_memarea_detach
        - Src:             'istream-concat.c:105,8'
          Dst:             i_stream_try_alloc
        - Src:             'istream-concat.c:106,4'
          Dst:             i_unreached
        - Src:             'istream-concat.c:107,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:112,3'
          Dst:             i_memcpy
        - Src:             'istream-concat.c:113,3'
          Dst:             i_stream_skip
    - 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:    i_stream_concat_skip
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          166
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_skip
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:124,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:135,3'
          Dst:             i_stream_skip
        - Src:             'istream-concat.c:142,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:148,2'
          Dst:             i_stream_skip
    - functionName:    i_stream_concat_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - find_v_offset
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:351,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:356,6'
          Dst:             find_v_offset
    - functionName:    i_stream_concat_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          184
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - find_v_offset
        - i_panic
        - i_stream_seek
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:314,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:322,6'
          Dst:             find_v_offset
        - Src:             'istream-concat.c:332,4'
          Dst:             io_stream_set_error
        - Src:             'istream-concat.c:337,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:343,2'
          Dst:             i_stream_seek
    - functionName:    i_stream_concat_read
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         80
      ICount:          575
      EdgeCount:       97
      CyclomaticComplexity: 19
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_concat_read
        - i_stream_concat_read_next
        - i_stream_concat_skip
        - i_stream_get_data
        - i_stream_get_error
        - i_stream_get_max_buffer_size
        - i_stream_get_name
        - i_stream_read
        - i_stream_set_input_pending
        - i_stream_try_alloc
        - io_stream_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:155,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:162,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:163,2'
          Dst:             i_stream_concat_skip
        - Src:             'istream-concat.c:165,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:168,9'
          Dst:             i_stream_get_data
        - Src:             'istream-concat.c:184,4'
          Dst:             i_panic
        - Src:             'istream-concat.c:188,5'
          Dst:             i_stream_get_name
        - Src:             'istream-concat.c:185,4'
          Dst:             io_stream_set_error
        - Src:             'istream-concat.c:193,9'
          Dst:             i_stream_read
        - Src:             'istream-concat.c:200,5'
          Dst:             i_stream_get_name
        - Src:             'istream-concat.c:201,5'
          Dst:             i_stream_get_error
        - Src:             'istream-concat.c:198,4'
          Dst:             io_stream_set_error
        - Src:             'istream-concat.c:210,38'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-concat.c:213,4'
          Dst:             i_stream_concat_read_next
        - Src:             'istream-concat.c:215,11'
          Dst:             i_stream_concat_read
        - Src:             'istream-concat.c:219,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:220,10'
          Dst:             i_stream_get_data
        - Src:             'istream-concat.c:225,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:237,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:239,8'
          Dst:             i_stream_try_alloc
        - Src:             'istream-concat.c:249,4'
          Dst:             i_stream_set_input_pending
        - Src:             'istream-concat.c:257,3'
          Dst:             i_memcpy
        - Src:             'istream-concat.c:262,2'
          Dst:             i_panic
    - functionName:    i_stream_concat_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:61,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:66,3'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    i_stream_concat_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_free_buffer
        - i_stream_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:45,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:49,3'
          Dst:             i_stream_unref
        - Src:             'istream-concat.c:50,2'
          Dst:             p_free_internal
        - Src:             'istream-concat.c:51,2'
          Dst:             p_free_internal
        - Src:             'istream-concat.c:52,2'
          Dst:             i_stream_free_buffer
    - functionName:    i_stream_concat_close
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_close
        - i_stream_concat_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:27,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:32,9'
          Dst:             i_stream_concat_skip
        - Src:             'istream-concat.c:37,4'
          Dst:             i_stream_close
    - 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_concat
      functionSourceFile: '/src/dovecot/src/lib/istream-concat.c'
      linkageType:     externalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          283
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_create
        - i_stream_get_max_buffer_size
        - i_stream_ref
        - i_stream_seek
        - malloc_multiply_check
        - p_malloc
        - p_memdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-concat.c:375,20'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream-concat.c:377,3'
          Dst:             i_panic
        - Src:             'istream-concat.c:384,3'
          Dst:             i_stream_ref
        - Src:             'istream-concat.c:386,2'
          Dst:             i_panic
        - Src:             'istream-concat.c:392,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-concat.c:392,12'
          Dst:             p_malloc
        - Src:             'istream-concat.c:394,19'
          Dst:             p_memdup
        - Src:             'istream-concat.c:395,24'
          Dst:             malloc_multiply_check
        - Src:             'istream-concat.c:395,24'
          Dst:             p_malloc
        - Src:             'istream-concat.c:398,2'
          Dst:             i_stream_seek
        - Src:             'istream-concat.c:414,9'
          Dst:             i_stream_create
    - 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_crlf_read_common
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          135
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read_memarea
        - i_stream_try_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:20,9'
          Dst:             i_stream_get_data_size
        - Src:             'istream-crlf.c:22,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-crlf.c:24,4'
          Dst:             i_panic
        - Src:             'istream-crlf.c:30,10'
          Dst:             i_stream_get_data_size
        - Src:             'istream-crlf.c:31,3'
          Dst:             i_panic
        - Src:             'istream-crlf.c:34,7'
          Dst:             i_stream_try_alloc
    - functionName:    i_stream_crlf_read_lf
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          358
      EdgeCount:       62
      CyclomaticComplexity: 13
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_crlf_read_common
        - i_stream_crlf_read_lf
        - i_stream_get_data
        - i_stream_skip
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:126,8'
          Dst:             i_stream_crlf_read_common
        - Src:             'istream-crlf.c:130,9'
          Dst:             i_stream_get_data
        - Src:             'istream-crlf.c:159,8'
          Dst:             memchr
        - Src:             'istream-crlf.c:162,4'
          Dst:             i_memcpy
        - Src:             'istream-crlf.c:167,2'
          Dst:             i_panic
        - Src:             'istream-crlf.c:168,2'
          Dst:             i_panic
        - Src:             'istream-crlf.c:171,2'
          Dst:             i_stream_skip
        - Src:             'istream-crlf.c:175,3'
          Dst:             i_panic
        - Src:             'istream-crlf.c:176,10'
          Dst:             i_stream_crlf_read_lf
        - Src:             'istream-crlf.c:178,2'
          Dst:             i_panic
    - functionName:    i_stream_crlf_read_crlf
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          415
      EdgeCount:       77
      CyclomaticComplexity: 16
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_crlf_read_common
        - i_stream_get_data
        - i_stream_skip
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:48,8'
          Dst:             i_stream_crlf_read_common
        - Src:             'istream-crlf.c:53,9'
          Dst:             i_stream_get_data
        - Src:             'istream-crlf.c:72,3'
          Dst:             i_panic
        - Src:             'istream-crlf.c:73,9'
          Dst:             memchr
        - Src:             'istream-crlf.c:83,4'
          Dst:             i_memcpy
        - Src:             'istream-crlf.c:89,3'
          Dst:             i_panic
        - Src:             'istream-crlf.c:104,3'
          Dst:             i_panic
        - Src:             'istream-crlf.c:107,2'
          Dst:             i_panic
        - Src:             'istream-crlf.c:109,2'
          Dst:             i_stream_skip
        - Src:             'istream-crlf.c:112,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_stream_create_lf
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_crlf_full
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:208,9'
          Dst:             i_stream_create_crlf_full
    - functionName:    i_stream_create_crlf_full
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          78
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:188,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-crlf.c:188,12'
          Dst:             p_malloc
        - Src:             'istream-crlf.c:197,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-crlf.c:196,9'
          Dst:             i_stream_create
    - functionName:    i_stream_create_crlf
      functionSourceFile: '/src/dovecot/src/lib/istream-crlf.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_crlf_full
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-crlf.c:203,9'
          Dst:             i_stream_create_crlf_full
    - 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:    1
      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:    19
      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:    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_create_failure_at_eof
      functionSourceFile: '/src/dovecot/src/lib/istream-failure-at.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_failure_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-failure-at.c:95,9'
          Dst:             i_stream_create_failure_at
    - functionName:    i_stream_create_failure_at
      functionSourceFile: '/src/dovecot/src/lib/istream-failure-at.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          103
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-failure-at.c:73,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-failure-at.c:73,12'
          Dst:             p_malloc
        - Src:             'istream-failure-at.c:84,26'
          Dst:             i_strdup
        - Src:             'istream-failure-at.c:87,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-failure-at.c:86,9'
          Dst:             i_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:    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_failure_at_read
      functionSourceFile: '/src/dovecot/src/lib/istream-failure-at.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          221
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - i_stream_read_copy_from_parent
        - i_stream_seek
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-failure-at.c:31,2'
          Dst:             i_stream_seek
        - Src:             'istream-failure-at.c:34,8'
          Dst:             i_stream_read_copy_from_parent
        - Src:             'istream-failure-at.c:41,35'
          Dst:             __errno_location
        - Src:             'istream-failure-at.c:43,4'
          Dst:             io_stream_set_error
        - Src:             'istream-failure-at.c:51,4'
          Dst:             i_panic
        - Src:             'istream-failure-at.c:59,34'
          Dst:             __errno_location
        - Src:             'istream-failure-at.c:61,3'
          Dst:             io_stream_set_error
    - functionName:    i_stream_failure_at_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-failure-at.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 21
      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:             'istream-failure-at.c:20,2'
          Dst:             p_free_internal
    - 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:    2
      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:    5
      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:    2
      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:    2
      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:    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:    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:    16
      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:    16
      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:    i_stream_create_range
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:142,8'
          Dst:             i_stream_create_limit
    - functionName:    i_stream_create_limit
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          108
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:118,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-limit.c:118,12'
          Dst:             p_malloc
        - Src:             'istream-limit.c:131,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-limit.c:130,9'
          Dst:             i_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:    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_limit_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:23,16'
          Dst:             i_stream_seek
    - functionName:    i_stream_limit_read
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          299
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read_memarea
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:35,2'
          Dst:             i_stream_seek
        - Src:             'istream-limit.c:47,19'
          Dst:             i_stream_get_data
        - Src:             'istream-limit.c:51,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-limit.c:54,20'
          Dst:             i_stream_get_data
        - Src:             'istream-limit.c:70,2'
          Dst:             i_panic
    - functionName:    i_stream_limit_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:82,6'
          Dst:             i_stream_stat
    - functionName:    i_stream_limit_get_size
      functionSourceFile: '/src/dovecot/src/lib/istream-limit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-limit.c:105,6'
          Dst:             i_stream_stat
    - 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_read_parent
      functionSourceFile: '/src/dovecot/src/lib/istream-nonuls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read_memarea
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-nonuls.c:16,6'
          Dst:             i_stream_get_data_size
        - Src:             'istream-nonuls.c:19,8'
          Dst:             i_stream_read_memarea
        - Src:             'istream-nonuls.c:25,2'
          Dst:             i_stream_get_data_size
        - Src:             'istream-nonuls.c:25,2'
          Dst:             i_panic
    - functionName:    i_stream_nonuls_read
      functionSourceFile: '/src/dovecot/src/lib/istream-nonuls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          189
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_get_data
        - i_stream_read_parent
        - i_stream_skip
        - i_stream_try_alloc
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-nonuls.c:36,13'
          Dst:             i_stream_read_parent
        - Src:             'istream-nonuls.c:39,9'
          Dst:             i_stream_get_data
        - Src:             'istream-nonuls.c:40,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-nonuls.c:44,2'
          Dst:             i_panic
        - Src:             'istream-nonuls.c:46,6'
          Dst:             memchr
        - Src:             'istream-nonuls.c:49,3'
          Dst:             i_memcpy
        - Src:             'istream-nonuls.c:52,3'
          Dst:             i_memcpy
        - Src:             'istream-nonuls.c:59,2'
          Dst:             i_stream_skip
    - 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_create_nonuls
      functionSourceFile: '/src/dovecot/src/lib/istream-nonuls.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          84
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-nonuls.c:67,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-nonuls.c:67,12'
          Dst:             p_malloc
        - Src:             'istream-nonuls.c:78,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-nonuls.c:77,9'
          Dst:             i_stream_create
    - functionName:    i_stream_rawlog_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-rawlog.c:36,16'
          Dst:             i_stream_seek
    - functionName:    i_stream_rawlog_close
      functionSourceFile: '/src/dovecot/src/lib/istream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_close
        - iostream_rawlog_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-rawlog.c:20,2'
          Dst:             iostream_rawlog_close
        - Src:             'istream-rawlog.c:22,3'
          Dst:             i_stream_close
    - functionName:    i_stream_rawlog_read
      functionSourceFile: '/src/dovecot/src/lib/istream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          252
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read_memarea
        - i_stream_seek
        - iostream_rawlog_flush
        - iostream_rawlog_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-rawlog.c:47,2'
          Dst:             i_stream_seek
        - Src:             'istream-rawlog.c:53,19'
          Dst:             i_stream_get_data
        - Src:             'istream-rawlog.c:57,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-rawlog.c:60,20'
          Dst:             i_stream_get_data
        - Src:             'istream-rawlog.c:65,3'
          Dst:             iostream_rawlog_flush
        - Src:             'istream-rawlog.c:71,3'
          Dst:             iostream_rawlog_write
        - Src:             'istream-rawlog.c:75,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_stream_create_rawlog_from_stream
      functionSourceFile: '/src/dovecot/src/lib/istream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          119
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - iostream_rawlog_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-rawlog.c:105,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-rawlog.c:105,12'
          Dst:             p_malloc
        - Src:             'istream-rawlog.c:110,2'
          Dst:             iostream_rawlog_init
        - Src:             'istream-rawlog.c:120,11'
          Dst:             i_stream_get_fd
        - Src:             'istream-rawlog.c:119,9'
          Dst:             i_stream_create
    - functionName:    i_stream_create_rawlog
      functionSourceFile: '/src/dovecot/src/lib/istream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_create_rawlog_from_stream
        - o_stream_create_fd
        - o_stream_create_fd_autoclose
        - o_stream_set_name
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-rawlog.c:87,2'
          Dst:             i_panic
        - Src:             'istream-rawlog.c:88,2'
          Dst:             i_panic
        - Src:             'istream-rawlog.c:91,3'
          Dst:             o_stream_create_fd_autoclose
        - Src:             'istream-rawlog.c:92,3'
          Dst:             o_stream_create_fd
        - Src:             'istream-rawlog.c:94,6'
          Dst:             t_strdup_printf
        - Src:             'istream-rawlog.c:93,2'
          Dst:             o_stream_set_name
        - Src:             'istream-rawlog.c:95,9'
          Dst:             i_stream_create_rawlog_from_stream
    - 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:    i_stream_seekable_write_failed
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          150
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - i_panic
        - i_stream_alloc
        - i_stream_destroy
        - io_stream_set_error
        - p_free_internal
        - pread_full
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:250,20'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:252,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:253,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:257,9'
          Dst:             i_stream_alloc
        - Src:             'istream-seekable.c:260,6'
          Dst:             pread_full
        - Src:             'istream-seekable.c:261,43'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:265,29'
          Dst:             strerror
        - Src:             'istream-seekable.c:263,3'
          Dst:             io_stream_set_error
        - Src:             'istream-seekable.c:269,2'
          Dst:             i_stream_destroy
        - Src:             'istream-seekable.c:272,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:    read_more
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          171
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_get_data_size
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_memarea
        - io_stream_set_error
        - unref_streams
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:154,16'
          Dst:             i_stream_read_memarea
        - Src:             'istream-seekable.c:158,5'
          Dst:             i_stream_get_name
        - Src:             'istream-seekable.c:159,5'
          Dst:             i_stream_get_error
        - Src:             'istream-seekable.c:156,4'
          Dst:             io_stream_set_error
        - Src:             'istream-seekable.c:177,4'
          Dst:             unref_streams
        - Src:             'istream-seekable.c:182,10'
          Dst:             i_stream_get_data_size
    - functionName:    unref_streams
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:52,3'
          Dst:             i_stream_unref
    - functionName:    copy_to_temp_file
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          254
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_close_fd_path
        - i_error
        - i_panic
        - i_strdup
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_free_buffer
        - i_stream_get_data
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_read_memarea
        - i_stream_set_max_buffer_size
        - i_stream_set_name
        - t_strdup_printf
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:99,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:100,6'
          Dst:             write_full
        - Src:             'istream-seekable.c:101,8'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:101,8'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:102,4'
          Dst:             i_error
        - Src:             'istream-seekable.c:103,3'
          Dst:             i_close_fd_path
        - Src:             'istream-seekable.c:106,23'
          Dst:             i_strdup
        - Src:             'istream-seekable.c:110,22'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'istream-seekable.c:113,38'
          Dst:             i_stream_get_name
        - Src:             'istream-seekable.c:112,39'
          Dst:             t_strdup_printf
        - Src:             'istream-seekable.c:112,2'
          Dst:             i_stream_set_name
        - Src:             'istream-seekable.c:117,12'
          Dst:             i_stream_get_data
        - Src:             'istream-seekable.c:122,14'
          Dst:             i_stream_read_memarea
        - Src:             'istream-seekable.c:123,4'
          Dst:             i_panic
        - Src:             'istream-seekable.c:124,4'
          Dst:             i_panic
        - Src:             'istream-seekable.c:127,5'
          Dst:             i_stream_get_name
        - Src:             'istream-seekable.c:128,5'
          Dst:             i_stream_get_error
        - Src:             'istream-seekable.c:125,4'
          Dst:             i_error
        - Src:             'istream-seekable.c:129,4'
          Dst:             i_stream_destroy
        - Src:             'istream-seekable.c:137,2'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'istream-seekable.c:140,2'
          Dst:             i_stream_free_buffer
    - functionName:    read_from_buffer
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          327
      EdgeCount:       57
      CyclomaticComplexity: 11
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_get_data
        - i_stream_get_data_size
        - i_stream_skip
        - i_stream_try_alloc
        - read_from_buffer
        - read_more
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:198,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:199,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:205,11'
          Dst:             read_from_buffer
        - Src:             'istream-seekable.c:209,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:211,4'
          Dst:             i_stream_get_data_size
        - Src:             'istream-seekable.c:214,13'
          Dst:             read_more
        - Src:             'istream-seekable.c:220,10'
          Dst:             i_stream_get_data
        - Src:             'istream-seekable.c:221,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:227,21'
          Dst:             i_stream_try_alloc
        - Src:             'istream-seekable.c:234,3'
          Dst:             i_memcpy
        - Src:             'istream-seekable.c:237,3'
          Dst:             i_stream_skip
        - Src:             'istream-seekable.c:241,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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    seekable_fd_callback
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          64
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_close_fd_path
        - i_error
        - i_unlink
        - safe_mkstemp
        - str_append
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:550,9'
          Dst:             t_str_new
        - Src:             'istream-seekable.c:551,2'
          Dst:             str_append
        - Src:             'istream-seekable.c:552,7'
          Dst:             safe_mkstemp
        - Src:             'istream-seekable.c:554,60'
          Dst:             str_c
        - Src:             'istream-seekable.c:554,3'
          Dst:             i_error
        - Src:             'istream-seekable.c:559,6'
          Dst:             str_c
        - Src:             'istream-seekable.c:559,6'
          Dst:             i_unlink
        - Src:             'istream-seekable.c:561,3'
          Dst:             i_close_fd_path
        - Src:             'istream-seekable.c:565,12'
          Dst:             str_c
    - functionName:    i_stream_create_seekable_path
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     externalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_strdup
        - i_stream_create_concat
        - i_stream_create_seekable
        - inputs_are_seekable
        - seekable_fd_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:577,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:578,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:580,6'
          Dst:             inputs_are_seekable
        - Src:             'istream-seekable.c:581,10'
          Dst:             i_stream_create_concat
        - Src:             'istream-seekable.c:585,8'
          Dst:             i_strdup
        - Src:             'istream-seekable.c:583,11'
          Dst:             i_stream_create_seekable
        - Src:             'istream-seekable.c:583,11'
          Dst:             seekable_fd_callback
    - functionName:    inputs_are_seekable
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_create_seekable
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     externalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_create_concat
        - i_streams_merge
        - inputs_are_seekable
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:535,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:538,6'
          Dst:             inputs_are_seekable
        - Src:             'istream-seekable.c:539,10'
          Dst:             i_stream_create_concat
        - Src:             'istream-seekable.c:541,9'
          Dst:             i_streams_merge
    - functionName:    i_streams_merge
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     externalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          251
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - i_stream_alloc
        - i_stream_create
        - i_stream_get_data
        - i_stream_ref
        - i_stream_skip
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:471,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:477,3'
          Dst:             i_stream_ref
        - Src:             'istream-seekable.c:479,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:481,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-seekable.c:481,12'
          Dst:             p_malloc
        - Src:             'istream-seekable.c:488,19'
          Dst:             malloc_multiply_check
        - Src:             'istream-seekable.c:488,19'
          Dst:             p_malloc
        - Src:             'istream-seekable.c:489,2'
          Dst:             i_memcpy
        - Src:             'istream-seekable.c:505,8'
          Dst:             i_stream_create
        - Src:             'istream-seekable.c:509,9'
          Dst:             i_stream_get_data
        - Src:             'istream-seekable.c:511,3'
          Dst:             i_stream_alloc
        - Src:             'istream-seekable.c:511,3'
          Dst:             i_memcpy
        - Src:             'istream-seekable.c:513,3'
          Dst:             i_stream_skip
    - 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_seekable_close
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:44,2'
          Dst:             i_stream_close
    - functionName:    i_stream_seekable_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_free_buffer
        - i_stream_unref
        - p_free_internal
        - unref_streams
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:60,2'
          Dst:             i_stream_free_buffer
        - Src:             'istream-seekable.c:61,2'
          Dst:             i_stream_unref
        - Src:             'istream-seekable.c:62,2'
          Dst:             unref_streams
        - Src:             'istream-seekable.c:65,3'
          Dst:             p_free_internal
        - Src:             'istream-seekable.c:66,2'
          Dst:             p_free_internal
        - Src:             'istream-seekable.c:67,2'
          Dst:             p_free_internal
        - Src:             'istream-seekable.c:68,2'
          Dst:             p_free_internal
    - functionName:    i_stream_seekable_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:81,3'
          Dst:             i_stream_set_max_buffer_size
        - Src:             'istream-seekable.c:83,3'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    i_stream_seekable_read
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          494
      EdgeCount:       73
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - copy_to_temp_file
        - i_panic
        - i_strdup
        - i_stream_get_data
        - i_stream_get_data_size
        - i_stream_read_memarea
        - i_stream_seek
        - i_stream_seekable_write_failed
        - i_stream_skip
        - i_stream_sync
        - i_unreached
        - i_warning
        - io_stream_set_error
        - read_from_buffer
        - read_more
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:285,7'
          Dst:             read_from_buffer
        - Src:             'istream-seekable.c:289,4'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:290,44'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:292,4'
          Dst:             io_stream_set_error
        - Src:             'istream-seekable.c:300,7'
          Dst:             copy_to_temp_file
        - Src:             'istream-seekable.c:302,9'
          Dst:             read_from_buffer
        - Src:             'istream-seekable.c:303,5'
          Dst:             i_unreached
        - Src:             'istream-seekable.c:306,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:313,2'
          Dst:             i_panic
        - Src:             'istream-seekable.c:317,7'
          Dst:             i_stream_get_data_size
        - Src:             'istream-seekable.c:318,10'
          Dst:             read_more
        - Src:             'istream-seekable.c:324,10'
          Dst:             i_stream_get_data
        - Src:             'istream-seekable.c:325,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:326,9'
          Dst:             write
        - Src:             'istream-seekable.c:327,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:330,45'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:332,5'
          Dst:             io_stream_set_error
        - Src:             'istream-seekable.c:338,34'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:340,5'
          Dst:             i_strdup
        - Src:             'istream-seekable.c:341,8'
          Dst:             i_stream_seekable_write_failed
        - Src:             'istream-seekable.c:343,9'
          Dst:             read_from_buffer
        - Src:             'istream-seekable.c:344,5'
          Dst:             i_unreached
        - Src:             'istream-seekable.c:346,4'
          Dst:             __errno_location
        - Src:             'istream-seekable.c:347,4'
          Dst:             i_warning
        - Src:             'istream-seekable.c:352,3'
          Dst:             i_stream_sync
        - Src:             'istream-seekable.c:353,3'
          Dst:             i_stream_skip
        - Src:             'istream-seekable.c:357,2'
          Dst:             i_stream_seek
        - Src:             'istream-seekable.c:358,8'
          Dst:             i_stream_read_memarea
        - Src:             'istream-seekable.c:367,19'
          Dst:             i_stream_get_data
    - functionName:    i_stream_seekable_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          178
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_seek
        - i_stream_seekable_read
        - i_stream_skip
        - i_stream_stat
        - unref_streams
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:395,3'
          Dst:             i_stream_skip
        - Src:             'istream-seekable.c:397,18'
          Dst:             i_stream_seekable_read
        - Src:             'istream-seekable.c:402,4'
          Dst:             i_stream_get_name
        - Src:             'istream-seekable.c:400,3'
          Dst:             i_panic
        - Src:             'istream-seekable.c:405,2'
          Dst:             i_stream_skip
        - Src:             'istream-seekable.c:407,2'
          Dst:             i_stream_seek
        - Src:             'istream-seekable.c:408,2'
          Dst:             unref_streams
        - Src:             'istream-seekable.c:415,7'
          Dst:             i_stream_stat
        - Src:             'istream-seekable.c:420,3'
          Dst:             i_panic
    - functionName:    i_stream_seekable_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_default_seek_nonseekable
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:437,3'
          Dst:             i_stream_default_seek_nonseekable
    - functionName:    i_stream_seekable_snapshot
      functionSourceFile: '/src/dovecot/src/lib/istream-seekable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_default_snapshot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-seekable.c:452,10'
          Dst:             i_stream_default_snapshot
    - functionName:    i_stream_sized_parent_read
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          87
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_data
        - i_stream_read_memarea
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:54,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream-sized.c:57,20'
          Dst:             i_stream_get_data
    - functionName:    i_stream_sized_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:144,6'
          Dst:             i_stream_stat
    - functionName:    i_stream_sized_read
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          340
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_seek
        - i_stream_sized_parent_read
        - io_stream_set_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:72,2'
          Dst:             i_stream_seek
        - Src:             'istream-sized.c:78,19'
          Dst:             i_stream_get_data
        - Src:             'istream-sized.c:82,14'
          Dst:             i_stream_sized_parent_read
        - Src:             'istream-sized.c:90,9'
          Dst:             i_stream_sized_parent_read
        - Src:             'istream-sized.c:106,4'
          Dst:             io_stream_set_error
        - Src:             'istream-sized.c:122,3'
          Dst:             io_stream_set_error
        - Src:             'istream-sized.c:129,2'
          Dst:             i_panic
    - functionName:    i_stream_sized_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:28,3'
          Dst:             i_stream_seek
    - 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_create_sized_with_callback
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_sized_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:229,12'
          Dst:             i_stream_create_sized_common
    - functionName:    i_stream_create_sized_common
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          105
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:159,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-sized.c:159,12'
          Dst:             p_malloc
        - Src:             'istream-sized.c:171,10'
          Dst:             i_stream_get_fd
        - Src:             'istream-sized.c:170,8'
          Dst:             i_stream_create
    - functionName:    i_stream_create_min_sized_range
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_sized_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:214,8'
          Dst:             i_stream_create_sized_range
    - functionName:    i_stream_create_sized_range
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_sized
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:193,8'
          Dst:             i_stream_create_sized
    - functionName:    i_stream_create_sized
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     externalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_sized_common
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:180,12'
          Dst:             i_stream_create_sized_common
    - functionName:    i_stream_create_sized_default_error_callback
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:37,10'
          Dst:             t_strdup_printf
        - Src:             'istream-sized.c:41,10'
          Dst:             t_strdup_printf
    - functionName:    i_stream_create_min_sized
      functionSourceFile: '/src/dovecot/src/lib/istream-sized.c'
      linkageType:     externalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 206
      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_sized
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-sized.c:202,7'
          Dst:             i_stream_create_sized
    - 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:    tee_streams_update_buffer
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          172
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_get_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:29,9'
          Dst:             i_stream_get_data
        - Src:             'istream-tee.c:38,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:41,3'
          Dst:             i_panic
    - functionName:    tee_streams_skip
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_skip
        - tee_streams_update_buffer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:64,3'
          Dst:             i_stream_skip
        - Src:             'istream-tee.c:65,3'
          Dst:             tee_streams_update_buffer
    - functionName:    tee_i_stream_child_is_waiting
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     externalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_tee_sync
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          45
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_sync
        - tee_streams_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:200,2'
          Dst:             tee_streams_skip
        - Src:             'istream-tee.c:201,6'
          Dst:             i_stream_get_data_size
        - Src:             'istream-tee.c:202,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:205,2'
          Dst:             i_stream_sync
    - functionName:    i_stream_tee_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:189,6'
          Dst:             i_stream_stat
    - functionName:    i_stream_tee_read
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          314
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_get_data_size
        - i_stream_read
        - tee_streams_skip
        - tee_streams_update_buffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:137,3'
          Dst:             tee_streams_update_buffer
        - Src:             'istream-tee.c:139,9'
          Dst:             i_stream_get_data
        - Src:             'istream-tee.c:148,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:149,3'
          Dst:             tee_streams_skip
        - Src:             'istream-tee.c:150,9'
          Dst:             i_stream_read
        - Src:             'istream-tee.c:152,11'
          Dst:             i_stream_get_data_size
        - Src:             'istream-tee.c:163,3'
          Dst:             tee_streams_update_buffer
        - Src:             'istream-tee.c:164,10'
          Dst:             i_stream_get_data
        - Src:             'istream-tee.c:167,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:168,3'
          Dst:             tee_streams_update_buffer
        - Src:             'istream-tee.c:169,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:172,2'
          Dst:             i_panic
        - Src:             'istream-tee.c:174,2'
          Dst:             i_panic
        - Src:             'istream-tee.c:177,2'
          Dst:             i_panic
    - functionName:    i_stream_tee_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:121,2'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    i_stream_tee_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          153
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_skip
        - i_stream_unref
        - p_free_internal
        - tee_streams_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:99,3'
          Dst:             i_panic
        - Src:             'istream-tee.c:100,3'
          Dst:             i_stream_skip
        - Src:             'istream-tee.c:103,3'
          Dst:             i_stream_unref
        - Src:             'istream-tee.c:104,3'
          Dst:             p_free_internal
        - Src:             'istream-tee.c:106,3'
          Dst:             tee_streams_skip
    - functionName:    i_stream_tee_close
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tee_streams_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:76,2'
          Dst:             tee_streams_skip
    - functionName:    tee_i_stream_create_child
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          90
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_get_fd
        - i_stream_get_name
        - i_stream_set_name
        - i_stream_unref
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:227,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-tee.c:227,12'
          Dst:             p_malloc
        - Src:             'istream-tee.c:243,50'
          Dst:             i_stream_get_fd
        - Src:             'istream-tee.c:243,8'
          Dst:             i_stream_create
        - Src:             'istream-tee.c:245,47'
          Dst:             i_stream_get_name
        - Src:             'istream-tee.c:245,2'
          Dst:             i_stream_set_name
        - Src:             'istream-tee.c:247,2'
          Dst:             i_stream_unref
    - 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:    tee_i_stream_create
      functionSourceFile: '/src/dovecot/src/lib/istream-tee.c'
      linkageType:     externalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_create_limit
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-tee.c:212,8'
          Dst:             malloc_multiply_check
        - Src:             'istream-tee.c:212,8'
          Dst:             p_malloc
        - Src:             'istream-tee.c:214,3'
          Dst:             i_stream_ref
        - Src:             'istream-tee.c:217,16'
          Dst:             i_stream_create_limit
    - functionName:    i_stream_unix_get_read_fd
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_unix_unset_read_fd
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 101
      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:    i_stream_unix_set_read_fd
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      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:    i_stream_unix_read
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          243
      EdgeCount:       47
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fd_read
        - i_panic
        - i_stream_file_read
        - i_stream_try_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-unix.c:33,10'
          Dst:             i_stream_file_read
        - Src:             'istream-unix.c:35,2'
          Dst:             i_panic
        - Src:             'istream-unix.c:36,2'
          Dst:             i_panic
        - Src:             'istream-unix.c:37,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-unix.c:40,8'
          Dst:             fd_read
        - Src:             'istream-unix.c:53,8'
          Dst:             __errno_location
        - Src:             'istream-unix.c:53,26'
          Dst:             __errno_location
        - Src:             'istream-unix.c:57,4'
          Dst:             __errno_location
        - Src:             'istream-unix.c:57,4'
          Dst:             i_panic
        - Src:             'istream-unix.c:60,4'
          Dst:             __errno_location
        - Src:             'istream-unix.c:60,4'
          Dst:             i_panic
        - Src:             'istream-unix.c:61,35'
          Dst:             __errno_location
    - functionName:    i_stream_unix_close
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_close_fd_path
        - i_stream_file_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-unix.c:21,2'
          Dst:             i_close_fd_path
        - Src:             'istream-unix.c:22,2'
          Dst:             i_stream_file_close
    - 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_create_unix
      functionSourceFile: '/src/dovecot/src/lib/istream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_create_file_common
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-unix.c:74,2'
          Dst:             i_panic
        - Src:             'istream-unix.c:76,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-unix.c:76,12'
          Dst:             p_malloc
        - Src:             'istream-unix.c:78,10'
          Dst:             i_stream_create_file_common
    - 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:    37
      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:    105
      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:    33
      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:    109
      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:    24
      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:    4
      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:    7
      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:    74
      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:    132
      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:    7
      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:    64
      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:    27
      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:    7
      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:    3
      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:    27
      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:    33
      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:    2
      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:    6
      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:    4
      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:    19
      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:    21
      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:    9
      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:    41
      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:    5
      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:    19
      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:    13
      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:    2
      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:    5
      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:    18
      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:    9
      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:    3
      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:    5
      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:    9
      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:    13
      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:    13
      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:    4
      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:    6
      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:    1
      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:    3
      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:    4
      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:    57
      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:    1
      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:    25
      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:    4
      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:    7
      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:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:43,2'
          Dst:             i_stream_close_full
        - Src:             'istream.c:44,2'
          Dst:             i_stream_unref
    - 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:    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:    11
      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:    38
      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:    11
      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:    6
      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:    9
      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:    88
      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:    2
      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:    22
      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:    11
      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:    2
      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:    48
      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:    2
      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:    2
      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:    2
      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:    2
      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:    359
      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:    129
      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:    2
      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:    15
      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:    2
      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:    1
      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:    17
      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:    31
      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:    1
      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:    1
      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:    8
      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:    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:    17
      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:    15
      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:    81
      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:    10
      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:    1
      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:    65
      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:    1
      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:    2
      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:    2
      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:    10
      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:    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:    2
      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:    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:    2
      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:    1
      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:    3
      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:    5
      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:    6
      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:    1
      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:    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:    2
      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:    2
      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:    2
      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:    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:    2
      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:    6
      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:    5
      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:    4
      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:    19
      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:    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:    35
      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:    11
      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:    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:    6
      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:    17
      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:    6
      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:    1
      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:    7
      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:    5
      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:    2
      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:    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:    198
      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:    168
      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:    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:    2
      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:    6
      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:    stat_first_parent
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - stat
        - strcmp
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:178,9'
          Dst:             stat
        - Src:             'mkdir-parents.c:179,7'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:179,26'
          Dst:             strcmp
        - Src:             'mkdir-parents.c:183,7'
          Dst:             strrchr
        - Src:             'mkdir-parents.c:187,11'
          Dst:             t_strdup_until
    - functionName:    mkdir_parents
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir_parents_chown
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:170,9'
          Dst:             mkdir_parents_chown
    - functionName:    mkdir_parents_chown
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir_parents_chown_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:159,9'
          Dst:             mkdir_parents_chown_full
    - functionName:    mkdir_parents_chown_full
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_panic
        - mkdir_chown_full
        - mkdir_parents_chown_full
        - strrchr
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:133,6'
          Dst:             mkdir_chown_full
        - Src:             'mkdir-parents.c:134,7'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:138,7'
          Dst:             strrchr
        - Src:             'mkdir-parents.c:142,3'
          Dst:             t_push
        - Src:             'mkdir-parents.c:143,35'
          Dst:             t_strdup_until
        - Src:             'mkdir-parents.c:143,10'
          Dst:             mkdir_parents_chown_full
        - Src:             'mkdir-parents.c:146,5'
          Dst:             t_pop
        - Src:             'mkdir-parents.c:146,5'
          Dst:             i_panic
        - Src:             'mkdir-parents.c:147,18'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:151,7'
          Dst:             mkdir_chown_full
    - functionName:    mkdir_chown_full
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         75
      ICount:          389
      EdgeCount:       100
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchmod
        - fchown
        - i_close_fd_path
        - i_error
        - i_getgrgid
        - i_getpwuid
        - i_panic
        - mkdir
        - open
        - rmdir
        - str_c
        - str_printfa
        - t_str_new
        - umask
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:32,14'
          Dst:             umask
        - Src:             'mkdir-parents.c:33,9'
          Dst:             mkdir
        - Src:             'mkdir-parents.c:34,3'
          Dst:             umask
        - Src:             'mkdir-parents.c:42,8'
          Dst:             open
        - Src:             'mkdir-parents.c:45,7'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:46,4'
          Dst:             i_error
        - Src:             'mkdir-parents.c:53,7'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:53,26'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:58,4'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:60,3'
          Dst:             i_panic
        - Src:             'mkdir-parents.c:63,6'
          Dst:             fchown
        - Src:             'mkdir-parents.c:64,3'
          Dst:             i_close_fd_path
        - Src:             'mkdir-parents.c:65,16'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:66,7'
          Dst:             rmdir
        - Src:             'mkdir-parents.c:66,26'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:67,4'
          Dst:             i_error
        - Src:             'mkdir-parents.c:68,3'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:70,7'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:71,18'
          Dst:             eperm_error_get_chgrp
        - Src:             'mkdir-parents.c:71,4'
          Dst:             i_error
        - Src:             'mkdir-parents.c:76,9'
          Dst:             t_str_new
        - Src:             'mkdir-parents.c:77,3'
          Dst:             str_printfa
        - Src:             'mkdir-parents.c:82,8'
          Dst:             i_getpwuid
        - Src:             'mkdir-parents.c:83,5'
          Dst:             str_printfa
        - Src:             'mkdir-parents.c:86,3'
          Dst:             str_printfa
        - Src:             'mkdir-parents.c:91,8'
          Dst:             i_getgrgid
        - Src:             'mkdir-parents.c:92,5'
          Dst:             str_printfa
        - Src:             'mkdir-parents.c:94,3'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:95,29'
          Dst:             str_c
        - Src:             'mkdir-parents.c:95,3'
          Dst:             i_error
        - Src:             'mkdir-parents.c:101,7'
          Dst:             fchmod
        - Src:             'mkdir-parents.c:102,17'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:103,8'
          Dst:             rmdir
        - Src:             'mkdir-parents.c:103,27'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:104,5'
          Dst:             i_error
        - Src:             'mkdir-parents.c:105,4'
          Dst:             __errno_location
        - Src:             'mkdir-parents.c:106,4'
          Dst:             i_error
        - Src:             'mkdir-parents.c:107,4'
          Dst:             i_close_fd_path
        - Src:             'mkdir-parents.c:111,2'
          Dst:             i_close_fd_path
    - functionName:    mkdir_parents_chgrp
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir_parents_chown_full
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:165,9'
          Dst:             mkdir_parents_chown_full
    - functionName:    mkdir_chgrp
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir_chown_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:123,9'
          Dst:             mkdir_chown_full
    - functionName:    mkdir_chown
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir_chown_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mkdir-parents.c:117,9'
          Dst:             mkdir_chown_full
    - functionName:    mkdir_get_executable_mode
      functionSourceFile: '/src/dovecot/src/lib/mkdir-parents.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    munmap_anon
      functionSourceFile: '/src/dovecot/src/lib/mmap-anon.c'
      linkageType:     externalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - munmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-anon.c:180,9'
          Dst:             munmap
    - functionName:    mremap_anon
      functionSourceFile: '/src/dovecot/src/lib/mmap-anon.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mremap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-anon.c:175,9'
          Dst:             mremap
    - functionName:    mremap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mmap_anon
      functionSourceFile: '/src/dovecot/src/lib/mmap-anon.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-anon.c:168,9'
          Dst:             mmap
    - functionName:    mmap_get_page_size
      functionSourceFile: '/src/dovecot/src/lib/mmap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - sysconf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-util.c:48,13'
          Dst:             sysconf
        - Src:             'mmap-util.c:49,2'
          Dst:             i_panic
        - Src:             'mmap-util.c:50,2'
          Dst:             i_panic
    - functionName:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mmap_rw_file
      functionSourceFile: '/src/dovecot/src/lib/mmap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mmap_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-util.c:39,9'
          Dst:             mmap_file
    - functionName:    mmap_file
      functionSourceFile: '/src/dovecot/src/lib/mmap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - fstat
        - i_panic
        - mmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-util.c:12,6'
          Dst:             fstat
        - Src:             'mmap-util.c:27,2'
          Dst:             i_panic
        - Src:             'mmap-util.c:29,9'
          Dst:             mmap
    - functionName:    mmap_ro_file
      functionSourceFile: '/src/dovecot/src/lib/mmap-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mmap_file
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mmap-util.c:34,9'
          Dst:             mmap_file
    - 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:    4
      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:    2
      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:    5
      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:    3
      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:    4
      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:    3
      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:    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:    6
      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:    4
      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:    6
      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:    72
      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:    2
      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:    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:    2
      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:    12
      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:    3
      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:    3
      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:    1
      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:    4
      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:    1
      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:    1
      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:    3
      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:    8
      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:    4
      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:    3
      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:    2
      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:    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:    5
      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:    1
      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:    2
      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:    1
      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:    3
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:86,9'
          Dst:             net_ip_cmp
    - functionName:    nfs_flush_file_handle_cache_dir
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nfs_flush_chown_uid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:307,2'
          Dst:             nfs_flush_chown_uid
    - functionName:    nfs_flush_chown_uid
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - chmod
        - i_error
        - nfs_flush_file_handle_cache_parent_dir
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:166,6'
          Dst:             stat
        - Src:             'nfs-workarounds.c:169,7'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:173,7'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:174,4'
          Dst:             nfs_flush_file_handle_cache_parent_dir
        - Src:             'nfs-workarounds.c:177,3'
          Dst:             i_error
        - Src:             'nfs-workarounds.c:182,6'
          Dst:             chmod
        - Src:             'nfs-workarounds.c:183,7'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:187,7'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:188,4'
          Dst:             nfs_flush_file_handle_cache_parent_dir
        - Src:             'nfs-workarounds.c:191,3'
          Dst:             i_error
    - functionName:    nfs_flush_file_handle_cache_parent_dir
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - nfs_flush_file_handle_cache_dir
        - strrchr
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:371,6'
          Dst:             strrchr
        - Src:             'nfs-workarounds.c:372,2'
          Dst:             t_push
        - Src:             'nfs-workarounds.c:374,10'
          Dst:             nfs_flush_file_handle_cache_dir
        - Src:             'nfs-workarounds.c:376,42'
          Dst:             t_strdup_until
        - Src:             'nfs-workarounds.c:376,10'
          Dst:             nfs_flush_file_handle_cache_dir
        - Src:             'nfs-workarounds.c:378,4'
          Dst:             t_pop
        - Src:             'nfs-workarounds.c:378,4'
          Dst:             i_panic
    - functionName:    chmod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nfs_flush_fcntl
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - alarm
        - fcntl
        - i_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:249,2'
          Dst:             alarm
        - Src:             'nfs-workarounds.c:250,8'
          Dst:             fcntl
        - Src:             'nfs-workarounds.c:251,2'
          Dst:             alarm
        - Src:             'nfs-workarounds.c:254,7'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:258,3'
          Dst:             i_error
        - Src:             'nfs-workarounds.c:263,8'
          Dst:             fcntl
    - functionName:    nfs_flush_read_cache_unlocked
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - nfs_flush_attr_cache_fd_locked
        - nfs_flush_fcntl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:401,7'
          Dst:             nfs_flush_fcntl
        - Src:             'nfs-workarounds.c:402,3'
          Dst:             nfs_flush_attr_cache_fd_locked
    - functionName:    nfs_flush_attr_cache_fd_locked
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nfs_flush_read_cache_locked
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nfs_flush_file_handle_cache
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nfs_flush_file_handle_cache_parent_dir
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:383,2'
          Dst:             nfs_flush_file_handle_cache_parent_dir
    - functionName:    nfs_flush_attr_cache_maybe_locked
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nfs_flush_chown_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:287,2'
          Dst:             nfs_flush_chown_uid
    - functionName:    nfs_flush_attr_cache_unlocked
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_close_fd_path
        - nfs_flush_file_handle_cache_parent_dir
        - open
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:273,7'
          Dst:             open
        - Src:             'nfs-workarounds.c:275,3'
          Dst:             i_close_fd_path
        - Src:             'nfs-workarounds.c:276,11'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:281,3'
          Dst:             nfs_flush_file_handle_cache_parent_dir
    - functionName:    nfs_safe_link
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - link
        - stat
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:123,7'
          Dst:             stat
        - Src:             'nfs-workarounds.c:128,6'
          Dst:             link
        - Src:             'nfs-workarounds.c:134,13'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:138,6'
          Dst:             stat
        - Src:             'nfs-workarounds.c:141,3'
          Dst:             __errno_location
    - functionName:    nfs_safe_lstat_callback
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lstat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:109,9'
          Dst:             lstat
    - functionName:    nfs_safe_lstat
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nfs_safe_do
        - nfs_safe_lstat_callback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:114,9'
          Dst:             nfs_safe_do
        - Src:             'nfs-workarounds.c:114,9'
          Dst:             nfs_safe_lstat_callback
    - functionName:    nfs_safe_do
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - nfs_flush_file_handle_cache
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:56,33'
          Dst:             __errno_location
        - Src:             'nfs-workarounds.c:62,3'
          Dst:             nfs_flush_file_handle_cache
    - functionName:    nfs_safe_stat_callback
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:97,9'
          Dst:             stat
    - functionName:    nfs_safe_stat
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nfs_safe_do
        - nfs_safe_stat_callback
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:102,9'
          Dst:             nfs_safe_do
        - Src:             'nfs-workarounds.c:102,9'
          Dst:             nfs_safe_stat_callback
    - functionName:    nfs_safe_open_callback
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:76,12'
          Dst:             open
    - functionName:    nfs_safe_open
      functionSourceFile: '/src/dovecot/src/lib/nfs-workarounds.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - nfs_safe_do
        - nfs_safe_open_callback
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'nfs-workarounds.c:84,9'
          Dst:             i_panic
        - Src:             'nfs-workarounds.c:87,6'
          Dst:             nfs_safe_do
        - Src:             'nfs-workarounds.c:87,6'
          Dst:             nfs_safe_open_callback
    - functionName:    bits_required32
      functionSourceFile: '/src/dovecot/src/lib/./bits.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    numpack_decode32
      functionSourceFile: '/src/dovecot/src/lib/numpack.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - numpack_decode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'numpack.c:50,6'
          Dst:             numpack_decode
    - functionName:    numpack_decode
      functionSourceFile: '/src/dovecot/src/lib/numpack.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - bits_required8
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'numpack.c:37,10'
          Dst:             bits_required8
    - functionName:    bits_required8
      functionSourceFile: '/src/dovecot/src/lib/./bits.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bits_required32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './bits.h:42,40'
          Dst:             bits_required32
    - functionName:    numpack_encode
      functionSourceFile: '/src/dovecot/src/lib/numpack.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append_c
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'numpack.c:11,3'
          Dst:             buffer_append_c
        - Src:             'numpack.c:15,2'
          Dst:             buffer_append_c
    - functionName:    o_stream_buffer_get_buffer_used_size
      functionSourceFile: '/src/dovecot/src/lib/ostream-buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_buffer_write_at
      functionSourceFile: '/src/dovecot/src/lib/ostream-buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-buffer.c:30,2'
          Dst:             buffer_write
    - functionName:    o_stream_buffer_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream-buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          151
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-buffer.c:50,3'
          Dst:             buffer_write
    - functionName:    o_stream_buffer_seek
      functionSourceFile: '/src/dovecot/src/lib/ostream-buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      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:    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:    o_stream_create_buffer
      functionSourceFile: '/src/dovecot/src/lib/ostream-buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - o_stream_create
        - o_stream_set_name
        - p_malloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-buffer.c:73,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-buffer.c:73,12'
          Dst:             p_malloc
        - Src:             'ostream-buffer.c:85,11'
          Dst:             o_stream_create
        - Src:             'ostream-buffer.c:86,2'
          Dst:             o_stream_set_name
    - 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:    o_stream_create_failure_at_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream-failure-at.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-failure-at.c:116,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-failure-at.c:116,12'
          Dst:             p_malloc
        - Src:             'ostream-failure-at.c:119,26'
          Dst:             i_strdup
        - Src:             'ostream-failure-at.c:122,11'
          Dst:             o_stream_get_fd
        - Src:             'ostream-failure-at.c:121,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:    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_failure_at_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream-failure-at.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - io_stream_set_error
        - o_stream_flush_parent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-failure-at.c:87,3'
          Dst:             io_stream_set_error
        - Src:             'ostream-failure-at.c:89,34'
          Dst:             __errno_location
        - Src:             'ostream-failure-at.c:92,9'
          Dst:             o_stream_flush_parent
    - functionName:    o_stream_failure_at_destroy
      functionSourceFile: '/src/dovecot/src/lib/ostream-failure-at.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          35
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-failure-at.c:21,2'
          Dst:             p_free_internal
        - Src:             'ostream-failure-at.c:22,2'
          Dst:             o_stream_unref
    - functionName:    o_stream_failure_at_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream-failure-at.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          222
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - io_stream_set_error
        - malloc_multiply_check
        - o_stream_copy_error_from_parent
        - o_stream_sendv
        - p_free_internal
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-failure-at.c:51,3'
          Dst:             io_stream_set_error
        - Src:             'ostream-failure-at.c:53,34'
          Dst:             __errno_location
        - Src:             'ostream-failure-at.c:59,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-failure-at.c:59,12'
          Dst:             p_malloc
        - Src:             'ostream-failure-at.c:69,8'
          Dst:             o_stream_sendv
        - Src:             'ostream-failure-at.c:70,2'
          Dst:             p_free_internal
        - Src:             'ostream-failure-at.c:73,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    o_stream_create_failure_at
      functionSourceFile: '/src/dovecot/src/lib/ostream-failure-at.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-failure-at.c:101,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-failure-at.c:101,12'
          Dst:             p_malloc
        - Src:             'ostream-failure-at.c:106,26'
          Dst:             i_strdup
        - Src:             'ostream-failure-at.c:108,11'
          Dst:             o_stream_get_fd
        - Src:             'ostream-failure-at.c:107,9'
          Dst:             o_stream_create
    - 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:    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:    4
      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:    2
      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:    3
      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:    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:    15
      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:    5
      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:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1143,9'
          Dst:             o_stream_create_fd_common
    - functionName:    o_stream_rawlog_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iostream_rawlog_flush
        - o_stream_flush_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-rawlog.c:60,3'
          Dst:             iostream_rawlog_flush
        - Src:             'ostream-rawlog.c:61,9'
          Dst:             o_stream_flush_parent
    - functionName:    o_stream_rawlog_close
      functionSourceFile: '/src/dovecot/src/lib/ostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iostream_rawlog_close
        - o_stream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-rawlog.c:19,2'
          Dst:             iostream_rawlog_close
        - Src:             'ostream-rawlog.c:21,3'
          Dst:             o_stream_close
    - functionName:    o_stream_rawlog_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream-rawlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          137
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - iostream_rawlog_write
        - o_stream_copy_error_from_parent
        - o_stream_sendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-rawlog.c:33,13'
          Dst:             o_stream_sendv
        - Src:             'ostream-rawlog.c:34,3'
          Dst:             o_stream_copy_error_from_parent
        - Src:             'ostream-rawlog.c:40,4'
          Dst:             iostream_rawlog_write
        - Src:             'ostream-rawlog.c:44,4'
          Dst:             iostream_rawlog_write
    - 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:    o_stream_create_rawlog_from_stream
      functionSourceFile: '/src/dovecot/src/lib/ostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iostream_rawlog_init
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-rawlog.c:90,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-rawlog.c:90,12'
          Dst:             p_malloc
        - Src:             'ostream-rawlog.c:96,2'
          Dst:             iostream_rawlog_init
        - Src:             'ostream-rawlog.c:98,11'
          Dst:             o_stream_get_fd
        - Src:             'ostream-rawlog.c:97,9'
          Dst:             o_stream_create
    - functionName:    o_stream_create_rawlog
      functionSourceFile: '/src/dovecot/src/lib/ostream-rawlog.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - o_stream_create_fd
        - o_stream_create_fd_autoclose
        - o_stream_create_rawlog_from_stream
        - o_stream_set_name
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-rawlog.c:71,2'
          Dst:             i_panic
        - Src:             'ostream-rawlog.c:72,2'
          Dst:             i_panic
        - Src:             'ostream-rawlog.c:75,3'
          Dst:             o_stream_create_fd_autoclose
        - Src:             'ostream-rawlog.c:76,3'
          Dst:             o_stream_create_fd
        - Src:             'ostream-rawlog.c:79,6'
          Dst:             t_strdup_printf
        - Src:             'ostream-rawlog.c:78,2'
          Dst:             o_stream_set_name
        - Src:             'ostream-rawlog.c:80,9'
          Dst:             o_stream_create_rawlog_from_stream
    - functionName:    o_stream_unix_write_fd
      functionSourceFile: '/src/dovecot/src/lib/ostream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-unix.c:87,2'
          Dst:             i_panic
    - functionName:    o_stream_unix_writev
      functionSourceFile: '/src/dovecot/src/lib/ostream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fd_send
        - i_panic
        - o_stream_file_writev
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-unix.c:31,10'
          Dst:             o_stream_file_writev
        - Src:             'ostream-unix.c:37,2'
          Dst:             i_panic
        - Src:             'ostream-unix.c:38,8'
          Dst:             fd_send
        - Src:             'ostream-unix.c:41,14'
          Dst:             t_strdup_printf
        - Src:             'ostream-unix.c:57,8'
          Dst:             o_stream_file_writev
        - Src:             'ostream-unix.c:59,12'
          Dst:             __errno_location
        - Src:             'ostream-unix.c:59,31'
          Dst:             __errno_location
    - functionName:    o_stream_unix_close
      functionSourceFile: '/src/dovecot/src/lib/ostream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_file_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-unix.c:16,2'
          Dst:             o_stream_file_close
    - 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:    o_stream_create_unix
      functionSourceFile: '/src/dovecot/src/lib/ostream-unix.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - o_stream_create_file_common
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-unix.c:69,2'
          Dst:             i_panic
        - Src:             'ostream-unix.c:71,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-unix.c:71,12'
          Dst:             p_malloc
        - Src:             'ostream-unix.c:73,11'
          Dst:             o_stream_create_file_common
    - 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:    8
      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:    10
      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:    10
      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:    5
      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:    6
      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:    8
      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:    8
      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:    8
      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:    28
      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:    5
      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:    9
      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:    7
      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:    9
      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:    3
      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:    22
      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:    28
      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:    14
      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:    5
      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:    27
      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:    18
      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:    5
      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:    8
      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:    15
      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:    2
      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:    2
      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:    8
      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:    9
      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:    4
      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:    2
      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:    35
      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:    60
      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:    4
      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:    5
      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:    18
      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:    13
      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:    3
      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:    1
      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:    2
      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:    38
      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:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:43,9'
          Dst:             strerror
    - 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:    1
      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:    4
      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:    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:    4
      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:    6
      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:    1
      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:    4
      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:    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:    1
      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:    6
      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:    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:    3
      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:    4
      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:    5
      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:    6
      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:    4
      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:    2
      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:    2
      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:    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:    parse_field
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_begins_with
        - str_to_uint64
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:36,6'
          Dst:             strlen
        - Src:             'process-stat.c:36,6'
          Dst:             strncmp
        - Src:             'process-stat.c:36,6'
          Dst:             str_begins_with
        - Src:             'process-stat.c:37,31'
          Dst:             strlen
        - Src:             'process-stat.c:37,10'
          Dst:             str_to_uint64
    - functionName:    buffer_parse
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - parse_field
        - str_array_length
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:44,8'
          Dst:             t_strsplit
        - Src:             'process-stat.c:45,27'
          Dst:             str_array_length
        - Src:             'process-stat.c:48,7'
          Dst:             parse_field
    - functionName:    parse_key_val_file
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_parse
        - read_file_buffer
        - str_c
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:109,18'
          Dst:             t_str_new
        - Src:             'process-stat.c:110,6'
          Dst:             read_file_buffer
        - Src:             'process-stat.c:115,15'
          Dst:             str_c
        - Src:             'process-stat.c:115,2'
          Dst:             buffer_parse
    - functionName:    read_file_buffer
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_append_full_istream
        - e_error
        - i_stream_create_fd_autoclose
        - i_stream_set_name
        - i_stream_unref
        - open_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:87,11'
          Dst:             open_fd
        - Src:             'process-stat.c:90,23'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'process-stat.c:91,2'
          Dst:             i_stream_set_name
        - Src:             'process-stat.c:93,3'
          Dst:             buffer_append_full_istream
        - Src:             'process-stat.c:94,2'
          Dst:             i_stream_unref
        - Src:             'process-stat.c:96,3'
          Dst:             e_error
        - Src:             'process-stat.c:98,3'
          Dst:             e_error
    - functionName:    open_fd
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          149
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dec2str
        - e_debug
        - e_error
        - eacces_error_get
        - event_send_abort
        - event_want_level
        - geteuid
        - i_fatal
        - open
        - seteuid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:58,7'
          Dst:             open
        - Src:             'process-stat.c:60,18'
          Dst:             __errno_location
        - Src:             'process-stat.c:61,9'
          Dst:             geteuid
        - Src:             'process-stat.c:65,7'
          Dst:             seteuid
        - Src:             'process-stat.c:66,9'
          Dst:             open
        - Src:             'process-stat.c:67,8'
          Dst:             seteuid
        - Src:             'process-stat.c:68,35'
          Dst:             dec2str
        - Src:             'process-stat.c:68,5'
          Dst:             i_fatal
        - Src:             'process-stat.c:70,3'
          Dst:             __errno_location
        - Src:             'process-stat.c:73,7'
          Dst:             __errno_location
        - Src:             'process-stat.c:74,4'
          Dst:             event_want_level
        - Src:             'process-stat.c:74,4'
          Dst:             e_debug
        - Src:             'process-stat.c:74,4'
          Dst:             event_send_abort
        - Src:             'process-stat.c:75,12'
          Dst:             __errno_location
        - Src:             'process-stat.c:76,4'
          Dst:             event_want_level
        - Src:             'process-stat.c:76,4'
          Dst:             eacces_error_get
        - Src:             'process-stat.c:76,4'
          Dst:             e_debug
        - Src:             'process-stat.c:76,4'
          Dst:             event_send_abort
        - Src:             'process-stat.c:78,4'
          Dst:             e_error
    - functionName:    timeval_to_usecs
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stat_get_rusage
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getrusage
        - timeval_to_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:157,6'
          Dst:             getrusage
        - Src:             'process-stat.c:159,18'
          Dst:             timeval_to_usecs
        - Src:             'process-stat.c:160,18'
          Dst:             timeval_to_usecs
    - functionName:    parse_proc_status
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - parse_key_val_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:145,6'
          Dst:             parse_key_val_file
    - functionName:    parse_proc_io
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - parse_key_val_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:129,6'
          Dst:             parse_key_val_file
    - functionName:    parse_stat_file
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          224
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - e_error
        - read_file_buffer
        - stat_get_rusage
        - str_array_length
        - str_c
        - str_to_uint64
        - sysconf
        - t_str_new
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:170,18'
          Dst:             t_str_new
        - Src:             'process-stat.c:185,6'
          Dst:             read_file_buffer
        - Src:             'process-stat.c:192,7'
          Dst:             stat_get_rusage
        - Src:             'process-stat.c:193,4'
          Dst:             e_error
        - Src:             'process-stat.c:199,19'
          Dst:             str_c
        - Src:             'process-stat.c:199,8'
          Dst:             t_strsplit
        - Src:             'process-stat.c:200,27'
          Dst:             str_array_length
        - Src:             'process-stat.c:204,7'
          Dst:             str_to_uint64
        - Src:             'process-stat.c:208,17'
          Dst:             sysconf
    - functionName:    process_stat_read_finish
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     externalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          208
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - parse_all_stats
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:246,6'
          Dst:             parse_all_stats
    - functionName:    parse_all_stats
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          123
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - parse_proc_io
        - parse_proc_status
        - parse_stat_file
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:216,2'
          Dst:             t_push
        - Src:             'process-stat.c:217,7'
          Dst:             parse_stat_file
        - Src:             'process-stat.c:219,7'
          Dst:             parse_proc_io
        - Src:             'process-stat.c:222,7'
          Dst:             parse_proc_status
        - Src:             'process-stat.c:224,4'
          Dst:             t_pop
        - Src:             'process-stat.c:224,4'
          Dst:             i_panic
    - functionName:    process_stat_read_start
      functionSourceFile: '/src/dovecot/src/lib/process-stat.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - parse_all_stats
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-stat.c:234,8'
          Dst:             parse_all_stats
    - 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:    1
      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:    5
      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:    1
      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:    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:    7
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'rand.c:26,2'
          Dst:             random_fill
    - 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:    9
      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:    pread_full
      functionSourceFile: '/src/dovecot/src/lib/read-full.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - pread
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'read-full.c:30,2'
          Dst:             i_panic
        - Src:             'read-full.c:33,9'
          Dst:             pread
    - functionName:    read_full
      functionSourceFile: '/src/dovecot/src/lib/read-full.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - read
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'read-full.c:12,2'
          Dst:             i_panic
        - Src:             'read-full.c:15,9'
          Dst:             read
    - 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:    1
      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:    3
      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:    3
      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:    3
      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:    2
      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:    2
      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:    2
      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:    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:    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:    3
      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:    2
      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:    1
      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:    22
      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:    safe_mkstemp_create_file
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_error
        - open
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:57,14'
          Dst:             umask
        - Src:             'safe-mkstemp.c:58,7'
          Dst:             open
        - Src:             'safe-mkstemp.c:59,2'
          Dst:             umask
        - Src:             'safe-mkstemp.c:63,6'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:63,25'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:63,44'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:64,3'
          Dst:             i_error
    - functionName:    safe_mkstemp_dir_pid
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - safe_mkstemp_dir
        - str_len
        - str_printfa
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:158,27'
          Dst:             str_len
        - Src:             'safe-mkstemp.c:160,2'
          Dst:             str_printfa
        - Src:             'safe-mkstemp.c:161,6'
          Dst:             safe_mkstemp_dir
        - Src:             'safe-mkstemp.c:162,3'
          Dst:             str_truncate
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    safe_mkstemp_dir
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - safe_mkstemp_create
        - safe_mkstemp_create_dir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:153,9'
          Dst:             safe_mkstemp_create
        - Src:             'safe-mkstemp.c:153,9'
          Dst:             safe_mkstemp_create_dir
    - 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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    safe_mkstemp_create_dir
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_error
        - mkdir
        - umask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:140,14'
          Dst:             umask
        - Src:             'safe-mkstemp.c:141,8'
          Dst:             mkdir
        - Src:             'safe-mkstemp.c:142,2'
          Dst:             umask
        - Src:             'safe-mkstemp.c:146,6'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:146,25'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:146,44'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:147,3'
          Dst:             i_error
    - functionName:    safe_mkstemp_create
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - binary_to_hex
        - i_error
        - lstat
        - random_fill
        - str_append
        - str_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:24,15'
          Dst:             str_len
        - Src:             'safe-mkstemp.c:27,4'
          Dst:             random_fill
        - Src:             'safe-mkstemp.c:28,4'
          Dst:             str_truncate
        - Src:             'safe-mkstemp.c:30,8'
          Dst:             binary_to_hex
        - Src:             'safe-mkstemp.c:29,4'
          Dst:             str_append
        - Src:             'safe-mkstemp.c:31,18'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:31,12'
          Dst:             lstat
        - Src:             'safe-mkstemp.c:33,7'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:34,35'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:34,4'
          Dst:             i_error
        - Src:             'safe-mkstemp.c:35,4'
          Dst:             str_truncate
        - Src:             'safe-mkstemp.c:39,21'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:43,7'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:44,4'
          Dst:             str_truncate
    - functionName:    safe_mkstemp_hostpid_group
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - safe_mkstemp_group
        - str_len
        - str_printfa
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:125,27'
          Dst:             str_len
        - Src:             'safe-mkstemp.c:128,2'
          Dst:             str_printfa
        - Src:             'safe-mkstemp.c:129,12'
          Dst:             safe_mkstemp_group
        - Src:             'safe-mkstemp.c:130,3'
          Dst:             str_truncate
    - functionName:    safe_mkstemp_group
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - safe_mkstemp_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:108,9'
          Dst:             safe_mkstemp_full
    - functionName:    safe_mkstemp_full
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          135
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - eperm_error_get_chgrp
        - fchown
        - i_close_fd_path
        - i_error
        - i_unlink
        - safe_mkstemp_create
        - safe_mkstemp_create_file
        - str_c
        - str_len
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:75,15'
          Dst:             str_len
        - Src:             'safe-mkstemp.c:76,7'
          Dst:             safe_mkstemp_create
        - Src:             'safe-mkstemp.c:76,7'
          Dst:             safe_mkstemp_create_file
        - Src:             'safe-mkstemp.c:82,6'
          Dst:             fchown
        - Src:             'safe-mkstemp.c:83,7'
          Dst:             __errno_location
        - Src:             'safe-mkstemp.c:85,6'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:84,18'
          Dst:             eperm_error_get_chgrp
        - Src:             'safe-mkstemp.c:84,4'
          Dst:             i_error
        - Src:             'safe-mkstemp.c:88,5'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:87,4'
          Dst:             i_error
        - Src:             'safe-mkstemp.c:92,3'
          Dst:             i_close_fd_path
        - Src:             'safe-mkstemp.c:93,3'
          Dst:             str_c
        - Src:             'safe-mkstemp.c:93,3'
          Dst:             i_unlink
        - Src:             'safe-mkstemp.c:94,3'
          Dst:             str_truncate
    - functionName:    safe_mkstemp_hostpid
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - safe_mkstemp
        - str_len
        - str_printfa
        - str_truncate
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:113,27'
          Dst:             str_len
        - Src:             'safe-mkstemp.c:116,2'
          Dst:             str_printfa
        - Src:             'safe-mkstemp.c:117,12'
          Dst:             safe_mkstemp
        - Src:             'safe-mkstemp.c:118,3'
          Dst:             str_truncate
    - functionName:    safe_mkstemp
      functionSourceFile: '/src/dovecot/src/lib/safe-mkstemp.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - safe_mkstemp_full
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'safe-mkstemp.c:102,9'
          Dst:             safe_mkstemp_full
    - 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:    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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:    seq_range_array_invert
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          275
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - array_append_i
        - array_clear_i
        - array_create_i
        - array_delete_i
        - array_get_modifiable_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:485,6'
          Dst:             array_is_created_i
        - Src:             'seq-range-array.c:486,11'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:493,8'
          Dst:             array_is_created_i
        - Src:             'seq-range-array.c:494,4'
          Dst:             array_create_i
        - Src:             'seq-range-array.c:497,3'
          Dst:             array_append_i
        - Src:             'seq-range-array.c:500,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:501,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:505,3'
          Dst:             array_clear_i
        - Src:             'seq-range-array.c:513,4'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:514,12'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:524,4'
          Dst:             i_panic
        - Src:             'seq-range-array.c:525,4'
          Dst:             i_panic
        - Src:             'seq-range-array.c:533,3'
          Dst:             array_append_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:    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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:307,13'
          Dst:             array_count_i
        - Src:             './array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - 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_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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - 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:    8
      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_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:    seq_range_count
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - seq_range_length
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:472,3'
          Dst:             seq_range_length
        - Src:             'seq-range-array.c:472,3'
          Dst:             i_panic
        - Src:             'seq-range-array.c:473,16'
          Dst:             seq_range_length
    - functionName:    seq_range_length
      functionSourceFile: '/src/dovecot/src/lib/./seq-range-array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './seq-range-array.h:21,2'
          Dst:             i_panic
        - Src:             './seq-range-array.h:22,2'
          Dst:             i_panic
    - functionName:    seq_range_array_have_common
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:451,11'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:452,11'
          Dst:             array_get_i
    - 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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    seq_range_exists
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_range_lookup
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:442,9'
          Dst:             seq_range_lookup
    - functionName:    seq_range_lookup
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:24,9'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:25,2'
          Dst:             i_panic
    - functionName:    seq_range_array_intersect
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          143
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - i_panic
        - seq_range_array_remove_range
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:419,14'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:422,19'
          Dst:             seq_range_array_remove_range
        - Src:             'seq-range-array.c:424,4'
          Dst:             i_panic
        - Src:             'seq-range-array.c:430,18'
          Dst:             seq_range_array_remove_range
        - Src:             'seq-range-array.c:432,3'
          Dst:             i_panic
    - functionName:    seq_range_array_remove_range
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          196
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - array_delete_i
        - array_get_i
        - i_panic
        - seq_range_array_remove
        - seq_range_length
        - seq_range_lookup
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:346,6'
          Dst:             seq_range_array_remove
        - Src:             'seq-range-array.c:352,6'
          Dst:             seq_range_array_remove
        - Src:             'seq-range-array.c:358,9'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:359,2'
          Dst:             seq_range_lookup
        - Src:             'seq-range-array.c:364,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:368,3'
          Dst:             seq_range_length
        - Src:             'seq-range-array.c:368,3'
          Dst:             i_panic
        - Src:             'seq-range-array.c:369,19'
          Dst:             seq_range_length
        - Src:             'seq-range-array.c:371,2'
          Dst:             array_delete_i
    - functionName:    seq_range_array_remove
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          329
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_insert_i
        - array_is_created_i
        - i_panic
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:267,7'
          Dst:             array_is_created_i
        - Src:             'seq-range-array.c:270,9'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:284,4'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:292,4'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:298,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:313,6'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:327,5'
          Dst:             array_insert_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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             './array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    seq_range_array_iter_nth
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          149
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - i_panic
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:556,10'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:560,4'
          Dst:             i_panic
    - functionName:    seq_range_array_iter_init
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seq_range_array_remove_nth
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - seq_range_array_iter_init
        - seq_range_array_iter_nth
        - seq_range_array_remove_range
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:399,2'
          Dst:             seq_range_array_iter_init
        - Src:             'seq-range-array.c:400,7'
          Dst:             seq_range_array_iter_nth
        - Src:             'seq-range-array.c:405,7'
          Dst:             seq_range_array_iter_nth
        - Src:             'seq-range-array.c:409,2'
          Dst:             seq_range_array_remove_range
    - functionName:    seq_range_array_remove_seq_range
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - seq_range_array_remove_range
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:382,11'
          Dst:             seq_range_array_remove_range
        - Src:             'seq-range-array.c:384,3'
          Dst:             i_panic
    - functionName:    seq_range_array_merge_n
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - seq_range_array_add_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:246,14'
          Dst:             array_get_i
        - Src:             'seq-range-array.c:258,3'
          Dst:             seq_range_array_add_range
    - functionName:    seq_range_array_add_range
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_range_array_add_range_internal
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:214,2'
          Dst:             seq_range_array_add_range_internal
    - functionName:    seq_range_array_add_range_internal
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          450
      EdgeCount:       85
      CyclomaticComplexity: 21
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_insert_i
        - i_panic
        - seq_range_is_overflowed
        - seq_range_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:140,2'
          Dst:             seq_range_lookup
        - Src:             'seq-range-array.c:141,2'
          Dst:             seq_range_lookup
        - Src:             'seq-range-array.c:143,9'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:190,3'
          Dst:             array_insert_i
        - Src:             'seq-range-array.c:192,3'
          Dst:             i_panic
        - Src:             'seq-range-array.c:205,4'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:208,2'
          Dst:             seq_range_is_overflowed
        - Src:             'seq-range-array.c:208,2'
          Dst:             i_panic
    - functionName:    seq_range_is_overflowed
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:12,10'
          Dst:             array_get_i
    - functionName:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:223,2'
          Dst:             i_panic
        - Src:             './array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    seq_range_array_merge
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_array_i
        - array_count_i
        - seq_range_array_add_range
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:229,6'
          Dst:             array_count_i
        - Src:             'seq-range-array.c:230,3'
          Dst:             array_append_array_i
        - Src:             'seq-range-array.c:235,3'
          Dst:             seq_range_array_add_range
    - functionName:    seq_range_array_add_range_count
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_range_array_add_range_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:220,2'
          Dst:             seq_range_array_add_range_internal
    - functionName:    seq_range_array_add_with_init
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_i
        - array_is_created_i
        - seq_range_array_add
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:127,7'
          Dst:             array_is_created_i
        - Src:             'seq-range-array.c:128,3'
          Dst:             array_create_i
        - Src:             'seq-range-array.c:129,2'
          Dst:             seq_range_array_add
    - functionName:    seq_range_array_add
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_get_modifiable_i
        - array_insert_i
        - i_panic
        - seq_range_array_add_slow_path
        - seq_range_is_overflowed
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:99,9'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:102,3'
          Dst:             array_append_i
        - Src:             'seq-range-array.c:108,4'
          Dst:             array_append_i
        - Src:             'seq-range-array.c:115,4'
          Dst:             array_insert_i
        - Src:             'seq-range-array.c:118,12'
          Dst:             seq_range_array_add_slow_path
        - Src:             'seq-range-array.c:120,2'
          Dst:             seq_range_is_overflowed
        - Src:             'seq-range-array.c:120,2'
          Dst:             i_panic
    - functionName:    seq_range_array_add_slow_path
      functionSourceFile: '/src/dovecot/src/lib/seq-range-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          295
      EdgeCount:       53
      CyclomaticComplexity: 12
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - array_insert_i
        - i_panic
        - seq_range_lookup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-range-array.c:55,9'
          Dst:             array_get_modifiable_i
        - Src:             'seq-range-array.c:59,6'
          Dst:             seq_range_lookup
        - Src:             'seq-range-array.c:63,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:64,2'
          Dst:             i_panic
        - Src:             'seq-range-array.c:71,4'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:77,4'
          Dst:             i_panic
        - Src:             'seq-range-array.c:82,5'
          Dst:             array_delete_i
        - Src:             'seq-range-array.c:85,4'
          Dst:             array_insert_i
    - 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:    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:    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_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:    seqset_builder_deinit
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
        - str_len
        - str_truncate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:111,33'
          Dst:             str_len
        - Src:             'seq-set-builder.c:111,3'
          Dst:             str_truncate
        - Src:             'seq-set-builder.c:112,2'
          Dst:             p_free_internal
    - functionName:    seqset_builder_try_add
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - dec2str_buf
        - seqset_builder_add
        - str_len
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:82,33'
          Dst:             str_len
        - Src:             'seq-set-builder.c:87,3'
          Dst:             seqset_builder_add
        - Src:             'seq-set-builder.c:95,3'
          Dst:             seqset_builder_add
        - Src:             'seq-set-builder.c:99,19'
          Dst:             dec2str_buf
        - Src:             'seq-set-builder.c:99,12'
          Dst:             strlen
        - Src:             'seq-set-builder.c:103,2'
          Dst:             seqset_builder_add
    - functionName:    seqset_builder_add
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - seqset_builder_append_one
        - seqset_builder_create_or_merge_range
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:62,3'
          Dst:             seqset_builder_append_one
        - Src:             'seq-set-builder.c:66,3'
          Dst:             seqset_builder_create_or_merge_range
        - Src:             'seq-set-builder.c:69,3'
          Dst:             seqset_builder_append_one
    - functionName:    seqset_builder_append_one
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_len
        - str_printfa
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:28,26'
          Dst:             str_len
        - Src:             'seq-set-builder.c:29,2'
          Dst:             str_printfa
    - functionName:    seqset_builder_create_or_merge_range
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_unreached
        - seqset_builder_append_one
        - str_data
        - str_len
        - str_printfa
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:38,2'
          Dst:             i_panic
        - Src:             'seq-set-builder.c:40,2'
          Dst:             str_truncate
        - Src:             'seq-set-builder.c:43,6'
          Dst:             str_len
        - Src:             'seq-set-builder.c:44,6'
          Dst:             str_len
        - Src:             'seq-set-builder.c:45,15'
          Dst:             str_data
        - Src:             'seq-set-builder.c:45,38'
          Dst:             str_len
        - Src:             'seq-set-builder.c:48,3'
          Dst:             seqset_builder_append_one
        - Src:             'seq-set-builder.c:50,3'
          Dst:             str_printfa
        - Src:             'seq-set-builder.c:51,27'
          Dst:             str_len
        - Src:             'seq-set-builder.c:52,3'
          Dst:             str_printfa
        - Src:             'seq-set-builder.c:54,3'
          Dst:             i_unreached
    - 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:    seqset_builder_init
      functionSourceFile: '/src/dovecot/src/lib/seq-set-builder.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - str_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'seq-set-builder.c:17,12'
          Dst:             malloc_multiply_check
        - Src:             'seq-set-builder.c:17,12'
          Dst:             p_malloc
        - Src:             'seq-set-builder.c:20,27'
          Dst:             str_len
    - 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:    4
      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:    5
      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:    4
      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:    4
      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:    3
      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:    6
      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:    3
      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:    2
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:28,2'
          Dst:             sleep_timespec
    - functionName:    search_strcasecmp
      functionSourceFile: '/src/dovecot/src/lib/sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sort.c:16,9'
          Dst:             strcasecmp
    - functionName:    search_strcmp
      functionSourceFile: '/src/dovecot/src/lib/sort.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sort.c:11,9'
          Dst:             strcmp
    - functionName:    uint64_cmp
      functionSourceFile: '/src/dovecot/src/lib/./sort.h'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 15
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_get_samples
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_get_index
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_get_percentile
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stats_dist_ensure_sorted
        - stats_dist_get_index
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:168,2'
          Dst:             stats_dist_ensure_sorted
        - Src:             'stats-dist.c:172,21'
          Dst:             stats_dist_get_index
    - functionName:    stats_dist_ensure_sorted
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - qsort
        - uint64_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:106,2'
          Dst:             qsort
        - Src:             'stats-dist.c:106,2'
          Dst:             uint64_cmp
    - functionName:    stats_dist_get_variance
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - stats_dist_get_avg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:130,15'
          Dst:             stats_dist_get_avg
    - functionName:    stats_dist_get_avg
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_get_median
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stats_dist_ensure_sorted
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:116,2'
          Dst:             stats_dist_ensure_sorted
    - functionName:    stats_dist_get_max
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 87
      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:    stats_dist_get_min
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      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:    stats_dist_get_sum
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_get_count
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 72
      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:    stats_dist_add
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - i_rand_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:56,22'
          Dst:             i_rand_limit
    - functionName:    stats_dist_reset
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stats_dist_deinit
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          24
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:39,2'
          Dst:             p_free_internal
    - 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:    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:    stats_dist_init_with_size
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_malloc
        - i_panic
        - malloc_add_check
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:28,2'
          Dst:             i_panic
        - Src:             'stats-dist.c:30,24'
          Dst:             malloc_multiply_check
        - Src:             'stats-dist.c:31,22'
          Dst:             malloc_add_check
        - Src:             'stats-dist.c:32,29'
          Dst:             i_malloc
    - functionName:    stats_dist_init
      functionSourceFile: '/src/dovecot/src/lib/stats-dist.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stats_dist_init_with_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stats-dist.c:23,9'
          Dst:             stats_dist_init_with_size
    - functionName:    init_suffixes
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          168
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_find_reset
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_find_get_match_end_pos
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 177
      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:    str_find_more
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          474
      EdgeCount:       83
      CyclomaticComplexity: 19
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'str-find.c:140,3'
          Dst:             i_panic
        - Src:             'str-find.c:160,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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_find_deinit
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     externalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-find.c:104,2'
          Dst:             p_free_internal
        - Src:             'str-find.c:105,2'
          Dst:             p_free_internal
        - Src:             'str-find.c:106,2'
          Dst:             p_free_internal
    - functionName:    init_badtab
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_goodtab
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          185
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - init_suffixes
        - t_buffer_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-find.c:59,13'
          Dst:             t_buffer_get
        - Src:             'str-find.c:60,2'
          Dst:             init_suffixes
    - 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:    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:    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:    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:    str_find_init
      functionSourceFile: '/src/dovecot/src/lib/str-find.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - i_panic
        - init_badtab
        - init_goodtab
        - malloc_add_check
        - malloc_multiply_check
        - p_malloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-find.c:81,19'
          Dst:             strlen
        - Src:             'str-find.c:83,2'
          Dst:             i_panic
        - Src:             'str-find.c:84,2'
          Dst:             i_panic
        - Src:             'str-find.c:86,23'
          Dst:             malloc_multiply_check
        - Src:             'str-find.c:86,23'
          Dst:             malloc_add_check
        - Src:             'str-find.c:86,8'
          Dst:             p_malloc
        - Src:             'str-find.c:89,17'
          Dst:             malloc_multiply_check
        - Src:             'str-find.c:89,17'
          Dst:             p_malloc
        - Src:             'str-find.c:91,13'
          Dst:             p_malloc
        - Src:             'str-find.c:92,2'
          Dst:             i_memcpy
        - Src:             'str-find.c:94,2'
          Dst:             init_goodtab
        - Src:             'str-find.c:95,2'
          Dst:             init_badtab
    - 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:    1
      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:    3
      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:    2
      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:    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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str-parse.c:89,9'
          Dst:             str_parse_get_interval_full
    - 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:    7
      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:    169
      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:    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:    5
      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:    18
      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:    254
      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:    14
      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:    738
      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:    31
      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:    19
      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:    2
      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:    301
      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:    79
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:16,9'
          Dst:             buffer_create_dynamic
    - 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:    11
      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:    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:    2
      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:    4
      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:    3
      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:    8
      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:    56
      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:    7
      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:    4
      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:    1
      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:    410
      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:    8
      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:    17
      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:    4
      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:    69
      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:    10
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:964,7'
          Dst:             strcasecmp
    - 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:    8
      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:    13
      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:    27
      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:    3
      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:    3
      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:    8
      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:    24
      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:    5
      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:    108
      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:    2
      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:    15
      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:    12
      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:    56
      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:    38
      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:    1
      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:    1
      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:    2
      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:    13
      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:    17
      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:    6
      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:    25
      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:    22
      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:    1
      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:    76
      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:    18
      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:    3
      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:    11
      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:    4
      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:    9
      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:    6
      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:    2
      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:    12
      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:    239
      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:    29
      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:    8
      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:    901
      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:    35
      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:    16
      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:    4
      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:    1
      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:    39
      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:    46
      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:    11
      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:    5
      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:    2
      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:    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:    2
      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:    7
      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:    13
      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:    16
      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:    4
      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:    7
      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:    3
      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:    2
      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:    4
      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:    1
      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:    10
      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:    3
      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:    2
      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:    1
      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:    1
      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:    7
      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:    18
      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:    1
      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:    54
      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:    1
      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:    6
      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:    1
      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:    5
      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:    1
      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:    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:    7
      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:    1
      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:    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:    21
      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:    5
      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:    32
      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:    8
      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:    13
      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:    2
      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:    10
      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:    9
      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:    5
      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:    7
      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:    9
      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:    1
      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:    2
      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:    2
      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:    2
      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:    1
      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:    9
      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:    1
      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:    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:    unlink_directory_error
      functionSourceFile: '/src/dovecot/src/lib/unlink-directory.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_error
        - t_strdup_vprintf
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'unlink-directory.c:54,20'
          Dst:             t_strdup_vprintf
        - Src:             'unlink-directory.c:57,19'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:60,3'
          Dst:             i_error
    - functionName:    unlink_directory_r
      functionSourceFile: '/src/dovecot/src/lib/unlink-directory.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          428
      EdgeCount:       117
      CyclomaticComplexity: 33
      functionsReached:
        - __errno_location
        - closedir
        - fchdir
        - i_close_fd_path
        - lstat
        - open
        - opendir
        - readdir
        - rmdir
        - str_begins_with
        - strncmp
        - unlink
        - unlink_directory_error
        - unlink_directory_r
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unlink-directory.c:73,11'
          Dst:             open
        - Src:             'unlink-directory.c:75,3'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:79,6'
          Dst:             fchdir
        - Src:             'unlink-directory.c:80,3'
          Dst:             i_close_fd_path
        - Src:             'unlink-directory.c:81,3'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:86,9'
          Dst:             opendir
        - Src:             'unlink-directory.c:88,3'
          Dst:             i_close_fd_path
        - Src:             'unlink-directory.c:89,3'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:96,3'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:97,7'
          Dst:             readdir
        - Src:             'unlink-directory.c:99,8'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:100,5'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:116,7'
          Dst:             unlink
        - Src:             'unlink-directory.c:116,32'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:117,16'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:119,8'
          Dst:             lstat
        - Src:             'unlink-directory.c:120,9'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:121,6'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:130,9'
          Dst:             unlink_directory_r
        - Src:             'unlink-directory.c:133,21'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:134,10'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:137,9'
          Dst:             fchdir
        - Src:             'unlink-directory.c:138,6'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:146,9'
          Dst:             rmdir
        - Src:             'unlink-directory.c:146,33'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:147,10'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:149,7'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:150,6'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:160,8'
          Dst:             strncmp
        - Src:             'unlink-directory.c:160,8'
          Dst:             str_begins_with
        - Src:             'unlink-directory.c:167,5'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:174,2'
          Dst:             i_close_fd_path
        - Src:             'unlink-directory.c:175,6'
          Dst:             closedir
        - Src:             'unlink-directory.c:176,3'
          Dst:             unlink_directory_error
        - Src:             'unlink-directory.c:180,3'
          Dst:             __errno_location
    - functionName:    unlink_directory
      functionSourceFile: '/src/dovecot/src/lib/unlink-directory.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fchdir
        - i_close_fd_path
        - i_fatal
        - i_warning
        - open
        - rmdir
        - t_get_working_dir
        - t_strdup_printf
        - unlink_directory_r
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'unlink-directory.c:192,6'
          Dst:             t_get_working_dir
        - Src:             'unlink-directory.c:193,3'
          Dst:             i_warning
        - Src:             'unlink-directory.c:198,7'
          Dst:             open
        - Src:             'unlink-directory.c:200,14'
          Dst:             t_strdup_printf
        - Src:             'unlink-directory.c:209,8'
          Dst:             unlink_directory_r
        - Src:             'unlink-directory.c:210,14'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:212,6'
          Dst:             fchdir
        - Src:             'unlink-directory.c:213,3'
          Dst:             i_fatal
        - Src:             'unlink-directory.c:217,2'
          Dst:             i_close_fd_path
        - Src:             'unlink-directory.c:220,3'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:221,10'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:225,7'
          Dst:             rmdir
        - Src:             'unlink-directory.c:225,25'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:226,15'
          Dst:             t_strdup_printf
        - Src:             'unlink-directory.c:227,8'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:229,5'
          Dst:             __errno_location
        - Src:             'unlink-directory.c:231,11'
          Dst:             __errno_location
    - 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_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:    unlink_old_files_real
      functionSourceFile: '/src/dovecot/src/lib/unlink-old-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          232
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - closedir
        - i_error
        - i_unlink_if_exists
        - opendir
        - readdir
        - stat
        - str_append
        - str_c
        - str_len
        - str_printfa
        - str_truncate
        - strlen
        - strncmp
        - t_str_new
        - utime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unlink-old-files.c:23,9'
          Dst:             opendir
        - Src:             'unlink-old-files.c:25,7'
          Dst:             __errno_location
        - Src:             'unlink-old-files.c:26,4'
          Dst:             i_error
        - Src:             'unlink-old-files.c:32,6'
          Dst:             utime
        - Src:             'unlink-old-files.c:32,30'
          Dst:             __errno_location
        - Src:             'unlink-old-files.c:33,3'
          Dst:             i_error
        - Src:             'unlink-old-files.c:35,9'
          Dst:             t_str_new
        - Src:             'unlink-old-files.c:36,2'
          Dst:             str_printfa
        - Src:             'unlink-old-files.c:37,12'
          Dst:             str_len
        - Src:             'unlink-old-files.c:39,15'
          Dst:             strlen
        - Src:             'unlink-old-files.c:40,14'
          Dst:             readdir
        - Src:             'unlink-old-files.c:47,7'
          Dst:             strncmp
        - Src:             'unlink-old-files.c:50,3'
          Dst:             str_truncate
        - Src:             'unlink-old-files.c:51,3'
          Dst:             str_append
        - Src:             'unlink-old-files.c:52,12'
          Dst:             str_c
        - Src:             'unlink-old-files.c:52,7'
          Dst:             stat
        - Src:             'unlink-old-files.c:53,8'
          Dst:             __errno_location
        - Src:             'unlink-old-files.c:54,36'
          Dst:             str_c
        - Src:             'unlink-old-files.c:54,5'
          Dst:             i_error
        - Src:             'unlink-old-files.c:56,4'
          Dst:             str_c
        - Src:             'unlink-old-files.c:56,4'
          Dst:             i_unlink_if_exists
        - Src:             'unlink-old-files.c:60,6'
          Dst:             closedir
        - Src:             'unlink-old-files.c:61,3'
          Dst:             i_error
    - functionName:    unlink_old_files
      functionSourceFile: '/src/dovecot/src/lib/unlink-old-files.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_pop
        - t_push
        - unlink_old_files_real
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unlink-old-files.c:69,2'
          Dst:             t_push
        - Src:             'unlink-old-files.c:70,9'
          Dst:             unlink_old_files_real
        - Src:             'unlink-old-files.c:71,4'
          Dst:             t_pop
        - Src:             'unlink-old-files.c:71,4'
          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:    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:    uri_parse_port
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
        - net_str2port
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:737,38'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:742,19'
          Dst:             t_strdup_until
        - Src:             'uri-util.c:742,6'
          Dst:             net_str2port
    - functionName:    uri_parse_dec_octet
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:349,38'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:355,4'
          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:    19
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    uri_parse_ipv4address
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - htonl
        - str_append_c
        - uri_parse_dec_octet
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:382,8'
          Dst:             uri_parse_dec_octet
        - Src:             'uri-util.c:392,4'
          Dst:             str_append_c
        - Src:             'uri-util.c:395,7'
          Dst:             uri_parse_dec_octet
        - Src:             'uri-util.c:401,19'
          Dst:             htonl
    - functionName:    uri_parse_ip_literal
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          165
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - memchr
        - net_addr2ip
        - p_strdup_printf
        - str_append_data
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:626,11'
          Dst:             memchr
        - Src:             'uri-util.c:633,3'
          Dst:             str_append_data
        - Src:             'uri-util.c:634,12'
          Dst:             t_strdup_until
        - Src:             'uri-util.c:642,19'
          Dst:             p_strdup_printf
        - Src:             'uri-util.c:647,6'
          Dst:             net_addr2ip
        - Src:             'uri-util.c:648,19'
          Dst:             p_strdup_printf
    - 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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _decode_hex_digit
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          123
      EdgeCount:       54
      CyclomaticComplexity: 28
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'uri-util.c:119,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    uri_append_unreserved_path
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1396,2'
          Dst:             uri_data_encode
    - functionName:    uri_data_encode
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1275
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          147
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - str_append_data
        - str_printfa
        - strchr
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1263,8'
          Dst:             strchr
        - Src:             'uri-util.c:1265,5'
          Dst:             str_append_data
        - Src:             'uri-util.c:1266,4'
          Dst:             str_printfa
        - Src:             'uri-util.c:1274,3'
          Dst:             str_append_data
    - functionName:    uri_append_unreserved
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1390,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_fragment
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1386
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_c
        - uri_append_fragment_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1383,2'
          Dst:             str_append_c
        - Src:             'uri-util.c:1385,3'
          Dst:             uri_append_fragment_data
    - functionName:    uri_append_fragment_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1379
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1378,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_query
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1374
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_c
        - uri_append_query_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1371,2'
          Dst:             str_append_c
        - Src:             'uri-util.c:1373,3'
          Dst:             uri_append_query_data
    - functionName:    uri_append_query_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1365
      functionLinenumberEnd: 1367
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1366,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_path
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1358
      functionLinenumberEnd: 1362
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_c
        - uri_append_path_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1359,2'
          Dst:             str_append_c
        - Src:             'uri-util.c:1361,3'
          Dst:             uri_append_path_data
    - functionName:    uri_append_path_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1355
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1354,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_path_segment
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_c
        - uri_append_path_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1347,2'
          Dst:             str_append_c
        - Src:             'uri-util.c:1349,3'
          Dst:             uri_append_path_data
    - functionName:    uri_append_path_segment_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1342,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_port
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1337
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_printfa
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1336,3'
          Dst:             str_printfa
    - functionName:    uri_append_host
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1319
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - net_addr2ip
        - uri_append_host_ip
        - uri_append_host_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1323,3'
          Dst:             uri_append_host_ip
        - Src:             'uri-util.c:1325,3'
          Dst:             i_panic
        - Src:             'uri-util.c:1326,7'
          Dst:             net_addr2ip
        - Src:             'uri-util.c:1327,4'
          Dst:             uri_append_host_name
        - Src:             'uri-util.c:1329,4'
          Dst:             uri_append_host_ip
    - functionName:    uri_append_host_ip
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1316
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - net_ip2addr
        - str_append
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1303,21'
          Dst:             net_ip2addr
        - Src:             'uri-util.c:1305,2'
          Dst:             i_panic
        - Src:             'uri-util.c:1308,3'
          Dst:             str_append
        - Src:             'uri-util.c:1312,2'
          Dst:             i_panic
        - Src:             'uri-util.c:1313,2'
          Dst:             str_append_c
        - Src:             'uri-util.c:1314,2'
          Dst:             str_append
        - Src:             'uri-util.c:1315,2'
          Dst:             str_append_c
    - functionName:    uri_append_host_name
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1295
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1296,2'
          Dst:             uri_data_encode
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    uri_append_userinfo
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1292
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_append_c
        - uri_append_user_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1290,2'
          Dst:             uri_append_user_data
        - Src:             'uri-util.c:1291,2'
          Dst:             str_append_c
    - functionName:    uri_append_user_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1286
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_data_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1285,2'
          Dst:             uri_data_encode
    - functionName:    uri_append_scheme
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_append
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1279,2'
          Dst:             str_append
        - Src:             'uri-util.c:1280,2'
          Dst:             str_append_c
    - functionName:    uri_check
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - uri_check_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1245,52'
          Dst:             strlen
        - Src:             'uri-util.c:1245,9'
          Dst:             uri_check_data
    - functionName:    uri_check_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_datastack_create
        - uri_parse_absolute_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1234,16'
          Dst:             pool_datastack_create
        - Src:             'uri-util.c:1238,8'
          Dst:             uri_parse_absolute_generic
    - functionName:    uri_parse_absolute_generic
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1202
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          309
      EdgeCount:       84
      CyclomaticComplexity: 22
      functionsReached:
        - i_panic
        - strcmp
        - uri_parse_authority
        - uri_parse_fragment
        - uri_parse_path
        - uri_parse_query
        - uri_parse_scheme
        - uri_parse_slashslash_authority
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1154,14'
          Dst:             uri_parse_scheme
        - Src:             'uri-util.c:1159,7'
          Dst:             strcmp
        - Src:             'uri-util.c:1162,7'
          Dst:             strcmp
        - Src:             'uri-util.c:1168,9'
          Dst:             uri_parse_slashslash_authority
        - Src:             'uri-util.c:1172,15'
          Dst:             uri_parse_authority
        - Src:             'uri-util.c:1178,9'
          Dst:             uri_parse_path
        - Src:             'uri-util.c:1181,9'
          Dst:             uri_parse_path
        - Src:             'uri-util.c:1182,3'
          Dst:             i_panic
        - Src:             'uri-util.c:1188,6'
          Dst:             uri_parse_query
        - Src:             'uri-util.c:1192,8'
          Dst:             uri_parse_fragment
        - Src:             'uri-util.c:1200,2'
          Dst:             i_panic
    - functionName:    uri_parse_scheme
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          214
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __ctype_b_loc
        - t_strndup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:298,37'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:304,8'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:317,15'
          Dst:             t_strndup
    - functionName:    uri_parse_slashslash_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_do_parse_slashslash_authority
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:856,9'
          Dst:             uri_do_parse_slashslash_authority
    - functionName:    uri_parse_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_do_parse_authority
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:850,9'
          Dst:             uri_do_parse_authority
    - functionName:    uri_parse_path
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          408
      EdgeCount:       106
      CyclomaticComplexity: 28
      functionsReached:
        - array_append_i
        - array_append_space_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_get_i
        - i_panic
        - p_strdup_printf
        - uri_char_sanitize
        - uri_parse_path_segment
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:921,3'
          Dst:             array_create_i
        - Src:             'uri-util.c:934,8'
          Dst:             uri_parse_path_segment
        - Src:             'uri-util.c:950,9'
          Dst:             array_count_i
        - Src:             'uri-util.c:950,9'
          Dst:             i_panic
        - Src:             'uri-util.c:951,9'
          Dst:             array_delete_i
        - Src:             'uri-util.c:969,5'
          Dst:             array_append_i
        - Src:             'uri-util.c:978,9'
          Dst:             uri_parse_path_segment
        - Src:             'uri-util.c:997,4'
          Dst:             array_append_i
        - Src:             'uri-util.c:999,3'
          Dst:             array_append_space_i
        - Src:             'uri-util.c:1000,13'
          Dst:             array_get_i
        - Src:             'uri-util.c:1006,4'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:1004,19'
          Dst:             p_strdup_printf
    - functionName:    uri_parse_query
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          260
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - p_strdup_printf
        - p_strdup_until
        - uri_char_sanitize
        - uri_parse_pct_encoded
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1033,10'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:1050,4'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:1048,19'
          Dst:             p_strdup_printf
        - Src:             'uri-util.c:1055,14'
          Dst:             p_strdup_until
    - functionName:    uri_parse_fragment
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          206
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - p_strdup_printf
        - p_strdup_until
        - uri_char_sanitize
        - uri_parse_pct_encoded
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1079,10'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:1095,4'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:1093,19'
          Dst:             p_strdup_printf
        - Src:             'uri-util.c:1100,17'
          Dst:             p_strdup_until
    - functionName:    uri_parse_pct_encoded
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_parse_pct_encoded_data
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:184,9'
          Dst:             uri_parse_pct_encoded_data
    - functionName:    uri_char_sanitize
      functionSourceFile: '/src/dovecot/src/lib/./uri-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './uri-util.h:50,10'
          Dst:             t_strdup_printf
        - Src:             './uri-util.h:51,9'
          Dst:             t_strdup_printf
    - functionName:    uri_parse_pct_encoded_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          235
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - _decode_hex_digit
        - p_strdup_printf
        - uri_char_sanitize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:150,10'
          Dst:             _decode_hex_digit
        - Src:             'uri-util.c:155,4'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:152,19'
          Dst:             p_strdup_printf
        - Src:             'uri-util.c:162,10'
          Dst:             _decode_hex_digit
        - Src:             'uri-util.c:167,15'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:164,19'
          Dst:             p_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:    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:    uri_parse_path_segment
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          221
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - p_strdup_printf
        - p_strdup_until
        - uri_char_sanitize
        - uri_parse_pct_encoded
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:879,10'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:897,4'
          Dst:             uri_char_sanitize
        - Src:             'uri-util.c:895,19'
          Dst:             p_strdup_printf
        - Src:             'uri-util.c:905,16'
          Dst:             p_strdup_until
    - 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:    2
      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:    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_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:    uri_do_parse_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          353
      EdgeCount:       82
      CyclomaticComplexity: 18
      functionsReached:
        - p_strdup_until
        - uri_do_parse_host
        - uri_parse_port
      functionUses:    3
      BranchProfiles:
        - Branch String:   'uri-util.c:792,2'
          Branch Sides:    []
        - Branch String:   'uri-util.c:815,3'
          Branch Sides:    []
      Callsites:
        - Src:             'uri-util.c:781,5'
          Dst:             p_strdup_until
        - Src:             'uri-util.c:787,6'
          Dst:             uri_do_parse_host
        - Src:             'uri-util.c:810,9'
          Dst:             uri_parse_port
    - functionName:    uri_do_parse_host
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          211
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - p_strdup
        - str_c
        - str_truncate
        - uri_do_parse_host_name
        - uri_do_parse_reg_name
        - uri_parse_ip_literal
        - uri_parse_ipv4address
        - uri_parser_get_tmpbuf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:676,12'
          Dst:             uri_parser_get_tmpbuf
        - Src:             'uri-util.c:680,7'
          Dst:             uri_parse_ip_literal
        - Src:             'uri-util.c:684,40'
          Dst:             str_c
        - Src:             'uri-util.c:684,17'
          Dst:             p_strdup
        - Src:             'uri-util.c:696,8'
          Dst:             uri_parse_ipv4address
        - Src:             'uri-util.c:699,40'
          Dst:             str_c
        - Src:             'uri-util.c:699,17'
          Dst:             p_strdup
        - Src:             'uri-util.c:706,2'
          Dst:             str_truncate
        - Src:             'uri-util.c:710,7'
          Dst:             uri_do_parse_host_name
        - Src:             'uri-util.c:712,14'
          Dst:             uri_do_parse_reg_name
        - Src:             'uri-util.c:715,39'
          Dst:             str_c
        - Src:             'uri-util.c:715,16'
          Dst:             p_strdup
    - functionName:    uri_parser_get_tmpbuf
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_new
        - str_truncate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1124,20'
          Dst:             str_new
        - Src:             'uri-util.c:1126,3'
          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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    uri_do_parse_host_name
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         81
      ICount:          477
      EdgeCount:       107
      CyclomaticComplexity: 28
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - str_append_c
        - str_append_data
        - str_c
        - str_len
        - str_truncate
        - uri_parse_pct_encoded
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:508,9'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:512,9'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:518,5'
          Dst:             str_append_c
        - Src:             'uri-util.c:521,9'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:531,11'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:535,11'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:542,8'
          Dst:             str_append_data
        - Src:             'uri-util.c:546,7'
          Dst:             str_append_c
        - Src:             'uri-util.c:551,11'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:558,9'
          Dst:             __ctype_b_loc
        - Src:             'uri-util.c:566,4'
          Dst:             str_append_data
        - Src:             'uri-util.c:572,4'
          Dst:             str_append_c
        - Src:             'uri-util.c:583,22'
          Dst:             str_c
        - Src:             'uri-util.c:585,3'
          Dst:             str_len
        - Src:             'uri-util.c:585,3'
          Dst:             i_panic
        - Src:             'uri-util.c:586,12'
          Dst:             str_len
        - Src:             'uri-util.c:587,28'
          Dst:             str_len
        - Src:             'uri-util.c:587,4'
          Dst:             str_truncate
    - functionName:    uri_do_parse_reg_name
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          141
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - str_append_c
        - uri_parse_pct_encoded
        - uri_parse_unreserved_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:419,9'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:423,11'
          Dst:             uri_parse_unreserved_char
        - Src:             'uri-util.c:428,5'
          Dst:             str_append_c
        - Src:             'uri-util.c:437,5'
          Dst:             str_append_c
    - functionName:    uri_parse_unreserved_char
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_do_parse_slashslash_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - uri_do_parse_authority
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:845,9'
          Dst:             uri_do_parse_authority
    - functionName:    uri_host_copy
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1221
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - net_ip2addr
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1215,15'
          Dst:             net_ip2addr
        - Src:             'uri-util.c:1216,3'
          Dst:             i_panic
        - Src:             'uri-util.c:1220,15'
          Dst:             p_strdup
    - functionName:    uri_parser_init_data
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          31
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uri_parse_slashslash_host_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_do_parse_slashslash_authority
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:868,9'
          Dst:             uri_do_parse_slashslash_authority
    - functionName:    uri_parse_host_authority
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_do_parse_authority
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:862,9'
          Dst:             uri_do_parse_authority
    - functionName:    uri_parse_host
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uri_do_parse_host
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:721,9'
          Dst:             uri_do_parse_host
    - functionName:    uri_parse_host_name
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - uri_do_parse_host_name
        - uri_parser_get_tmpbuf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:598,15'
          Dst:             uri_parser_get_tmpbuf
        - Src:             'uri-util.c:600,8'
          Dst:             uri_do_parse_host_name
        - Src:             'uri-util.c:605,18'
          Dst:             str_c
    - functionName:    uri_parse_reg_name
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - uri_do_parse_reg_name
        - uri_parser_get_tmpbuf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:452,14'
          Dst:             uri_parser_get_tmpbuf
        - Src:             'uri-util.c:454,8'
          Dst:             uri_do_parse_reg_name
        - Src:             'uri-util.c:459,17'
          Dst:             str_c
    - functionName:    uri_parser_init
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - uri_parser_init_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:1118,37'
          Dst:             strlen
        - Src:             'uri-util.c:1117,2'
          Dst:             uri_parser_init_data
    - functionName:    uri_cut_scheme
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uri_parse_scheme
        - uri_parser_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:326,2'
          Dst:             uri_parser_init
        - Src:             'uri-util.c:327,6'
          Dst:             uri_parse_scheme
    - functionName:    uri_data_decode
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          154
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - p_strdup
        - str_append_c
        - str_c
        - uri_parse_pct_encoded_data
        - uri_parser_get_tmpbuf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:268,12'
          Dst:             uri_parser_get_tmpbuf
        - Src:             'uri-util.c:272,9'
          Dst:             uri_parse_pct_encoded_data
        - Src:             'uri-util.c:276,4'
          Dst:             str_append_c
        - Src:             'uri-util.c:278,4'
          Dst:             str_append_c
        - Src:             'uri-util.c:284,39'
          Dst:             str_c
        - Src:             'uri-util.c:284,16'
          Dst:             p_strdup
    - functionName:    uri_parse_unreserved_pct
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          104
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - str_append_c
        - uri_parse_pct_encoded
        - uri_parse_unreserved_char
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:232,9'
          Dst:             uri_parse_pct_encoded
        - Src:             'uri-util.c:236,11'
          Dst:             uri_parse_unreserved_char
        - Src:             'uri-util.c:242,4'
          Dst:             str_append_c
    - functionName:    uri_parse_unreserved
      functionSourceFile: '/src/dovecot/src/lib/uri-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
        - uri_parse_unreserved_char
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'uri-util.c:210,9'
          Dst:             uri_parse_unreserved_char
        - Src:             'uri-util.c:217,4'
          Dst:             str_append_c
    - 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:    5
      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:    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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    version_is_valid
      functionSourceFile: '/src/dovecot/src/lib/version.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    version_cmp
      functionSourceFile: '/src/dovecot/src/lib/version.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          185
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - str_parse_uint
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'version.c:50,7'
          Dst:             str_parse_uint
        - Src:             'version.c:51,4'
          Dst:             i_unreached
        - Src:             'version.c:52,7'
          Dst:             str_parse_uint
        - Src:             'version.c:53,4'
          Dst:             i_unreached
        - Src:             'version.c:57,4'
          Dst:             i_panic
        - Src:             'version.c:61,4'
          Dst:             i_panic
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    version_string_verify_full
      functionSourceFile: '/src/dovecot/src/lib/version.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          159
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - str_begins
        - str_begins_builtin_success
        - str_to_uint
        - str_uint_equals
        - strchr
        - strlen
        - strncmp
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'version.c:19,28'
          Dst:             strlen
        - Src:             'version.c:22,7'
          Dst:             str_begins
        - Src:             'version.c:22,7'
          Dst:             strncmp
        - Src:             'version.c:22,7'
          Dst:             str_begins_builtin_success
        - Src:             'version.c:25,6'
          Dst:             strncmp
        - Src:             'version.c:30,2'
          Dst:             t_push
        - Src:             'version.c:31,19'
          Dst:             strchr
        - Src:             'version.c:36,26'
          Dst:             t_strdup_until
        - Src:             'version.c:36,10'
          Dst:             str_uint_equals
        - Src:             'version.c:38,8'
          Dst:             str_to_uint
        - Src:             'version.c:41,4'
          Dst:             t_pop
        - Src:             'version.c:41,4'
          Dst:             i_panic
    - functionName:    version_string_verify
      functionSourceFile: '/src/dovecot/src/lib/version.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 12
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - version_string_verify_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'version.c:11,9'
          Dst:             version_string_verify_full
    - 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:    3
      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:    1
      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:    4
      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:    13
      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:    14
      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:    client_dict_lookup_async_callback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          209
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - client_dict_cmd_get_log_query
        - client_dict_disconnect
        - dict_post_api_callback
        - dict_pre_api_callback
        - dict_warnings_sec
        - e_warning
        - t_strdup_printf
        - t_strsplit_tabescaped
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-client.c:850,9'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-client.c:857,19'
          Dst:             t_strsplit_tabescaped
        - Src:             'dict-client.c:866,4'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:873,4'
          Dst:             client_dict_cmd_get_log_query
        - Src:             'dict-client.c:871,18'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:878,3'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:883,19'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:887,18'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:886,18'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:890,3'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:890,3'
          Dst:             client_dict_cmd_get_log_query
        - Src:             'dict-client.c:890,3'
          Dst:             e_warning
        - Src:             'dict-client.c:895,2'
          Dst:             dict_pre_api_callback
        - Src:             'dict-client.c:897,2'
          Dst:             dict_post_api_callback
    - functionName:    client_dict_cmd_get_log_query
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - strchr
        - t_strcut
        - t_strdup_printf
        - t_strdup_until
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:193,14'
          Dst:             strchr
        - Src:             'dict-client.c:200,2'
          Dst:             i_panic
        - Src:             'dict-client.c:203,10'
          Dst:             t_strdup_until
        - Src:             'dict-client.c:205,24'
          Dst:             t_strcut
        - Src:             'dict-client.c:204,9'
          Dst:             t_strdup_printf
    - functionName:    client_dict_disconnect
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_abort_commands
        - connection_disconnect
        - timeout_remove
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:567,2'
          Dst:             client_dict_abort_commands
        - Src:             'dict-client.c:569,2'
          Dst:             timeout_remove
        - Src:             'dict-client.c:570,2'
          Dst:             connection_disconnect
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    dict_warnings_sec
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          179
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - dict_wait_warnings
        - str_append_c
        - str_array_length
        - str_c
        - str_printfa
        - str_to_time
        - str_to_uint
        - t_str_new
        - timeval_diff_msecs
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:793,18'
          Dst:             t_str_new
        - Src:             'dict-client.c:798,7'
          Dst:             dict_wait_warnings
        - Src:             'dict-client.c:797,2'
          Dst:             str_printfa
        - Src:             'dict-client.c:801,4'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:803,3'
          Dst:             str_printfa
        - Src:             'dict-client.c:808,4'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:809,3'
          Dst:             str_printfa
        - Src:             'dict-client.c:813,6'
          Dst:             str_array_length
        - Src:             'dict-client.c:814,6'
          Dst:             str_to_time
        - Src:             'dict-client.c:815,6'
          Dst:             str_to_uint
        - Src:             'dict-client.c:816,6'
          Dst:             str_to_time
        - Src:             'dict-client.c:817,6'
          Dst:             str_to_uint
        - Src:             'dict-client.c:822,4'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:823,28'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:824,3'
          Dst:             str_printfa
        - Src:             'dict-client.c:830,2'
          Dst:             str_append_c
        - Src:             'dict-client.c:831,9'
          Dst:             str_c
    - functionName:    dict_wait_warnings
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          66
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_lock_wait_get_total_usecs
        - io_wait_timer_get_usecs
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:776,27'
          Dst:             io_wait_timer_get_usecs
        - Src:             'dict-client.c:779,20'
          Dst:             file_lock_wait_get_total_usecs
        - Src:             'dict-client.c:782,9'
          Dst:             t_strdup_printf
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    client_dict_abort_commands
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_array_i
        - array_clear_i
        - array_count_i
        - array_create_i
        - client_dict_cmd_unref
        - dict_cmd_callback_error
        - i_memcpy
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:555,2'
          Dst:             pool_datastack_create
        - Src:             'dict-client.c:555,2'
          Dst:             array_count_i
        - Src:             'dict-client.c:555,2'
          Dst:             array_create_i
        - Src:             'dict-client.c:556,2'
          Dst:             array_append_array_i
        - Src:             'dict-client.c:557,2'
          Dst:             array_clear_i
        - Src:             'dict-client.c:559,2'
          Dst:             i_memcpy
        - Src:             'dict-client.c:560,3'
          Dst:             dict_cmd_callback_error
        - Src:             'dict-client.c:561,3'
          Dst:             client_dict_cmd_unref
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    4
      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:    array_append_array_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:223,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:224,2'
          Dst:             buffer_append_buf
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    dict_cmd_callback_error
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:253,2'
          Dst:             timeout_remove
        - Src:             'dict-client.c:258,2'
          Dst:             i_panic
    - functionName:    client_dict_cmd_unref
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:216,2'
          Dst:             i_panic
        - Src:             'dict-client.c:220,2'
          Dst:             i_panic
        - Src:             'dict-client.c:222,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:223,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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_append
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    client_dict_send_transaction_query
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_append
        - str_len
        - str_printfa
        - str_tabescape
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:371,6'
          Dst:             str_len
        - Src:             'dict-client.c:376,8'
          Dst:             str_tabescape
        - Src:             'dict-client.c:373,3'
          Dst:             str_printfa
        - Src:             'dict-client.c:380,2'
          Dst:             str_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    client_dict_transaction_free
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1218
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - str_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1222,2'
          Dst:             str_free
        - Src:             'dict-client.c:1223,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:1224,2'
          Dst:             p_free_internal
    - functionName:    client_dict_transaction_commit_callback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1296
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          246
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - client_dict_cmd_get_log_query
        - client_dict_disconnect
        - client_dict_transaction_free
        - dict_post_api_callback
        - dict_pre_api_callback
        - dict_warnings_sec
        - e_warning
        - i_panic
        - t_str_tabunescape
        - t_strdup_printf
        - timeval_diff_msecs
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-client.c:1246,9'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-client.c:1239,2'
          Dst:             i_panic
        - Src:             'dict-client.c:1261,20'
          Dst:             t_str_tabunescape
        - Src:             'dict-client.c:1260,18'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1268,18'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1275,3'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:1279,19'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:1283,18'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:1282,18'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1286,3'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:1286,3'
          Dst:             client_dict_cmd_get_log_query
        - Src:             'dict-client.c:1286,3'
          Dst:             e_warning
        - Src:             'dict-client.c:1291,2'
          Dst:             client_dict_transaction_free
        - Src:             'dict-client.c:1293,2'
          Dst:             dict_pre_api_callback
        - Src:             'dict-client.c:1295,2'
          Dst:             dict_post_api_callback
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    client_dict_iterate_unref
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 979
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:974,2'
          Dst:             i_panic
        - Src:             'dict-client.c:977,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:978,2'
          Dst:             p_free_internal
    - functionName:    client_dict_iter_api_callback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1022
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          168
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - client_dict_cmd_get_log_query
        - dict_post_api_callback
        - dict_pre_api_callback
        - dict_warnings_sec
        - e_warning
        - i_strdup_printf
        - io_loop_stop
        - p_free_internal
        - timeval_diff_msecs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:991,3'
          Dst:             dict_post_api_callback
        - Src:             'dict-client.c:995,20'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:1000,17'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:999,22'
          Dst:             i_strdup_printf
        - Src:             'dict-client.c:1001,4'
          Dst:             p_free_internal
        - Src:             'dict-client.c:1005,4'
          Dst:             dict_warnings_sec
        - Src:             'dict-client.c:1005,4'
          Dst:             client_dict_cmd_get_log_query
        - Src:             'dict-client.c:1005,4'
          Dst:             e_warning
        - Src:             'dict-client.c:1012,3'
          Dst:             io_loop_stop
        - Src:             'dict-client.c:1018,3'
          Dst:             dict_pre_api_callback
        - Src:             'dict-client.c:1020,3'
          Dst:             dict_post_api_callback
    - functionName:    client_dict_iter_async_callback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          256
      EdgeCount:       45
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_space_i
        - client_dict_disconnect
        - client_dict_iter_api_callback
        - client_dict_iterate_unref
        - i_panic
        - i_strdup
        - p_strarray_dup
        - p_strdup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-client.c:1042,9'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-client.c:1045,3'
          Dst:             i_panic
        - Src:             'dict-client.c:1047,3'
          Dst:             client_dict_iter_api_callback
        - Src:             'dict-client.c:1048,3'
          Dst:             client_dict_iterate_unref
        - Src:             'dict-client.c:1057,11'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1064,11'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1067,3'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:1073,17'
          Dst:             i_strdup
        - Src:             'dict-client.c:1074,3'
          Dst:             i_panic
        - Src:             'dict-client.c:1076,3'
          Dst:             client_dict_iter_api_callback
        - Src:             'dict-client.c:1077,3'
          Dst:             client_dict_iterate_unref
        - Src:             'dict-client.c:1087,11'
          Dst:             array_append_space_i
        - Src:             'dict-client.c:1088,16'
          Dst:             p_strdup
        - Src:             'dict-client.c:1089,19'
          Dst:             p_strarray_dup
        - Src:             'dict-client.c:1091,2'
          Dst:             client_dict_iter_api_callback
    - functionName:    client_dict_cmd_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_lock_wait_get_total_usecs
        - i_strdup
        - io_loop_time_refresh
        - io_wait_timer_get_usecs
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:175,2'
          Dst:             io_loop_time_refresh
        - Src:             'dict-client.c:177,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-client.c:177,8'
          Dst:             p_malloc
        - Src:             'dict-client.c:180,15'
          Dst:             i_strdup
        - Src:             'dict-client.c:183,33'
          Dst:             io_wait_timer_get_usecs
        - Src:             'dict-client.c:184,26'
          Dst:             file_lock_wait_get_total_usecs
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    client_dict_iterate_cmd_send
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          89
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - client_dict_cmd_init
        - client_dict_cmd_send
        - str_append_c
        - str_append_tabescaped
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1117,20'
          Dst:             t_str_new
        - Src:             'dict-client.c:1121,2'
          Dst:             str_printfa
        - Src:             'dict-client.c:1123,2'
          Dst:             str_append_c
        - Src:             'dict-client.c:1124,2'
          Dst:             str_append_tabescaped
        - Src:             'dict-client.c:1125,2'
          Dst:             str_append_c
        - Src:             'dict-client.c:1126,2'
          Dst:             str_append_tabescaped
        - Src:             'dict-client.c:1127,2'
          Dst:             str_append_c
        - Src:             'dict-client.c:1129,35'
          Dst:             str_c
        - Src:             'dict-client.c:1129,8'
          Dst:             client_dict_cmd_init
        - Src:             'dict-client.c:1135,2'
          Dst:             client_dict_cmd_send
    - functionName:    client_dict_cmd_send
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          236
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - array_append_i
        - client_dict_cmd_query_send
        - client_dict_cmd_unref
        - client_dict_connect
        - client_dict_input_timeout
        - client_dict_reconnect
        - dict_cmd_callback_error
        - i_panic
        - o_stream_get_error
        - t_strdup_printf
        - timeout_add
        - timeout_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:319,2'
          Dst:             timeout_remove
        - Src:             'dict-client.c:321,6'
          Dst:             client_dict_connect
        - Src:             'dict-client.c:325,9'
          Dst:             client_dict_cmd_query_send
        - Src:             'dict-client.c:328,6'
          Dst:             o_stream_get_error
        - Src:             'dict-client.c:327,12'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:333,7'
          Dst:             client_dict_reconnect
        - Src:             'dict-client.c:335,12'
          Dst:             client_dict_cmd_query_send
        - Src:             'dict-client.c:337,5'
          Dst:             o_stream_get_error
        - Src:             'dict-client.c:336,12'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:345,3'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:348,3'
          Dst:             i_panic
        - Src:             'dict-client.c:350,3'
          Dst:             dict_cmd_callback_error
        - Src:             'dict-client.c:351,3'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:356,3'
          Dst:             i_panic
        - Src:             'dict-client.c:359,5'
          Dst:             timeout_add
        - Src:             'dict-client.c:359,5'
          Dst:             client_dict_input_timeout
        - Src:             'dict-client.c:362,3'
          Dst:             array_append_i
    - functionName:    client_dict_connect
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          132
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - client_dict_add_timeout
        - connection_client_connect
        - eacces_error_get
        - i_strdup
        - o_stream_nsend_str
        - p_free_internal
        - str_tabescape
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:523,6'
          Dst:             connection_client_connect
        - Src:             'dict-client.c:525,7'
          Dst:             __errno_location
        - Src:             'dict-client.c:526,12'
          Dst:             eacces_error_get
        - Src:             'dict-client.c:529,12'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:532,3'
          Dst:             p_free_internal
        - Src:             'dict-client.c:533,30'
          Dst:             i_strdup
        - Src:             'dict-client.c:542,5'
          Dst:             str_tabescape
        - Src:             'dict-client.c:538,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:543,2'
          Dst:             o_stream_nsend_str
        - Src:             'dict-client.c:544,2'
          Dst:             client_dict_add_timeout
    - functionName:    client_dict_cmd_query_send
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - o_stream_send
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:296,15'
          Dst:             strlen
        - Src:             'dict-client.c:299,8'
          Dst:             o_stream_send
        - Src:             'dict-client.c:302,2'
          Dst:             i_panic
    - functionName:    client_dict_reconnect
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          269
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_idx_i
        - client_dict_cmd_send
        - client_dict_cmd_unref
        - client_dict_connect
        - client_dict_disconnect
        - dict_cmd_callback_error
        - e_warning
        - i_memcpy
        - pool_datastack_create
        - t_strdup_printf
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:581,2'
          Dst:             pool_datastack_create
        - Src:             'dict-client.c:581,2'
          Dst:             array_count_i
        - Src:             'dict-client.c:581,2'
          Dst:             array_create_i
        - Src:             'dict-client.c:582,31'
          Dst:             array_count_i
        - Src:             'dict-client.c:583,9'
          Dst:             array_idx_i
        - Src:             'dict-client.c:593,4'
          Dst:             array_append_i
        - Src:             'dict-client.c:595,4'
          Dst:             timeout_remove
        - Src:             'dict-client.c:596,4'
          Dst:             array_delete_i
        - Src:             'dict-client.c:599,2'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:600,6'
          Dst:             client_dict_connect
        - Src:             'dict-client.c:601,12'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:603,3'
          Dst:             i_memcpy
        - Src:             'dict-client.c:604,4'
          Dst:             dict_cmd_callback_error
        - Src:             'dict-client.c:605,4'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:609,6'
          Dst:             array_count_i
        - Src:             'dict-client.c:611,2'
          Dst:             e_warning
        - Src:             'dict-client.c:614,2'
          Dst:             i_memcpy
        - Src:             'dict-client.c:620,4'
          Dst:             dict_cmd_callback_error
        - Src:             'dict-client.c:621,4'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:622,15'
          Dst:             client_dict_cmd_send
    - functionName:    client_dict_input_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          112
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - client_dict_cmd_get_log_query
        - client_dict_input_timeout
        - client_dict_reconnect
        - connection_input_timeout_reason
        - dict_wait_warnings
        - io_wait_timer_get_usecs
        - t_strdup_printf
        - timeout_add
        - timeout_remove
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:271,4'
          Dst:             io_wait_timer_get_usecs
        - Src:             'dict-client.c:274,3'
          Dst:             timeout_remove
        - Src:             'dict-client.c:276,4'
          Dst:             timeout_add
        - Src:             'dict-client.c:276,4'
          Dst:             client_dict_input_timeout
        - Src:             'dict-client.c:282,23'
          Dst:             timeval_diff_msecs
        - Src:             'dict-client.c:287,3'
          Dst:             connection_input_timeout_reason
        - Src:             'dict-client.c:288,3'
          Dst:             array_count_i
        - Src:             'dict-client.c:289,33'
          Dst:             client_dict_cmd_get_log_query
        - Src:             'dict-client.c:290,3'
          Dst:             dict_wait_warnings
        - Src:             'dict-client.c:284,36'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:284,8'
          Dst:             client_dict_reconnect
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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_delete_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    2
      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:    client_dict_add_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - client_dict_is_finished
        - client_dict_timeout
        - timeout_add
        - timeout_reset
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:400,4'
          Dst:             timeout_reset
        - Src:             'dict-client.c:401,13'
          Dst:             client_dict_is_finished
        - Src:             'dict-client.c:402,19'
          Dst:             timeout_add
        - Src:             'dict-client.c:402,19'
          Dst:             client_dict_timeout
    - functionName:    client_dict_is_finished
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:385,39'
          Dst:             array_count_i
    - functionName:    client_dict_timeout
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - client_dict_disconnect
        - client_dict_is_finished
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:390,6'
          Dst:             client_dict_is_finished
        - Src:             'dict-client.c:391,3'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:393,3'
          Dst:             timeout_remove
    - functionName:    client_dict_lookup_callback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup
        - p_strarray_dup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:932,19'
          Dst:             i_strdup
        - Src:             'dict-client.c:937,20'
          Dst:             p_strarray_dup
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    dict_cmd_callback_line
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:242,2'
          Dst:             timeout_remove
    - functionName:    client_dict_cmd_ref
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 212
      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:             'dict-client.c:210,2'
          Dst:             i_panic
    - functionName:    dict_conn_find_async_id
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - e_error
        - i_panic
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:442,2'
          Dst:             i_panic
        - Src:             'dict-client.c:444,6'
          Dst:             str_to_uint
        - Src:             'dict-client.c:445,3'
          Dst:             e_error
        - Src:             'dict-client.c:450,9'
          Dst:             array_get_i
        - Src:             'dict-client.c:457,2'
          Dst:             e_error
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    dict_conn_assign_next_async_id
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_i
        - e_error
        - i_panic
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:414,2'
          Dst:             i_panic
        - Src:             'dict-client.c:416,6'
          Dst:             str_to_uint
        - Src:             'dict-client.c:417,3'
          Dst:             e_error
        - Src:             'dict-client.c:421,9'
          Dst:             array_get_i
        - Src:             'dict-client.c:429,2'
          Dst:             e_error
    - functionName:    dict_conn_input_line
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          218
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - array_delete_i
        - array_get_i
        - client_dict_add_timeout
        - client_dict_cmd_ref
        - client_dict_cmd_unref
        - dict_cmd_callback_line
        - dict_conn_assign_next_async_id
        - dict_conn_find_async_id
        - e_error
        - i_panic
        - t_strsplit_tabescaped
        - timeout_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:473,10'
          Dst:             dict_conn_assign_next_async_id
        - Src:             'dict-client.c:475,9'
          Dst:             array_get_i
        - Src:             'dict-client.c:477,3'
          Dst:             e_error
        - Src:             'dict-client.c:482,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'dict-client.c:484,7'
          Dst:             dict_conn_find_async_id
        - Src:             'dict-client.c:490,2'
          Dst:             i_panic
        - Src:             'dict-client.c:492,2'
          Dst:             client_dict_cmd_ref
        - Src:             'dict-client.c:494,3'
          Dst:             timeout_reset
        - Src:             'dict-client.c:495,13'
          Dst:             dict_cmd_callback_line
        - Src:             'dict-client.c:496,7'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:504,2'
          Dst:             client_dict_cmd_unref
        - Src:             'dict-client.c:505,2'
          Dst:             array_delete_i
        - Src:             'dict-client.c:507,2'
          Dst:             client_dict_add_timeout
    - functionName:    dict_conn_destroy
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - client_dict_reconnect
        - connection_disconnect_reason
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:637,3'
          Dst:             connection_disconnect_reason
        - Src:             'dict-client.c:638,3'
          Dst:             array_count_i
        - Src:             'dict-client.c:634,42'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:634,8'
          Dst:             client_dict_reconnect
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    client_dict_set_hide_log_values
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1429
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_send_transaction_query
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1423,16'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1428,9'
          Dst:             client_dict_send_transaction_query
    - functionName:    client_dict_set_timestamp
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1404
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_send_transaction_query
        - dec2str
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1411,14'
          Dst:             dec2str
        - Src:             'dict-client.c:1409,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1413,2'
          Dst:             client_dict_send_transaction_query
    - functionName:    client_dict_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          132
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_count_i
        - connection_switch_ioloop
        - i_memcpy
        - io_loop_move_timeout
        - io_wait_timer_get_usecs
        - io_wait_timer_move
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:755,3'
          Dst:             io_wait_timer_get_usecs
        - Src:             'dict-client.c:756,21'
          Dst:             io_wait_timer_move
        - Src:             'dict-client.c:758,19'
          Dst:             io_loop_move_timeout
        - Src:             'dict-client.c:761,2'
          Dst:             i_memcpy
        - Src:             'dict-client.c:764,5'
          Dst:             io_loop_move_timeout
        - Src:             'dict-client.c:768,2'
          Dst:             connection_switch_ioloop
        - Src:             'dict-client.c:769,9'
          Dst:             array_count_i
    - functionName:    client_dict_lookup_async
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - client_dict_cmd_init
        - client_dict_cmd_send
        - str_tabescape
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:910,5'
          Dst:             str_tabescape
        - Src:             'dict-client.c:911,34'
          Dst:             str_tabescape
        - Src:             'dict-client.c:909,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:912,8'
          Dst:             client_dict_cmd_init
        - Src:             'dict-client.c:918,2'
          Dst:             client_dict_cmd_send
    - functionName:    client_dict_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1400
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_send_transaction_query
        - str_tabescape
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1398,14'
          Dst:             str_tabescape
        - Src:             'dict-client.c:1396,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1399,2'
          Dst:             client_dict_send_transaction_query
    - functionName:    client_dict_unset
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_send_transaction_query
        - str_tabescape
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1382,5'
          Dst:             str_tabescape
        - Src:             'dict-client.c:1380,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1383,2'
          Dst:             client_dict_send_transaction_query
    - functionName:    client_dict_set
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - client_dict_send_transaction_query
        - str_tabescape
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1368,5'
          Dst:             str_tabescape
        - Src:             'dict-client.c:1369,5'
          Dst:             str_tabescape
        - Src:             'dict-client.c:1366,10'
          Dst:             t_strdup_printf
        - Src:             'dict-client.c:1370,2'
          Dst:             client_dict_send_transaction_query
    - functionName:    client_dict_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1349
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - client_dict_add_timeout
        - client_dict_transaction_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1355,2'
          Dst:             client_dict_transaction_free
        - Src:             'dict-client.c:1356,2'
          Dst:             client_dict_add_timeout
    - functionName:    client_dict_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1345
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          233
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - client_dict_add_timeout
        - client_dict_cmd_init
        - client_dict_cmd_send
        - client_dict_transaction_free
        - client_dict_wait
        - str_c
        - str_len
        - str_printfa
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1312,6'
          Dst:             str_len
        - Src:             'dict-client.c:1313,3'
          Dst:             str_printfa
        - Src:             'dict-client.c:1315,36'
          Dst:             str_c
        - Src:             'dict-client.c:1315,9'
          Dst:             client_dict_cmd_init
        - Src:             'dict-client.c:1324,7'
          Dst:             client_dict_cmd_send
        - Src:             'dict-client.c:1326,5'
          Dst:             client_dict_wait
        - Src:             'dict-client.c:1334,3'
          Dst:             client_dict_transaction_free
        - Src:             'dict-client.c:1341,3'
          Dst:             client_dict_transaction_free
        - Src:             'dict-client.c:1344,2'
          Dst:             client_dict_add_timeout
    - functionName:    client_dict_wait
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - dict_switch_ioloop
        - i_panic
        - io_loop_is_empty
        - io_loop_run
        - io_loop_set_current
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:733,6'
          Dst:             array_count_i
        - Src:             'dict-client.c:736,2'
          Dst:             io_loop_is_empty
        - Src:             'dict-client.c:736,2'
          Dst:             i_panic
        - Src:             'dict-client.c:738,2'
          Dst:             io_loop_set_current
        - Src:             'dict-client.c:739,2'
          Dst:             dict_switch_ioloop
        - Src:             'dict-client.c:740,9'
          Dst:             array_count_i
        - Src:             'dict-client.c:741,3'
          Dst:             io_loop_run
        - Src:             'dict-client.c:743,2'
          Dst:             io_loop_set_current
        - Src:             'dict-client.c:746,2'
          Dst:             dict_switch_ioloop
        - Src:             'dict-client.c:747,2'
          Dst:             io_loop_is_empty
        - Src:             'dict-client.c:747,2'
          Dst:             i_panic
    - functionName:    client_dict_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          82
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1206,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-client.c:1206,8'
          Dst:             p_malloc
        - Src:             'dict-client.c:1209,17'
          Dst:             str_new
    - functionName:    client_dict_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - client_dict_add_timeout
        - client_dict_iterate_unref
        - i_panic
        - p_free_internal
        - pool_unref
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1187,2'
          Dst:             i_panic
        - Src:             'dict-client.c:1190,13'
          Dst:             t_strdup
        - Src:             'dict-client.c:1191,2'
          Dst:             array_free_i
        - Src:             'dict-client.c:1192,2'
          Dst:             pool_unref
        - Src:             'dict-client.c:1193,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:1194,2'
          Dst:             client_dict_iterate_unref
        - Src:             'dict-client.c:1196,2'
          Dst:             client_dict_add_timeout
    - functionName:    client_dict_iterate
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          178
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - array_clear_i
        - array_get_i
        - client_dict_iterate
        - client_dict_iterate_cmd_send
        - client_dict_wait
        - p_clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1151,12'
          Dst:             array_get_i
        - Src:             'dict-client.c:1163,3'
          Dst:             client_dict_iterate_cmd_send
        - Src:             'dict-client.c:1165,10'
          Dst:             client_dict_iterate
        - Src:             'dict-client.c:1169,2'
          Dst:             array_clear_i
        - Src:             'dict-client.c:1170,2'
          Dst:             p_clear
        - Src:             'dict-client.c:1173,3'
          Dst:             client_dict_wait
        - Src:             'dict-client.c:1174,10'
          Dst:             client_dict_iterate
    - functionName:    client_dict_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1098
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:1101,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-client.c:1101,8'
          Dst:             p_malloc
        - Src:             'dict-client.c:1103,22'
          Dst:             pool_alloconly_create
        - Src:             'dict-client.c:1105,14'
          Dst:             i_strdup
        - Src:             'dict-client.c:1107,2'
          Dst:             array_create_i
    - functionName:    client_dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - client_dict_lookup_callback
        - client_dict_wait
        - dict_lookup_async
        - i_panic
        - i_unreached
        - p_free_internal
        - p_strarray_dup
        - t_strdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'dict-client.c:956,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-client.c:952,2'
          Dst:             dict_lookup_async
        - Src:             'dict-client.c:952,2'
          Dst:             client_dict_lookup_callback
        - Src:             'dict-client.c:954,3'
          Dst:             client_dict_wait
        - Src:             'dict-client.c:958,14'
          Dst:             t_strdup
        - Src:             'dict-client.c:959,3'
          Dst:             p_free_internal
        - Src:             'dict-client.c:962,3'
          Dst:             i_panic
        - Src:             'dict-client.c:965,15'
          Dst:             p_strarray_dup
        - Src:             'dict-client.c:966,3'
          Dst:             p_free_internal
        - Src:             'dict-client.c:969,2'
          Dst:             i_unreached
    - functionName:    client_dict_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_free_i
        - client_dict_disconnect
        - connection_deinit
        - connection_list_deinit
        - i_panic
        - io_loop_destroy
        - io_loop_set_current
        - io_wait_timer_remove
        - p_free_internal
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:709,2'
          Dst:             client_dict_disconnect
        - Src:             'dict-client.c:710,2'
          Dst:             connection_deinit
        - Src:             'dict-client.c:711,2'
          Dst:             io_wait_timer_remove
        - Src:             'dict-client.c:713,2'
          Dst:             i_panic
        - Src:             'dict-client.c:714,2'
          Dst:             array_count_i
        - Src:             'dict-client.c:714,2'
          Dst:             i_panic
        - Src:             'dict-client.c:716,2'
          Dst:             io_loop_set_current
        - Src:             'dict-client.c:717,2'
          Dst:             io_loop_destroy
        - Src:             'dict-client.c:718,2'
          Dst:             io_loop_set_current
        - Src:             'dict-client.c:720,2'
          Dst:             array_free_i
        - Src:             'dict-client.c:721,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:722,2'
          Dst:             pool_unref
        - Src:             'dict-client.c:723,2'
          Dst:             p_free_internal
        - Src:             'dict-client.c:726,3'
          Dst:             connection_list_deinit
    - functionName:    client_dict_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          171
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - connection_init_client_unix
        - connection_list_init
        - io_loop_create
        - io_loop_set_current
        - io_wait_timer_add
        - malloc_multiply_check
        - master_service_get_service_settings
        - p_malloc
        - pool_unref
        - settings_get
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-client.c:659,6'
          Dst:             settings_get
        - Src:             'dict-client.c:664,3'
          Dst:             pool_unref
        - Src:             'dict-client.c:668,3'
          Dst:             master_service_get_service_settings
        - Src:             'dict-client.c:675,22'
          Dst:             connection_list_init
        - Src:             'dict-client.c:679,9'
          Dst:             malloc_multiply_check
        - Src:             'dict-client.c:679,9'
          Dst:             p_malloc
        - Src:             'dict-client.c:684,2'
          Dst:             array_create_i
        - Src:             'dict-client.c:691,10'
          Dst:             t_strconcat
        - Src:             'dict-client.c:694,2'
          Dst:             connection_init_client_unix
        - Src:             'dict-client.c:696,22'
          Dst:             io_loop_create
        - Src:             'dict-client.c:697,21'
          Dst:             io_wait_timer_add
        - Src:             'dict-client.c:698,2'
          Dst:             io_loop_set_current
    - functionName:    fs_dict_write_changes
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          158
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - fs_delete
        - fs_dict_get_full_key
        - fs_file_deinit
        - fs_file_init
        - fs_file_last_error
        - fs_write
        - i_unreached
        - strlen
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dict-fs.c:270,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dict-fs.c:269,9'
          Dst:             fs_dict_get_full_key
        - Src:             'dict-fs.c:272,11'
          Dst:             fs_file_init
        - Src:             'dict-fs.c:274,42'
          Dst:             strlen
        - Src:             'dict-fs.c:274,8'
          Dst:             fs_write
        - Src:             'dict-fs.c:277,6'
          Dst:             fs_file_last_error
        - Src:             'dict-fs.c:275,16'
          Dst:             t_strdup_printf
        - Src:             'dict-fs.c:280,4'
          Dst:             fs_file_deinit
        - Src:             'dict-fs.c:283,11'
          Dst:             fs_file_init
        - Src:             'dict-fs.c:284,8'
          Dst:             fs_delete
        - Src:             'dict-fs.c:287,6'
          Dst:             fs_file_last_error
        - Src:             'dict-fs.c:285,16'
          Dst:             t_strdup_printf
        - Src:             'dict-fs.c:290,4'
          Dst:             fs_file_deinit
        - Src:             'dict-fs.c:293,4'
          Dst:             i_unreached
    - functionName:    fs_dict_get_full_key
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          105
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - fs_dict_escape_key
        - i_unreached
        - str_begins
        - str_begins_builtin_success
        - strncmp
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:92,8'
          Dst:             fs_dict_escape_key
        - Src:             'dict-fs.c:93,6'
          Dst:             str_begins
        - Src:             'dict-fs.c:93,6'
          Dst:             strncmp
        - Src:             'dict-fs.c:93,6'
          Dst:             str_begins_builtin_success
        - Src:             'dict-fs.c:95,11'
          Dst:             str_begins
        - Src:             'dict-fs.c:95,11'
          Dst:             strncmp
        - Src:             'dict-fs.c:95,11'
          Dst:             str_begins_builtin_success
        - Src:             'dict-fs.c:96,35'
          Dst:             fs_dict_escape_key
        - Src:             'dict-fs.c:96,10'
          Dst:             t_strdup_printf
        - Src:             'dict-fs.c:98,3'
          Dst:             i_unreached
    - functionName:    fs_dict_escape_key
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          173
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - str_append
        - str_append_data
        - str_begins_with
        - str_c
        - strlen
        - strncmp
        - strstr
        - t_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:63,6'
          Dst:             strncmp
        - Src:             'dict-fs.c:63,6'
          Dst:             str_begins_with
        - Src:             'dict-fs.c:63,36'
          Dst:             strncmp
        - Src:             'dict-fs.c:63,36'
          Dst:             str_begins_with
        - Src:             'dict-fs.c:64,23'
          Dst:             strlen
        - Src:             'dict-fs.c:64,13'
          Dst:             t_str_new
        - Src:             'dict-fs.c:65,3'
          Dst:             str_append
        - Src:             'dict-fs.c:69,16'
          Dst:             strstr
        - Src:             'dict-fs.c:75,24'
          Dst:             strlen
        - Src:             'dict-fs.c:75,14'
          Dst:             t_str_new
        - Src:             'dict-fs.c:76,3'
          Dst:             str_append_data
        - Src:             'dict-fs.c:79,4'
          Dst:             str_append
        - Src:             'dict-fs.c:81,4'
          Dst:             str_append
        - Src:             'dict-fs.c:86,2'
          Dst:             str_append
        - Src:             'dict-fs.c:87,9'
          Dst:             str_c
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    p_clear
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/../../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-dict-extra/../../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:    fs_dict_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_dict_write_changes
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:312,6'
          Dst:             fs_dict_write_changes
        - Src:             'dict-fs.c:314,2'
          Dst:             pool_unref
    - functionName:    fs_dict_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dict_transaction_memory_init
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:253,9'
          Dst:             pool_alloconly_create
        - Src:             'dict-fs.c:254,8'
          Dst:             malloc_multiply_check
        - Src:             'dict-fs.c:254,8'
          Dst:             p_malloc
        - Src:             'dict-fs.c:255,2'
          Dst:             dict_transaction_memory_init
    - functionName:    fs_dict_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - fs_iter_deinit
        - i_strdup
        - p_free_internal
        - pool_unref
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:234,6'
          Dst:             fs_iter_deinit
        - Src:             'dict-fs.c:235,17'
          Dst:             i_strdup
        - Src:             'dict-fs.c:238,13'
          Dst:             t_strdup
        - Src:             'dict-fs.c:240,2'
          Dst:             pool_unref
        - Src:             'dict-fs.c:241,2'
          Dst:             p_free_internal
        - Src:             'dict-fs.c:242,2'
          Dst:             p_free_internal
        - Src:             'dict-fs.c:243,2'
          Dst:             p_free_internal
    - functionName:    fs_dict_iterate
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          217
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - fs_dict_iterate
        - fs_dict_lookup
        - fs_iter_deinit
        - fs_iter_next
        - i_strdup
        - p_clear
        - p_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:185,11'
          Dst:             fs_iter_next
        - Src:             'dict-fs.c:191,7'
          Dst:             fs_iter_deinit
        - Src:             'dict-fs.c:193,7'
          Dst:             __errno_location
        - Src:             'dict-fs.c:194,18'
          Dst:             i_strdup
        - Src:             'dict-fs.c:202,2'
          Dst:             p_clear
        - Src:             'dict-fs.c:203,9'
          Dst:             p_strconcat
        - Src:             'dict-fs.c:211,8'
          Dst:             fs_dict_lookup
        - Src:             'dict-fs.c:215,17'
          Dst:             i_strdup
        - Src:             'dict-fs.c:219,10'
          Dst:             fs_dict_iterate
    - functionName:    fs_dict_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          140
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - fs_dict_get_full_key
        - fs_file_deinit
        - fs_file_init
        - fs_read_stream
        - i_panic
        - i_stream_get_data_size
        - i_stream_get_error
        - i_stream_read
        - i_stream_read_more
        - i_stream_skip
        - i_stream_unref
        - malloc_multiply_check
        - p_malloc
        - str_append_data
        - str_c
        - str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:114,9'
          Dst:             fs_dict_get_full_key
        - Src:             'dict-fs.c:115,9'
          Dst:             fs_file_init
        - Src:             'dict-fs.c:116,10'
          Dst:             fs_read_stream
        - Src:             'dict-fs.c:117,8'
          Dst:             i_stream_read
        - Src:             'dict-fs.c:119,22'
          Dst:             i_stream_get_data_size
        - Src:             'dict-fs.c:119,8'
          Dst:             str_new
        - Src:             'dict-fs.c:120,16'
          Dst:             i_stream_read_more
        - Src:             'dict-fs.c:121,3'
          Dst:             str_append_data
        - Src:             'dict-fs.c:122,3'
          Dst:             i_stream_skip
        - Src:             'dict-fs.c:124,2'
          Dst:             i_panic
        - Src:             'dict-fs.c:127,25'
          Dst:             malloc_multiply_check
        - Src:             'dict-fs.c:127,25'
          Dst:             p_malloc
        - Src:             'dict-fs.c:128,15'
          Dst:             str_c
        - Src:             'dict-fs.c:136,11'
          Dst:             i_stream_get_error
        - Src:             'dict-fs.c:135,15'
          Dst:             t_strdup_printf
        - Src:             'dict-fs.c:140,2'
          Dst:             i_stream_unref
        - Src:             'dict-fs.c:141,2'
          Dst:             fs_file_deinit
    - functionName:    fs_dict_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - fs_dict_get_full_key
        - fs_iter_init
        - i_strdup
        - i_strdup_printf
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:152,9'
          Dst:             malloc_multiply_check
        - Src:             'dict-fs.c:152,9'
          Dst:             p_malloc
        - Src:             'dict-fs.c:154,15'
          Dst:             i_strdup
        - Src:             'dict-fs.c:156,21'
          Dst:             pool_alloconly_create
        - Src:             'dict-fs.c:158,10'
          Dst:             fs_dict_get_full_key
        - Src:             'dict-fs.c:157,18'
          Dst:             fs_iter_init
        - Src:             'dict-fs.c:168,17'
          Dst:             i_strdup_printf
    - functionName:    fs_dict_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - fs_deinit
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:51,2'
          Dst:             fs_deinit
        - Src:             'dict-fs.c:52,2'
          Dst:             p_free_internal
    - functionName:    fs_dict_init
      functionSourceFile: '/src/dovecot/src/lib-dict-extra/dict-fs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fs_init_auto
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dict-fs.c:36,6'
          Dst:             fs_init_auto
        - Src:             'dict-fs.c:39,9'
          Dst:             malloc_multiply_check
        - Src:             'dict-fs.c:39,9'
          Dst:             p_malloc
    - 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:    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:    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:    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:    guid_128_empty
      functionSourceFile: '/src/dovecot/src/lib-master/../../src/lib/guid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      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:    cmd_kick_user_signal
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - master_admin_client_send_reply
        - master_admin_client_unref
        - master_service_set_last_kick_signal_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:75,3'
          Dst:             master_admin_client_send_reply
        - Src:             'master-admin-client.c:82,2'
          Dst:             master_service_set_last_kick_signal_user
        - Src:             'master-admin-client.c:85,2'
          Dst:             master_admin_client_unref
    - functionName:    master_admin_client_send_reply
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - connection_input_resume
        - i_panic
        - master_admin_client_unref
        - o_stream_nsendv
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:171,2'
          Dst:             i_panic
        - Src:             'master-admin-client.c:175,12'
          Dst:             strlen
        - Src:             'master-admin-client.c:179,3'
          Dst:             o_stream_nsendv
        - Src:             'master-admin-client.c:180,3'
          Dst:             connection_input_resume
        - Src:             'master-admin-client.c:184,2'
          Dst:             master_admin_client_unref
    - functionName:    master_admin_client_unref
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:38,2'
          Dst:             i_panic
        - Src:             'master-admin-client.c:42,3'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    cmd_kick_user
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - guid_128_empty
        - guid_128_from_string
        - master_admin_client_send_reply
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:50,3'
          Dst:             master_admin_client_send_reply
        - Src:             'master-admin-client.c:55,3'
          Dst:             guid_128_empty
        - Src:             'master-admin-client.c:56,11'
          Dst:             guid_128_from_string
        - Src:             'master-admin-client.c:57,3'
          Dst:             master_admin_client_send_reply
        - Src:             'master-admin-client.c:61,3'
          Dst:             master_admin_client_send_reply
        - Src:             'master-admin-client.c:65,41'
          Dst:             t_strdup_printf
        - Src:             'master-admin-client.c:65,2'
          Dst:             master_admin_client_send_reply
    - functionName:    master_admin_client_input_args
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          193
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - cmd_kick_user
        - cmd_kick_user_signal
        - connection_input_halt
        - io_loop_stop
        - master_admin_client_ref
        - master_admin_client_unref
        - master_admin_clients_have_pending_commands
        - o_stream_nsend_str
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:115,3'
          Dst:             connection_input_halt
        - Src:             'master-admin-client.c:126,3'
          Dst:             io_loop_stop
        - Src:             'master-admin-client.c:136,21'
          Dst:             strcmp
        - Src:             'master-admin-client.c:139,4'
          Dst:             connection_input_halt
        - Src:             'master-admin-client.c:140,8'
          Dst:             master_admin_clients_have_pending_commands
        - Src:             'master-admin-client.c:143,4'
          Dst:             io_loop_stop
        - Src:             'master-admin-client.c:150,2'
          Dst:             master_admin_client_ref
        - Src:             'master-admin-client.c:153,6'
          Dst:             strcmp
        - Src:             'master-admin-client.c:155,3'
          Dst:             cmd_kick_user
        - Src:             'master-admin-client.c:156,11'
          Dst:             strcmp
        - Src:             'master-admin-client.c:157,3'
          Dst:             cmd_kick_user_signal
        - Src:             'master-admin-client.c:162,3'
          Dst:             o_stream_nsend_str
        - Src:             'master-admin-client.c:163,3'
          Dst:             master_admin_client_unref
    - functionName:    master_admin_clients_have_pending_commands
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_admin_client_ref
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 32
      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:             'master-admin-client.c:30,2'
          Dst:             i_panic
    - functionName:    master_admin_client_destroy
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_deinit
        - master_admin_client_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:192,2'
          Dst:             connection_deinit
        - Src:             'master-admin-client.c:193,2'
          Dst:             master_admin_client_unref
    - functionName:    master_admin_clients_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          23
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connection_list_deinit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:295,3'
          Dst:             connection_list_deinit
    - functionName:    master_admin_clients_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 290
      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:    master_admin_client_can_accept
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:284,25'
          Dst:             strcmp
    - functionName:    master_admin_clients_wait_commands
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - connection_switch_ioloop
        - connection_switch_ioloop_to
        - io_loop_create
        - io_loop_destroy
        - io_loop_run
        - io_loop_stop
        - master_admin_clients_have_pending_commands
        - timeout_add_short
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:258,7'
          Dst:             master_admin_clients_have_pending_commands
        - Src:             'master-admin-client.c:262,26'
          Dst:             io_loop_create
        - Src:             'master-admin-client.c:265,3'
          Dst:             connection_switch_ioloop
        - Src:             'master-admin-client.c:266,23'
          Dst:             timeout_add_short
        - Src:             'master-admin-client.c:266,23'
          Dst:             io_loop_stop
        - Src:             'master-admin-client.c:270,2'
          Dst:             io_loop_run
        - Src:             'master-admin-client.c:273,2'
          Dst:             timeout_remove
        - Src:             'master-admin-client.c:277,3'
          Dst:             connection_switch_ioloop_to
        - Src:             'master-admin-client.c:279,2'
          Dst:             io_loop_destroy
    - functionName:    master_admin_client_initial_read
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_switch_ioloop
        - connection_switch_ioloop_to
        - io_loop_create
        - io_loop_destroy
        - io_loop_run
        - io_loop_stop
        - timeout_add_short
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:215,24'
          Dst:             io_loop_create
        - Src:             'master-admin-client.c:216,2'
          Dst:             connection_switch_ioloop
        - Src:             'master-admin-client.c:218,3'
          Dst:             timeout_add_short
        - Src:             'master-admin-client.c:218,3'
          Dst:             io_loop_stop
        - Src:             'master-admin-client.c:221,2'
          Dst:             io_loop_run
        - Src:             'master-admin-client.c:223,2'
          Dst:             timeout_remove
        - Src:             'master-admin-client.c:224,2'
          Dst:             connection_switch_ioloop_to
        - Src:             'master-admin-client.c:225,2'
          Dst:             io_loop_destroy
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_admin_client_create
      functionSourceFile: '/src/dovecot/src/lib-master/master-admin-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - connection_init_server
        - connection_list_init
        - malloc_multiply_check
        - master_admin_client_initial_read
        - master_admin_client_ref
        - master_admin_client_unref
        - master_service_get_client_limit
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-admin-client.c:234,4'
          Dst:             connection_list_init
        - Src:             'master-admin-client.c:238,11'
          Dst:             malloc_multiply_check
        - Src:             'master-admin-client.c:238,11'
          Dst:             p_malloc
        - Src:             'master-admin-client.c:240,2'
          Dst:             connection_init_server
        - Src:             'master-admin-client.c:242,6'
          Dst:             master_service_get_client_limit
        - Src:             'master-admin-client.c:248,3'
          Dst:             master_admin_client_ref
        - Src:             'master-admin-client.c:249,3'
          Dst:             master_admin_client_initial_read
        - Src:             'master-admin-client.c:250,3'
          Dst:             master_admin_client_unref
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-master/../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    master_instance_list_write
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          124
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_error
        - o_stream_cork
        - o_stream_create_fd
        - o_stream_destroy
        - o_stream_finish
        - o_stream_get_error
        - o_stream_nsend
        - str_append_c
        - str_append_tabescaped
        - str_data
        - str_len
        - str_printfa
        - str_truncate
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:138,18'
          Dst:             t_str_new
        - Src:             'master-instance.c:141,11'
          Dst:             o_stream_create_fd
        - Src:             'master-instance.c:142,2'
          Dst:             o_stream_cork
        - Src:             'master-instance.c:144,3'
          Dst:             str_truncate
        - Src:             'master-instance.c:145,3'
          Dst:             str_printfa
        - Src:             'master-instance.c:146,3'
          Dst:             str_append_tabescaped
        - Src:             'master-instance.c:147,3'
          Dst:             str_append_c
        - Src:             'master-instance.c:148,3'
          Dst:             str_append_tabescaped
        - Src:             'master-instance.c:149,3'
          Dst:             str_append_c
        - Src:             'master-instance.c:151,4'
          Dst:             str_append_tabescaped
        - Src:             'master-instance.c:152,3'
          Dst:             str_append_c
        - Src:             'master-instance.c:153,26'
          Dst:             str_data
        - Src:             'master-instance.c:153,41'
          Dst:             str_len
        - Src:             'master-instance.c:153,3'
          Dst:             o_stream_nsend
        - Src:             'master-instance.c:155,6'
          Dst:             o_stream_finish
        - Src:             'master-instance.c:156,41'
          Dst:             o_stream_get_error
        - Src:             'master-instance.c:156,3'
          Dst:             i_error
        - Src:             'master-instance.c:159,2'
          Dst:             o_stream_destroy
    - functionName:    master_instance_list_add_line
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          91
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - master_instance_update_config_path
        - p_strdup
        - p_strdup_empty
        - str_array_length
        - str_to_time
        - t_strsplit_tabescaped
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:87,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'master-instance.c:88,6'
          Dst:             str_array_length
        - Src:             'master-instance.c:90,6'
          Dst:             str_to_time
        - Src:             'master-instance.c:93,9'
          Dst:             array_append_space_i
        - Src:             'master-instance.c:95,15'
          Dst:             p_strdup
        - Src:             'master-instance.c:96,19'
          Dst:             p_strdup
        - Src:             'master-instance.c:97,22'
          Dst:             p_strdup_empty
        - Src:             'master-instance.c:98,2'
          Dst:             master_instance_update_config_path
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_instance_update_config_path
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_error
        - null_strcmp
        - p_strdup
        - t_readlink
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:65,9'
          Dst:             t_strconcat
        - Src:             'master-instance.c:66,6'
          Dst:             t_readlink
        - Src:             'master-instance.c:68,7'
          Dst:             __errno_location
        - Src:             'master-instance.c:69,4'
          Dst:             i_error
        - Src:             'master-instance.c:72,6'
          Dst:             null_strcmp
        - Src:             'master-instance.c:73,23'
          Dst:             p_strdup
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    master_instance_list_refresh
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          127
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - array_clear_i
        - i_error
        - i_panic
        - i_stream_create_fd_autoclose
        - i_stream_destroy
        - i_stream_get_error
        - i_stream_read_next_line
        - master_instance_list_add_line
        - open
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:108,2'
          Dst:             array_clear_i
        - Src:             'master-instance.c:110,7'
          Dst:             open
        - Src:             'master-instance.c:112,7'
          Dst:             __errno_location
        - Src:             'master-instance.c:115,3'
          Dst:             i_error
        - Src:             'master-instance.c:118,10'
          Dst:             i_stream_create_fd_autoclose
        - Src:             'master-instance.c:119,17'
          Dst:             i_stream_read_next_line
        - Src:             'master-instance.c:119,58'
          Dst:             t_push
        - Src:             'master-instance.c:120,7'
          Dst:             master_instance_list_add_line
        - Src:             'master-instance.c:121,4'
          Dst:             i_error
        - Src:             'master-instance.c:122,4'
          Dst:             t_pop
        - Src:             'master-instance.c:122,4'
          Dst:             i_panic
        - Src:             'master-instance.c:125,4'
          Dst:             i_stream_get_error
        - Src:             'master-instance.c:124,3'
          Dst:             i_error
        - Src:             'master-instance.c:128,2'
          Dst:             i_stream_destroy
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_instance_iterate_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 369
      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:             'master-instance.c:368,2'
          Dst:             p_free_internal
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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-master/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    master_instance_iterate_list_next
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:357,19'
          Dst:             array_count_i
        - Src:             'master-instance.c:359,9'
          Dst:             array_idx_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_instance_list_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - master_instance_list_refresh_and_update
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:348,9'
          Dst:             malloc_multiply_check
        - Src:             'master-instance.c:348,9'
          Dst:             p_malloc
        - Src:             'master-instance.c:350,8'
          Dst:             master_instance_list_refresh_and_update
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    master_instance_list_refresh_and_update
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - master_instance_list_refresh
        - master_instance_write_finish
        - master_instance_write_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:313,6'
          Dst:             master_instance_list_refresh
        - Src:             'master-instance.c:317,13'
          Dst:             master_instance_write_init
        - Src:             'master-instance.c:319,7'
          Dst:             master_instance_write_finish
    - functionName:    master_instance_write_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - file_dotlock_delete
        - file_dotlock_open_mode
        - i_error
        - i_panic
        - master_instance_list_refresh
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:168,2'
          Dst:             i_panic
        - Src:             'master-instance.c:172,7'
          Dst:             file_dotlock_open_mode
        - Src:             'master-instance.c:175,3'
          Dst:             i_error
        - Src:             'master-instance.c:178,6'
          Dst:             master_instance_list_refresh
        - Src:             'master-instance.c:179,3'
          Dst:             file_dotlock_delete
    - functionName:    master_instance_write_finish
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - fdatasync
        - file_dotlock_delete
        - file_dotlock_get_lock_path
        - file_dotlock_replace
        - i_error
        - i_panic
        - master_instance_list_write
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:189,26'
          Dst:             file_dotlock_get_lock_path
        - Src:             'master-instance.c:192,2'
          Dst:             i_panic
        - Src:             'master-instance.c:194,2'
          Dst:             t_push
        - Src:             'master-instance.c:195,9'
          Dst:             master_instance_list_write
        - Src:             'master-instance.c:196,4'
          Dst:             t_pop
        - Src:             'master-instance.c:196,4'
          Dst:             i_panic
        - Src:             'master-instance.c:200,3'
          Dst:             file_dotlock_delete
        - Src:             'master-instance.c:203,6'
          Dst:             fdatasync
        - Src:             'master-instance.c:204,3'
          Dst:             i_error
        - Src:             'master-instance.c:205,3'
          Dst:             file_dotlock_delete
        - Src:             'master-instance.c:209,9'
          Dst:             file_dotlock_replace
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    master_instance_list_remove
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_delete_i
        - array_get_i
        - file_dotlock_delete
        - master_instance_write_finish
        - master_instance_write_init
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:288,12'
          Dst:             master_instance_write_init
        - Src:             'master-instance.c:291,14'
          Dst:             array_get_i
        - Src:             'master-instance.c:293,7'
          Dst:             strcmp
        - Src:             'master-instance.c:294,4'
          Dst:             array_delete_i
        - Src:             'master-instance.c:300,3'
          Dst:             file_dotlock_delete
        - Src:             'master-instance.c:304,9'
          Dst:             master_instance_write_finish
    - functionName:    master_instance_list_find_by_name
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - i_panic
        - master_instance_list_refresh_and_update
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:331,2'
          Dst:             i_panic
        - Src:             'master-instance.c:333,6'
          Dst:             array_count_i
        - Src:             'master-instance.c:334,9'
          Dst:             master_instance_list_refresh_and_update
        - Src:             'master-instance.c:337,7'
          Dst:             strcmp
    - functionName:    master_instance_list_set_name
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - file_dotlock_delete
        - i_panic
        - master_instance_find
        - master_instance_list_find_by_name
        - master_instance_write_finish
        - master_instance_write_init
        - p_strdup
        - strcmp
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:255,2'
          Dst:             i_panic
        - Src:             'master-instance.c:257,12'
          Dst:             master_instance_write_init
        - Src:             'master-instance.c:260,14'
          Dst:             master_instance_list_find_by_name
        - Src:             'master-instance.c:262,6'
          Dst:             strcmp
        - Src:             'master-instance.c:264,3'
          Dst:             file_dotlock_delete
        - Src:             'master-instance.c:269,9'
          Dst:             master_instance_find
        - Src:             'master-instance.c:271,10'
          Dst:             array_append_space_i
        - Src:             'master-instance.c:272,20'
          Dst:             p_strdup
        - Src:             'master-instance.c:274,15'
          Dst:             p_strdup
        - Src:             'master-instance.c:275,20'
          Dst:             time
        - Src:             'master-instance.c:277,9'
          Dst:             master_instance_write_finish
    - functionName:    master_instance_find
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_get_modifiable_data
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:218,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'master-instance.c:219,7'
          Dst:             strcmp
    - functionName:    master_instance_list_update
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - master_instance_find
        - master_instance_update_config_path
        - master_instance_write_finish
        - master_instance_write_init
        - p_strdup
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:232,12'
          Dst:             master_instance_write_init
        - Src:             'master-instance.c:235,9'
          Dst:             master_instance_find
        - Src:             'master-instance.c:237,10'
          Dst:             array_append_space_i
        - Src:             'master-instance.c:239,20'
          Dst:             p_strdup
        - Src:             'master-instance.c:241,20'
          Dst:             time
        - Src:             'master-instance.c:242,2'
          Dst:             master_instance_update_config_path
        - Src:             'master-instance.c:244,9'
          Dst:             master_instance_write_finish
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_instance_list_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:55,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_instance_list_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-instance.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-instance.c:42,9'
          Dst:             pool_alloconly_create
        - Src:             'master-instance.c:43,9'
          Dst:             malloc_multiply_check
        - Src:             'master-instance.c:43,9'
          Dst:             p_malloc
        - Src:             'master-instance.c:45,15'
          Dst:             p_strdup
        - Src:             'master-instance.c:46,2'
          Dst:             array_create_i
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    be32_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_haproxy_parse_ssl_tlv
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          175
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - get_tlv
        - p_strndup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'master-service-haproxy.c:245,3'
          Branch Sides:    []
      Callsites:
        - Src:             'master-service-haproxy.c:239,7'
          Dst:             get_tlv
        - Src:             'master-service-haproxy.c:240,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-haproxy.c:255,5'
          Dst:             p_strndup
    - functionName:    get_tlv
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_ssl_tlv
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - be32_to_cpu_unaligned
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:191,15'
          Dst:             be32_to_cpu_unaligned
    - functionName:    master_service_haproxy_parse_tlv
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          166
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - connection_is_valid_dns_name
        - get_ssl_tlv
        - get_tlv
        - master_service_haproxy_parse_ssl_tlv
        - p_memdup
        - p_strndup
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'master-service-haproxy.c:278,17'
          Branch Sides:    []
      Callsites:
        - Src:             'master-service-haproxy.c:271,7'
          Dst:             get_tlv
        - Src:             'master-service-haproxy.c:272,15'
          Dst:             t_strdup_printf
        - Src:             'master-service-haproxy.c:282,5'
          Dst:             p_memdup
        - Src:             'master-service-haproxy.c:287,5'
          Dst:             p_strndup
        - Src:             'master-service-haproxy.c:288,9'
          Dst:             connection_is_valid_dns_name
        - Src:             'master-service-haproxy.c:289,16'
          Dst:             t_strdup_printf
        - Src:             'master-service-haproxy.c:296,8'
          Dst:             get_ssl_tlv
        - Src:             'master-service-haproxy.c:297,16'
          Dst:             t_strdup_printf
        - Src:             'master-service-haproxy.c:301,29'
          Dst:             master_service_haproxy_parse_ssl_tlv
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_haproxy_recv
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          101
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - recv
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:168,9'
          Dst:             recv
        - Src:             'master-service-haproxy.c:169,22'
          Dst:             __errno_location
        - Src:             'master-service-haproxy.c:171,17'
          Dst:             __errno_location
        - Src:             'master-service-haproxy.c:175,4'
          Dst:             __errno_location
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_haproxy_conn_success
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          78
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - master_service_client_connection_callback
        - master_service_haproxy_conn_free
        - t_memdup
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:143,34'
          Dst:             t_strdup
        - Src:             'master-service-haproxy.c:145,23'
          Dst:             t_memdup
        - Src:             'master-service-haproxy.c:148,26'
          Dst:             t_strdup
        - Src:             'master-service-haproxy.c:150,2'
          Dst:             master_service_haproxy_conn_free
        - Src:             'master-service-haproxy.c:151,2'
          Dst:             master_service_client_connection_callback
    - functionName:    master_service_haproxy_conn_free
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - event_unref
        - io_remove
        - pool_unref
        - timeout_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:120,2'
          Dst:             io_remove
        - Src:             'master-service-haproxy.c:121,2'
          Dst:             timeout_remove
        - Src:             'master-service-haproxy.c:122,2'
          Dst:             event_unref
        - Src:             'master-service-haproxy.c:123,2'
          Dst:             pool_unref
    - functionName:    master_service_haproxy_conn_failure
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_service_client_connection_handled
        - master_service_haproxy_conn_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:132,2'
          Dst:             master_service_haproxy_conn_free
        - Src:             'master-service-haproxy.c:133,2'
          Dst:             master_service_client_connection_handled
    - functionName:    master_service_haproxy_read
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         129
      ICount:          1041
      EdgeCount:       166
      CyclomaticComplexity: 39
      functionsReached:
        - e_error
        - e_info
        - event_drop_parent_log_prefixes
        - event_set_append_log_prefix
        - i_memcpy
        - i_panic
        - i_unreached
        - master_service_haproxy_parse_tlv
        - master_service_haproxy_recv
        - memchr
        - memcmp
        - net_addr2ip
        - net_ip2addr
        - net_str2port
        - ntohs
        - str_sanitize
        - strcmp
        - t_strsplit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'master-service-haproxy.c:425,3'
          Branch Sides:    []
        - Branch String:   'master-service-haproxy.c:440,4'
          Branch Sides:    []
      Callsites:
        - Src:             'master-service-haproxy.c:343,13'
          Dst:             master_service_haproxy_recv
        - Src:             'master-service-haproxy.c:345,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:345,4'
          Dst:             e_info
        - Src:             'master-service-haproxy.c:349,25'
          Dst:             memcmp
        - Src:             'master-service-haproxy.c:353,6'
          Dst:             memcmp
        - Src:             'master-service-haproxy.c:354,10'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:356,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:356,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:362,14'
          Dst:             master_service_haproxy_recv
        - Src:             'master-service-haproxy.c:364,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:364,5'
          Dst:             e_info
        - Src:             'master-service-haproxy.c:371,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:371,4'
          Dst:             e_info
        - Src:             'master-service-haproxy.c:379,3'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:379,3'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:397,3'
          Dst:             i_panic
        - Src:             'master-service-haproxy.c:400,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:400,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:407,13'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:413,3'
          Dst:             event_set_append_log_prefix
        - Src:             'master-service-haproxy.c:416,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:416,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:435,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:435,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:444,6'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:444,6'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:451,18'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:454,19'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:460,6'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:460,6'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:466,5'
          Dst:             i_memcpy
        - Src:             'master-service-haproxy.c:467,18'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:469,5'
          Dst:             i_memcpy
        - Src:             'master-service-haproxy.c:470,19'
          Dst:             ntohs
        - Src:             'master-service-haproxy.c:476,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:476,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:482,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:482,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:490,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:490,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:498,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:503,7'
          Dst:             master_service_haproxy_parse_tlv
        - Src:             'master-service-haproxy.c:504,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:504,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:517,3'
          Dst:             i_panic
        - Src:             'master-service-haproxy.c:520,9'
          Dst:             memchr
        - Src:             'master-service-haproxy.c:527,12'
          Dst:             t_strsplit
        - Src:             'master-service-haproxy.c:528,3'
          Dst:             strcmp
        - Src:             'master-service-haproxy.c:528,3'
          Dst:             i_panic
        - Src:             'master-service-haproxy.c:531,3'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'master-service-haproxy.c:532,3'
          Dst:             event_set_append_log_prefix
        - Src:             'master-service-haproxy.c:536,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:536,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:541,7'
          Dst:             strcmp
        - Src:             'master-service-haproxy.c:543,14'
          Dst:             strcmp
        - Src:             'master-service-haproxy.c:545,14'
          Dst:             strcmp
        - Src:             'master-service-haproxy.c:548,4'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:548,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:548,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:559,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:559,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:564,8'
          Dst:             net_addr2ip
        - Src:             'master-service-haproxy.c:566,5'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:566,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:566,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:576,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:576,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:581,8'
          Dst:             net_addr2ip
        - Src:             'master-service-haproxy.c:583,5'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:583,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:583,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:593,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:593,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:598,8'
          Dst:             net_str2port
        - Src:             'master-service-haproxy.c:599,5'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:599,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:599,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:609,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:609,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:614,8'
          Dst:             net_str2port
        - Src:             'master-service-haproxy.c:615,5'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:615,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:615,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:624,5'
          Dst:             str_sanitize
        - Src:             'master-service-haproxy.c:624,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:624,5'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:631,3'
          Dst:             i_panic
        - Src:             'master-service-haproxy.c:633,14'
          Dst:             master_service_haproxy_recv
        - Src:             'master-service-haproxy.c:635,5'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:635,5'
          Dst:             e_info
        - Src:             'master-service-haproxy.c:640,4'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:640,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:647,3'
          Dst:             i_unreached
    - functionName:    master_service_haproxy_abort
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     externalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_close_fd_path
        - master_service_haproxy_conn_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:733,3'
          Dst:             master_service_haproxy_conn_free
        - Src:             'master-service-haproxy.c:734,3'
          Dst:             i_close_fd_path
    - functionName:    master_service_haproxy_timeout
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - e_error
        - master_service_haproxy_conn_failure
        - net_ip2addr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:157,2'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:157,2'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:159,2'
          Dst:             master_service_haproxy_conn_failure
    - functionName:    master_service_haproxy_input
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - master_service_haproxy_conn_failure
        - master_service_haproxy_conn_success
        - master_service_haproxy_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:665,13'
          Dst:             master_service_haproxy_read
        - Src:             'master-service-haproxy.c:667,4'
          Dst:             master_service_haproxy_conn_failure
        - Src:             'master-service-haproxy.c:669,3'
          Dst:             master_service_haproxy_conn_success
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    master_service_haproxy_conn_is_trusted
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - e_error
        - net_is_in_network
        - net_parse_range
        - t_strsplit_spaces
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:684,8'
          Dst:             t_strsplit_spaces
        - Src:             'master-service-haproxy.c:686,7'
          Dst:             net_parse_range
        - Src:             'master-service-haproxy.c:687,4'
          Dst:             e_error
        - Src:             'master-service-haproxy.c:693,7'
          Dst:             net_is_in_network
    - functionName:    master_service_haproxy_new
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-haproxy.c'
      linkageType:     externalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          169
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - e_warning
        - event_create
        - event_set_append_log_prefix
        - event_unref
        - io_add
        - malloc_multiply_check
        - master_service_client_connection_handled
        - master_service_haproxy_conn_is_trusted
        - master_service_haproxy_input
        - master_service_haproxy_timeout
        - net_ip2addr
        - p_malloc
        - pool_alloconly_create
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-haproxy.c:702,24'
          Dst:             event_create
        - Src:             'master-service-haproxy.c:703,2'
          Dst:             event_set_append_log_prefix
        - Src:             'master-service-haproxy.c:705,7'
          Dst:             master_service_haproxy_conn_is_trusted
        - Src:             'master-service-haproxy.c:706,3'
          Dst:             net_ip2addr
        - Src:             'master-service-haproxy.c:706,3'
          Dst:             e_warning
        - Src:             'master-service-haproxy.c:708,3'
          Dst:             master_service_client_connection_handled
        - Src:             'master-service-haproxy.c:709,3'
          Dst:             event_unref
        - Src:             'master-service-haproxy.c:713,16'
          Dst:             pool_alloconly_create
        - Src:             'master-service-haproxy.c:715,3'
          Dst:             malloc_multiply_check
        - Src:             'master-service-haproxy.c:715,3'
          Dst:             p_malloc
        - Src:             'master-service-haproxy.c:722,15'
          Dst:             io_add
        - Src:             'master-service-haproxy.c:722,15'
          Dst:             master_service_haproxy_input
        - Src:             'master-service-haproxy.c:724,15'
          Dst:             timeout_add
        - Src:             'master-service-haproxy.c:724,15'
          Dst:             master_service_haproxy_timeout
    - functionName:    master_service_ssl_ctx_deinit
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ssl_iostream_context_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-ssl.c:54,3'
          Dst:             ssl_iostream_context_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-master/../../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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    master_service_ssl_ctx_init
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          205
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - e_error
        - i_panic
        - master_service_ssl_io_listeners_remove
        - pool_unref
        - ssl_iostream_server_context_cache_get
        - ssl_server_settings_get
        - ssl_server_settings_to_iostream_set
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'master-service-ssl.c:23,2'
          Dst:             i_panic
        - Src:             'master-service-ssl.c:25,6'
          Dst:             ssl_server_settings_get
        - Src:             'master-service-ssl.c:27,3'
          Dst:             e_error
        - Src:             'master-service-ssl.c:28,3'
          Dst:             master_service_ssl_io_listeners_remove
        - Src:             'master-service-ssl.c:31,6'
          Dst:             strcmp
        - Src:             'master-service-ssl.c:33,3'
          Dst:             pool_unref
        - Src:             'master-service-ssl.c:34,3'
          Dst:             pool_unref
        - Src:             'master-service-ssl.c:38,2'
          Dst:             ssl_server_settings_to_iostream_set
        - Src:             'master-service-ssl.c:39,6'
          Dst:             ssl_iostream_server_context_cache_get
        - Src:             'master-service-ssl.c:41,3'
          Dst:             e_error
        - Src:             'master-service-ssl.c:44,3'
          Dst:             master_service_ssl_io_listeners_remove
        - Src:             'master-service-ssl.c:46,2'
          Dst:             pool_unref
        - Src:             'master-service-ssl.c:47,2'
          Dst:             pool_unref
        - Src:             'master-service-ssl.c:48,2'
          Dst:             pool_unref
    - functionName:    master_service_ssl_is_enabled
      functionSourceFile: '/src/dovecot/src/lib-master/master-service-ssl.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 11
      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:    fs_sis_try_unlink_hash_file
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          132
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - e_error
        - fs_delete
        - fs_file_deinit
        - fs_file_init_with_event
        - fs_file_last_error
        - fs_sis_path_parse
        - fs_stat
        - gnu_dev_major
        - gnu_dev_minor
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-common.c:40,6'
          Dst:             fs_sis_path_parse
        - Src:             'fs-sis-common.c:41,6'
          Dst:             fs_stat
        - Src:             'fs-sis-common.c:44,15'
          Dst:             t_strdup_printf
        - Src:             'fs-sis-common.c:45,15'
          Dst:             fs_file_init_with_event
        - Src:             'fs-sis-common.c:48,7'
          Dst:             fs_stat
        - Src:             'fs-sis-common.c:50,7'
          Dst:             gnu_dev_major
        - Src:             'fs-sis-common.c:50,7'
          Dst:             gnu_dev_major
        - Src:             'fs-sis-common.c:50,7'
          Dst:             gnu_dev_minor
        - Src:             'fs-sis-common.c:50,7'
          Dst:             gnu_dev_minor
        - Src:             'fs-sis-common.c:51,8'
          Dst:             fs_delete
        - Src:             'fs-sis-common.c:52,5'
          Dst:             fs_file_last_error
        - Src:             'fs-sis-common.c:52,5'
          Dst:             e_error
        - Src:             'fs-sis-common.c:56,3'
          Dst:             fs_file_deinit
    - functionName:    fs_sis_path_parse
      functionSourceFile: '/src/dovecot/src/lib-fs/fs-sis-common.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fs_set_error
        - strchr
        - strrchr
        - t_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fs-sis-common.c:13,10'
          Dst:             strrchr
        - Src:             'fs-sis-common.c:18,12'
          Dst:             t_strdup_until
        - Src:             'fs-sis-common.c:23,6'
          Dst:             strchr
        - Src:             'fs-sis-common.c:25,3'
          Dst:             fs_set_error
        - Src:             'fs-sis-common.c:29,12'
          Dst:             t_strdup_until
    - functionName:    dict_fail_set_timestamp
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 113
      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:    dict_fail_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_atomic_inc
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_unset
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 98
      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:    dict_fail_set
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_transaction_rollback
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 88
      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:    dict_fail_transaction_commit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_transaction_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      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:    dict_fail_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 28
      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:    dict_fail_wait
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      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:    dict_fail_lookup
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_iterate_init
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_iterate
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dict_fail_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib-dict/dict-fail.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    dns_client_cache_deinit
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - dns_client_cache_entry_free
        - hash_table_destroy
        - hash_table_try_remove
        - i_panic
        - p_free_internal
        - priorityq_count
        - priorityq_deinit
        - priorityq_pop
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:181,9'
          Dst:             priorityq_count
        - Src:             'dns-client-cache.c:182,33'
          Dst:             priorityq_pop
        - Src:             'dns-client-cache.c:185,3'
          Dst:             hash_table_try_remove
        - Src:             'dns-client-cache.c:185,3'
          Dst:             i_panic
        - Src:             'dns-client-cache.c:186,3'
          Dst:             dns_client_cache_entry_free
        - Src:             'dns-client-cache.c:188,2'
          Dst:             timeout_remove
        - Src:             'dns-client-cache.c:189,2'
          Dst:             hash_table_destroy
        - Src:             'dns-client-cache.c:190,2'
          Dst:             priorityq_deinit
        - Src:             'dns-client-cache.c:191,2'
          Dst:             p_free_internal
    - functionName:    dns_client_cache_entry_free
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:45,2'
          Dst:             p_free_internal
        - Src:             'dns-client-cache.c:46,2'
          Dst:             p_free_internal
        - Src:             'dns-client-cache.c:47,2'
          Dst:             p_free_internal
        - Src:             'dns-client-cache.c:48,2'
          Dst:             p_free_internal
    - functionName:    dns_client_cache_entry_cmp
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_client_cache_init
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dns_client_cache_entry_cmp
        - hash_table_create
        - malloc_multiply_check
        - p_malloc
        - priorityq_init
        - strcmp
        - strfastcase_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:164,35'
          Dst:             malloc_multiply_check
        - Src:             'dns-client-cache.c:164,35'
          Dst:             p_malloc
        - Src:             'dns-client-cache.c:168,2'
          Dst:             hash_table_create
        - Src:             'dns-client-cache.c:168,2'
          Dst:             strfastcase_hash
        - Src:             'dns-client-cache.c:168,2'
          Dst:             strcmp
        - Src:             'dns-client-cache.c:170,17'
          Dst:             priorityq_init
        - Src:             'dns-client-cache.c:170,17'
          Dst:             dns_client_cache_entry_cmp
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    dns_client_cache_entry_refresh
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_client_cache_lookup
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - dns_client_cache_entry_free
        - dns_client_cache_entry_refresh
        - hash_table_lookup
        - hash_table_try_remove
        - i_panic
        - p_memdup
        - p_strdup
        - priorityq_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:111,3'
          Dst:             hash_table_lookup
        - Src:             'dns-client-cache.c:115,3'
          Dst:             priorityq_remove
        - Src:             'dns-client-cache.c:116,3'
          Dst:             hash_table_try_remove
        - Src:             'dns-client-cache.c:116,3'
          Dst:             i_panic
        - Src:             'dns-client-cache.c:117,3'
          Dst:             dns_client_cache_entry_free
        - Src:             'dns-client-cache.c:123,19'
          Dst:             p_strdup
        - Src:             'dns-client-cache.c:127,4'
          Dst:             p_memdup
        - Src:             'dns-client-cache.c:132,3'
          Dst:             dns_client_cache_entry_refresh
    - functionName:    dns_client_cache_clean
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - dns_client_cache_entry_free
        - hash_table_try_remove
        - i_panic
        - priorityq_count
        - priorityq_peek
        - priorityq_pop
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:139,17'
          Dst:             priorityq_peek
        - Src:             'dns-client-cache.c:144,10'
          Dst:             priorityq_pop
        - Src:             'dns-client-cache.c:145,4'
          Dst:             hash_table_try_remove
        - Src:             'dns-client-cache.c:145,4'
          Dst:             i_panic
        - Src:             'dns-client-cache.c:146,4'
          Dst:             dns_client_cache_entry_free
        - Src:             'dns-client-cache.c:154,6'
          Dst:             priorityq_count
        - Src:             'dns-client-cache.c:155,3'
          Dst:             timeout_remove
    - functionName:    dns_client_cache_entry
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          245
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - dns_client_cache_clean
        - dns_client_cache_entry_free
        - hash_table_insert
        - hash_table_lookup
        - hash_table_try_remove
        - i_memdup
        - i_panic
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - priorityq_add
        - priorityq_remove
        - timeout_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-cache.c:61,4'
          Dst:             timeout_add
        - Src:             'dns-client-cache.c:61,4'
          Dst:             dns_client_cache_clean
        - Src:             'dns-client-cache.c:65,3'
          Dst:             hash_table_lookup
        - Src:             'dns-client-cache.c:73,3'
          Dst:             priorityq_remove
        - Src:             'dns-client-cache.c:74,3'
          Dst:             hash_table_try_remove
        - Src:             'dns-client-cache.c:74,3'
          Dst:             i_panic
        - Src:             'dns-client-cache.c:75,3'
          Dst:             dns_client_cache_entry_free
        - Src:             'dns-client-cache.c:77,10'
          Dst:             malloc_multiply_check
        - Src:             'dns-client-cache.c:77,10'
          Dst:             p_malloc
        - Src:             'dns-client-cache.c:79,21'
          Dst:             i_strdup
        - Src:             'dns-client-cache.c:80,16'
          Dst:             i_strdup
        - Src:             'dns-client-cache.c:83,16'
          Dst:             i_memdup
        - Src:             'dns-client-cache.c:86,2'
          Dst:             priorityq_add
        - Src:             'dns-client-cache.c:87,2'
          Dst:             hash_table_insert
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-dns-client/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    dns_client_settings_check
      functionSourceFile: '/src/dovecot/src/lib-dns-client/dns-client-settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - p_strconcat
        - p_strndup
        - str_begins_with
        - strlen
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dns-client-settings.c:50,8'
          Dst:             strlen
        - Src:             'dns-client-settings.c:53,7'
          Dst:             strncmp
        - Src:             'dns-client-settings.c:53,7'
          Dst:             str_begins_with
        - Src:             'dns-client-settings.c:55,20'
          Dst:             p_strndup
        - Src:             'dns-client-settings.c:56,33'
          Dst:             p_strconcat
    - functionName:    mech_anonymous_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-anonymous.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-anonymous.c:43,18'
          Dst:             strlen
    - functionName:    mech_anonymous_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-anonymous.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_append_c
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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-sasl/../../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:    hmac_update
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib/hmac.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mech_cram_md5_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-cram-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          116
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - binary_to_hex_append
        - hmac_final
        - hmac_init
        - hmac_update
        - str_append
        - str_append_c
        - str_data
        - str_len
        - str_new
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-cram-md5.c:88,5'
          Dst:             strlen
        - Src:             'dsasl-client-mech-cram-md5.c:87,2'
          Dst:             hmac_init
        - Src:             'dsasl-client-mech-cram-md5.c:89,40'
          Dst:             strlen
        - Src:             'dsasl-client-mech-cram-md5.c:89,2'
          Dst:             hmac_update
        - Src:             'dsasl-client-mech-cram-md5.c:90,2'
          Dst:             hmac_final
        - Src:             'dsasl-client-mech-cram-md5.c:92,8'
          Dst:             str_new
        - Src:             'dsasl-client-mech-cram-md5.c:93,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-cram-md5.c:94,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-cram-md5.c:95,2'
          Dst:             binary_to_hex_append
        - Src:             'dsasl-client-mech-cram-md5.c:97,14'
          Dst:             str_data
        - Src:             'dsasl-client-mech-cram-md5.c:98,18'
          Dst:             str_len
    - functionName:    mech_cram_md5_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-cram-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          176
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - p_strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-cram-md5.c:49,2'
          Dst:             i_panic
        - Src:             'dsasl-client-mech-cram-md5.c:56,23'
          Dst:             p_strndup
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:             '../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    value_append_escaped
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          122
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - str_append_c
        - str_append_data
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:48,20'
          Dst:             strlen
        - Src:             'dsasl-client-mech-digest-md5.c:58,2'
          Dst:             str_append_data
        - Src:             'dsasl-client-mech-digest-md5.c:62,4'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-digest-md5.c:63,3'
          Dst:             str_append_data
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    mech_digest_md5_output_first
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          163
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_digest_get_client_response
        - auth_digest_get_hash_a1
        - auth_digest_get_hash_a1_secret
        - base64_encode
        - buffer_append_c
        - buffer_create_from_data
        - p_strdup
        - random_fill
        - str_append
        - str_printfa
        - t_str_new
        - value_append_escaped
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:327,2'
          Dst:             random_fill
        - Src:             'dsasl-client-mech-digest-md5.c:329,2'
          Dst:             buffer_create_from_data
        - Src:             'dsasl-client-mech-digest-md5.c:330,2'
          Dst:             base64_encode
        - Src:             'dsasl-client-mech-digest-md5.c:331,2'
          Dst:             buffer_append_c
        - Src:             'dsasl-client-mech-digest-md5.c:332,20'
          Dst:             p_strdup
        - Src:             'dsasl-client-mech-digest-md5.c:334,18'
          Dst:             t_str_new
        - Src:             'dsasl-client-mech-digest-md5.c:336,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:337,2'
          Dst:             value_append_escaped
        - Src:             'dsasl-client-mech-digest-md5.c:339,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:340,2'
          Dst:             value_append_escaped
        - Src:             'dsasl-client-mech-digest-md5.c:342,2'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-digest-md5.c:349,2'
          Dst:             auth_digest_get_hash_a1_secret
        - Src:             'dsasl-client-mech-digest-md5.c:354,3'
          Dst:             auth_digest_get_hash_a1
        - Src:             'dsasl-client-mech-digest-md5.c:356,20'
          Dst:             p_strdup
        - Src:             'dsasl-client-mech-digest-md5.c:359,3'
          Dst:             auth_digest_get_client_response
        - Src:             'dsasl-client-mech-digest-md5.c:363,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:364,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:365,2'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:367,3'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:368,3'
          Dst:             str_append
        - Src:             'dsasl-client-mech-digest-md5.c:369,3'
          Dst:             str_append
    - functionName:    handle_confirmation_field
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:176,6'
          Dst:             strcmp
    - functionName:    parse_list_element
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - strlen
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:69,37'
          Dst:             strlen
        - Src:             'dsasl-client-mech-digest-md5.c:82,17'
          Dst:             t_strdup_until
    - functionName:    handle_challenge_field
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          233
      EdgeCount:       58
      CyclomaticComplexity: 19
      functionsReached:
        - p_strdup
        - parse_list_element
        - str_to_ulong
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:101,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:104,7'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:109,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:120,20'
          Dst:             p_strdup
        - Src:             'dsasl-client-mech-digest-md5.c:124,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:127,10'
          Dst:             parse_list_element
        - Src:             'dsasl-client-mech-digest-md5.c:128,8'
          Dst:             strcasecmp
        - Src:             'dsasl-client-mech-digest-md5.c:135,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:140,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:146,7'
          Dst:             str_to_ulong
        - Src:             'dsasl-client-mech-digest-md5.c:154,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-digest-md5.c:155,7'
          Dst:             strcasecmp
        - Src:             'dsasl-client-mech-digest-md5.c:162,6'
          Dst:             strcmp
    - functionName:    mech_digest_md5_input_final
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          186
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - auth_digest_get_server_response
        - auth_digest_parse_keyvalue
        - handle_confirmation_field
        - mem_equals_timing_safe
        - strlen
        - t_strdup_noconst
        - t_strdup_printf
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:401,26'
          Dst:             t_strndup
        - Src:             'dsasl-client-mech-digest-md5.c:401,9'
          Dst:             t_strdup_noconst
        - Src:             'dsasl-client-mech-digest-md5.c:406,7'
          Dst:             auth_digest_parse_keyvalue
        - Src:             'dsasl-client-mech-digest-md5.c:409,9'
          Dst:             handle_confirmation_field
        - Src:             'dsasl-client-mech-digest-md5.c:411,16'
          Dst:             t_strdup_printf
        - Src:             'dsasl-client-mech-digest-md5.c:427,14'
          Dst:             strlen
        - Src:             'dsasl-client-mech-digest-md5.c:437,29'
          Dst:             auth_digest_get_server_response
        - Src:             'dsasl-client-mech-digest-md5.c:442,7'
          Dst:             mem_equals_timing_safe
    - functionName:    mech_digest_md5_input_first
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          173
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - auth_digest_parse_keyvalue
        - handle_challenge_field
        - t_strdup_noconst
        - t_strdup_printf
        - t_strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:267,26'
          Dst:             t_strndup
        - Src:             'dsasl-client-mech-digest-md5.c:267,9'
          Dst:             t_strdup_noconst
        - Src:             'dsasl-client-mech-digest-md5.c:271,7'
          Dst:             auth_digest_parse_keyvalue
        - Src:             'dsasl-client-mech-digest-md5.c:274,9'
          Dst:             handle_challenge_field
        - Src:             'dsasl-client-mech-digest-md5.c:276,16'
          Dst:             t_strdup_printf
    - functionName:    mech_digest_md5_init
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          146
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - p_strdup
        - p_strdup_printf
        - p_strdup_until
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:216,10'
          Dst:             strrchr
        - Src:             'dsasl-client-mech-digest-md5.c:218,23'
          Dst:             p_strdup_until
        - Src:             'dsasl-client-mech-digest-md5.c:221,20'
          Dst:             p_strdup
        - Src:             'dsasl-client-mech-digest-md5.c:228,21'
          Dst:             p_strdup_printf
    - functionName:    mech_digest_md5_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached:
        - i_unreached
        - mech_digest_md5_init
        - mech_digest_md5_output_first
        - str_data
        - str_len
      functionUses:    0
      BranchProfiles:
        - Branch String:   'dsasl-client-mech-digest-md5.c:508,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:510,7'
          Dst:             mech_digest_md5_init
        - Src:             'dsasl-client-mech-digest-md5.c:521,9'
          Dst:             mech_digest_md5_output_first
        - Src:             'dsasl-client-mech-digest-md5.c:522,15'
          Dst:             str_data
        - Src:             'dsasl-client-mech-digest-md5.c:523,19'
          Dst:             str_len
        - Src:             'dsasl-client-mech-digest-md5.c:527,3'
          Dst:             i_unreached
        - Src:             'dsasl-client-mech-digest-md5.c:531,3'
          Dst:             i_unreached
    - functionName:    mech_digest_md5_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-digest-md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
        - mech_digest_md5_init
        - mech_digest_md5_input_final
        - mech_digest_md5_input_first
      functionUses:    0
      BranchProfiles:
        - Branch String:   'dsasl-client-mech-digest-md5.c:461,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dsasl-client-mech-digest-md5.c:463,7'
          Dst:             mech_digest_md5_init
        - Src:             'dsasl-client-mech-digest-md5.c:470,7'
          Dst:             mech_digest_md5_input_first
        - Src:             'dsasl-client-mech-digest-md5.c:478,3'
          Dst:             i_unreached
        - Src:             'dsasl-client-mech-digest-md5.c:483,3'
          Dst:             i_unreached
        - Src:             'dsasl-client-mech-digest-md5.c:486,8'
          Dst:             mech_digest_md5_input_final
    - functionName:    mech_external_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-external.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-external.c:48,18'
          Dst:             strlen
    - functionName:    mech_external_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-external.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mech_login_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-login.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'dsasl-client-mech-login.c:52,2'
          Branch Sides:    []
      Callsites:
        - Src:             'dsasl-client-mech-login.c:59,19'
          Dst:             strlen
        - Src:             'dsasl-client-mech-login.c:63,19'
          Dst:             strlen
        - Src:             'dsasl-client-mech-login.c:66,2'
          Dst:             i_unreached
    - functionName:    mech_login_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-login.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    json_value_get_str
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib-json/json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-json/json-types.h:163,2'
          Dst:             i_panic
    - functionName:    json_node_get_str
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib-json/json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          62
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
        - json_value_get_str
      functionUses:    1
      BranchProfiles:
        - Branch String:   '../../src/lib-json/json-types.h:281,2'
          Branch Sides:    []
      Callsites:
        - Src:             '../../src/lib-json/json-types.h:293,3'
          Dst:             i_unreached
        - Src:             '../../src/lib-json/json-types.h:295,9'
          Dst:             json_value_get_str
    - functionName:    json_node_is_number
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib-json/json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_node_is_string
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib-json/json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_create_object
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib-json/json-istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_istream_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib-json/json-istream.h:48,9'
          Dst:             json_istream_create
    - functionName:    mech_xoauth2_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-oauthbearer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          97
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - str_append_c
        - str_data
        - str_len
        - str_new
        - str_printfa
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-oauthbearer.c:154,6'
          Dst:             strchr
        - Src:             'dsasl-client-mech-oauthbearer.c:159,8'
          Dst:             str_new
        - Src:             'dsasl-client-mech-oauthbearer.c:161,2'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-oauthbearer.c:162,2'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-oauthbearer.c:163,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-oauthbearer.c:165,14'
          Dst:             str_data
        - Src:             'dsasl-client-mech-oauthbearer.c:166,18'
          Dst:             str_len
    - functionName:    mech_oauthbearer_get_result
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-oauthbearer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 186
      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
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-oauthbearer.c:179,6'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-oauthbearer.c:181,3'
          Dst:             i_panic
    - functionName:    mech_oauthbearer_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-oauthbearer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          186
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - auth_gs2_header_encode
        - sasl_oauth2_kvpair_check_value
        - str_append_c
        - str_data
        - str_len
        - str_new
        - str_printfa
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-oauthbearer.c:107,7'
          Dst:             sasl_oauth2_kvpair_check_value
        - Src:             'dsasl-client-mech-oauthbearer.c:112,7'
          Dst:             sasl_oauth2_kvpair_check_value
        - Src:             'dsasl-client-mech-oauthbearer.c:121,8'
          Dst:             str_new
        - Src:             'dsasl-client-mech-oauthbearer.c:122,2'
          Dst:             auth_gs2_header_encode
        - Src:             'dsasl-client-mech-oauthbearer.c:123,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-oauthbearer.c:125,3'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-oauthbearer.c:127,3'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-oauthbearer.c:128,2'
          Dst:             str_printfa
        - Src:             'dsasl-client-mech-oauthbearer.c:129,2'
          Dst:             str_append_c
        - Src:             'dsasl-client-mech-oauthbearer.c:131,14'
          Dst:             str_data
        - Src:             'dsasl-client-mech-oauthbearer.c:132,18'
          Dst:             str_len
    - functionName:    mech_oauthbearer_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-oauthbearer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          224
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - i_stream_create_from_data
        - i_stream_unref
        - json_istream_create_object
        - json_istream_finish
        - json_istream_read
        - json_istream_skip
        - json_node_get_str
        - json_node_is_number
        - json_node_is_string
        - p_strdup
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-oauthbearer.c:40,24'
          Dst:             i_stream_create_from_data
        - Src:             'dsasl-client-mech-oauthbearer.c:42,30'
          Dst:             json_istream_create_object
        - Src:             'dsasl-client-mech-oauthbearer.c:47,3'
          Dst:             i_stream_unref
        - Src:             'dsasl-client-mech-oauthbearer.c:51,10'
          Dst:             json_istream_read
        - Src:             'dsasl-client-mech-oauthbearer.c:52,4'
          Dst:             i_panic
        - Src:             'dsasl-client-mech-oauthbearer.c:55,4'
          Dst:             i_panic
        - Src:             'dsasl-client-mech-oauthbearer.c:56,8'
          Dst:             strcmp
        - Src:             'dsasl-client-mech-oauthbearer.c:57,10'
          Dst:             json_node_is_string
        - Src:             'dsasl-client-mech-oauthbearer.c:58,10'
          Dst:             json_node_is_number
        - Src:             'dsasl-client-mech-oauthbearer.c:64,6'
          Dst:             json_node_get_str
        - Src:             'dsasl-client-mech-oauthbearer.c:62,22'
          Dst:             p_strdup
        - Src:             'dsasl-client-mech-oauthbearer.c:66,4'
          Dst:             json_istream_skip
        - Src:             'dsasl-client-mech-oauthbearer.c:69,9'
          Dst:             json_istream_finish
        - Src:             'dsasl-client-mech-oauthbearer.c:70,3'
          Dst:             i_panic
        - Src:             'dsasl-client-mech-oauthbearer.c:72,15'
          Dst:             t_strdup_printf
        - Src:             'dsasl-client-mech-oauthbearer.c:83,14'
          Dst:             t_strdup_printf
    - functionName:    buffer_clone
      functionSourceFile: '/src/dovecot/src/lib-sasl/../../src/lib/buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_buf
        - buffer_create_dynamic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/buffer.h:112,18'
          Dst:             buffer_create_dynamic
        - Src:             '../../src/lib/buffer.h:114,2'
          Dst:             buffer_append_buf
    - functionName:    dsasl_client_get_channel_binding
      functionSourceFile: '/src/dovecot/src/lib-sasl/./dsasl-client-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mech_scram_init_channel_binding
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-scram.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_clone
        - dsasl_client_get_channel_binding
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-scram.c:30,6'
          Dst:             dsasl_client_get_channel_binding
        - Src:             'dsasl-client-mech-scram.c:35,24'
          Dst:             buffer_clone
    - functionName:    mech_scram_init
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-scram.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          142
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - auth_scram_client_init
        - i_unreached
        - mech_scram_init_channel_binding
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-scram.c:61,3'
          Dst:             i_unreached
        - Src:             'dsasl-client-mech-scram.c:69,15'
          Dst:             mech_scram_init_channel_binding
        - Src:             'dsasl-client-mech-scram.c:85,2'
          Dst:             auth_scram_client_init
    - functionName:    mech_scram_input
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-scram.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - auth_scram_client_input
        - mech_scram_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-scram.c:99,6'
          Dst:             mech_scram_init
        - Src:             'dsasl-client-mech-scram.c:102,6'
          Dst:             auth_scram_client_input
    - functionName:    mech_scram_output
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-scram.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - auth_scram_client_output
        - mech_scram_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-scram.c:129,6'
          Dst:             mech_scram_init
        - Src:             'dsasl-client-mech-scram.c:132,2'
          Dst:             auth_scram_client_output
    - functionName:    mech_scram_free
      functionSourceFile: '/src/dovecot/src/lib-sasl/dsasl-client-mech-scram.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_scram_client_deinit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'dsasl-client-mech-scram.c:142,2'
          Dst:             auth_scram_client_deinit
    - functionName:    sasl_oauth2_kvpair_check_value
      functionSourceFile: '/src/dovecot/src/lib-sasl/sasl-oauth2.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sasl-oauth2.c:92,34'
          Dst:             strlen
    - functionName:    sasl_oauth2_kvpair_parse
      functionSourceFile: '/src/dovecot/src/lib-sasl/sasl-oauth2.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sasl-oauth2.c:38,2'
          Dst:             i_panic
        - Src:             'sasl-oauth2.c:66,11'
          Dst:             t_strdup_until
        - Src:             'sasl-oauth2.c:82,13'
          Dst:             t_strdup_until
    - functionName:    auth_digest_get_server_response
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_digest_get_hash_a2
        - auth_digest_get_response
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:227,12'
          Dst:             auth_digest_get_hash_a2
        - Src:             'auth-digest.c:230,9'
          Dst:             auth_digest_get_response
    - functionName:    auth_digest_get_hash_a2
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - binary_to_hex
        - hash_method_init
        - hash_method_loop
        - hash_method_result
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:149,2'
          Dst:             hash_method_init
        - Src:             'auth-digest.c:151,38'
          Dst:             strlen
        - Src:             'auth-digest.c:151,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:152,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:154,35'
          Dst:             strlen
        - Src:             'auth-digest.c:154,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:156,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:158,6'
          Dst:             strlen
        - Src:             'auth-digest.c:157,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:160,2'
          Dst:             hash_method_result
        - Src:             'auth-digest.c:162,9'
          Dst:             binary_to_hex
    - functionName:    auth_digest_get_response
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - binary_to_hex
        - hash_method_init
        - hash_method_loop
        - hash_method_result
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:182,2'
          Dst:             hash_method_init
        - Src:             'auth-digest.c:183,34'
          Dst:             strlen
        - Src:             'auth-digest.c:183,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:184,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:185,32'
          Dst:             strlen
        - Src:             'auth-digest.c:185,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:186,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:188,30'
          Dst:             strlen
        - Src:             'auth-digest.c:188,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:189,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:190,34'
          Dst:             strlen
        - Src:             'auth-digest.c:190,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:191,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:192,31'
          Dst:             strlen
        - Src:             'auth-digest.c:192,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:193,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:195,34'
          Dst:             strlen
        - Src:             'auth-digest.c:195,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:196,2'
          Dst:             hash_method_result
        - Src:             'auth-digest.c:198,9'
          Dst:             binary_to_hex
    - functionName:    hash_method_init
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/hash-method.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/hash-method.h:37,2'
          Dst:             i_panic
    - functionName:    hash_method_loop
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/hash-method.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_result
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/hash-method.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_digest_get_client_response
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_digest_get_hash_a2
        - auth_digest_get_response
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:211,12'
          Dst:             auth_digest_get_hash_a2
        - Src:             'auth-digest.c:214,9'
          Dst:             auth_digest_get_response
    - functionName:    auth_digest_get_hash_a1
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - binary_to_hex
        - hash_method_init
        - hash_method_loop
        - hash_method_result
        - i_panic
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:106,10'
          Dst:             binary_to_hex
        - Src:             'auth-digest.c:107,2'
          Dst:             i_panic
        - Src:             'auth-digest.c:118,2'
          Dst:             hash_method_init
        - Src:             'auth-digest.c:119,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:120,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:121,32'
          Dst:             strlen
        - Src:             'auth-digest.c:121,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:122,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:123,33'
          Dst:             strlen
        - Src:             'auth-digest.c:123,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:125,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:126,35'
          Dst:             strlen
        - Src:             'auth-digest.c:126,3'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:128,2'
          Dst:             hash_method_result
        - Src:             'auth-digest.c:130,9'
          Dst:             binary_to_hex
    - functionName:    auth_digest_get_hash_a1_secret
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_method_init
        - hash_method_loop
        - hash_method_result
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:88,2'
          Dst:             hash_method_init
        - Src:             'auth-digest.c:89,35'
          Dst:             strlen
        - Src:             'auth-digest.c:89,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:90,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:91,32'
          Dst:             strlen
        - Src:             'auth-digest.c:91,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:92,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:93,35'
          Dst:             strlen
        - Src:             'auth-digest.c:93,2'
          Dst:             hash_method_loop
        - Src:             'auth-digest.c:94,2'
          Dst:             hash_method_result
    - functionName:    auth_digest_parse_keyvalue
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-digest.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          378
      EdgeCount:       89
      CyclomaticComplexity: 24
      functionsReached:
        - str_lcase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-digest.c:70,11'
          Dst:             str_lcase
    - functionName:    auth_gs2_char_is_cb_name
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _char_sanitize
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-gs2.c:37,10'
          Dst:             t_strdup_printf
        - Src:             'auth-gs2.c:38,9'
          Dst:             t_strdup_printf
    - functionName:    auth_gs2_header_decode
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     externalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          425
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - _char_sanitize
        - auth_gs2_char_is_cb_name
        - auth_gs2_decode_username
        - t_strdup_printf
        - t_strdup_until
      functionUses:    0
      BranchProfiles:
        - Branch String:   'auth-gs2.c:196,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-gs2.c:209,4'
          Dst:             _char_sanitize
        - Src:             'auth-gs2.c:207,14'
          Dst:             t_strdup_printf
        - Src:             'auth-gs2.c:227,9'
          Dst:             auth_gs2_char_is_cb_name
        - Src:             'auth-gs2.c:233,20'
          Dst:             t_strdup_until
        - Src:             'auth-gs2.c:257,7'
          Dst:             auth_gs2_decode_username
    - functionName:    auth_gs2_decode_username
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          173
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - str_append_c
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-gs2.c:71,8'
          Dst:             t_str_new
        - Src:             'auth-gs2.c:85,5'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:92,5'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:97,4'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:101,11'
          Dst:             str_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    auth_gs2_header_encode
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          139
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - auth_gs2_encode_username
        - i_panic
        - str_append
        - str_append_c
      functionUses:    2
      BranchProfiles:
        - Branch String:   'auth-gs2.c:142,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-gs2.c:139,3'
          Dst:             str_append
        - Src:             'auth-gs2.c:144,3'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:147,3'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:150,3'
          Dst:             i_panic
        - Src:             'auth-gs2.c:151,3'
          Dst:             str_append
        - Src:             'auth-gs2.c:152,3'
          Dst:             str_append
        - Src:             'auth-gs2.c:155,2'
          Dst:             str_append_c
        - Src:             'auth-gs2.c:159,3'
          Dst:             str_append
        - Src:             'auth-gs2.c:160,3'
          Dst:             auth_gs2_encode_username
        - Src:             'auth-gs2.c:162,2'
          Dst:             str_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    auth_gs2_encode_username
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-gs2.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - str_append
        - str_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-gs2.c:57,4'
          Dst:             str_append
        - Src:             'auth-gs2.c:59,4'
          Dst:             str_append
        - Src:             'auth-gs2.c:61,4'
          Dst:             str_append_c
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:             '../../src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    hmac_update
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/hmac.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    auth_scram_generate_cnonce
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - p_strdup
        - random_fill
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:52,2'
          Dst:             random_fill
        - Src:             'auth-scram-client.c:61,18'
          Dst:             p_strdup
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:             '../../src/lib/base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             '../../src/lib/base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             '../../src/lib/base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    str_clear_safe
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_clear_safe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:101,2'
          Dst:             buffer_clear_safe
    - functionName:    base64_encode
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:287,2'
          Dst:             base64_scheme_encode
    - functionName:    base64_decode
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_decode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:312,9'
          Dst:             base64_scheme_decode
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:             '../../src/lib/strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    auth_scram_get_client_final
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          352
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - auth_scram_hi
        - base64_encode
        - buffer_append
        - buffer_append_buf
        - buffer_create_dynamic
        - hash_method_get_digest
        - hmac_final
        - hmac_init
        - hmac_update
        - i_panic
        - p_malloc
        - pool_datastack_create
        - safe_memset
        - str_append
        - str_append_c
        - str_append_str
        - str_data
        - str_len
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:219,2'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:220,2'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:257,3'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:259,22'
          Dst:             strlen
        - Src:             'auth-scram-client.c:261,27'
          Dst:             strlen
        - Src:             'auth-scram-client.c:263,3'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:264,15'
          Dst:             pool_datastack_create
        - Src:             'auth-scram-client.c:264,15'
          Dst:             buffer_create_dynamic
        - Src:             'auth-scram-client.c:265,3'
          Dst:             buffer_append
        - Src:             'auth-scram-client.c:266,3'
          Dst:             buffer_append_buf
        - Src:             'auth-scram-client.c:270,8'
          Dst:             t_str_new
        - Src:             'auth-scram-client.c:271,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:272,2'
          Dst:             base64_encode
        - Src:             'auth-scram-client.c:273,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:274,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:280,9'
          Dst:             strlen
        - Src:             'auth-scram-client.c:278,2'
          Dst:             auth_scram_hi
        - Src:             'auth-scram-client.c:285,2'
          Dst:             hmac_init
        - Src:             'auth-scram-client.c:286,2'
          Dst:             hmac_update
        - Src:             'auth-scram-client.c:287,2'
          Dst:             hmac_final
        - Src:             'auth-scram-client.c:290,2'
          Dst:             hash_method_get_digest
        - Src:             'auth-scram-client.c:297,17'
          Dst:             t_str_new
        - Src:             'auth-scram-client.c:298,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:299,2'
          Dst:             str_append_c
        - Src:             'auth-scram-client.c:300,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:301,2'
          Dst:             str_append_c
        - Src:             'auth-scram-client.c:302,2'
          Dst:             str_append_str
        - Src:             'auth-scram-client.c:305,2'
          Dst:             hmac_init
        - Src:             'auth-scram-client.c:306,20'
          Dst:             str_data
        - Src:             'auth-scram-client.c:306,44'
          Dst:             str_len
        - Src:             'auth-scram-client.c:306,2'
          Dst:             hmac_update
        - Src:             'auth-scram-client.c:307,2'
          Dst:             hmac_final
        - Src:             'auth-scram-client.c:313,2'
          Dst:             safe_memset
        - Src:             'auth-scram-client.c:314,2'
          Dst:             safe_memset
        - Src:             'auth-scram-client.c:315,2'
          Dst:             safe_memset
        - Src:             'auth-scram-client.c:318,2'
          Dst:             hmac_init
        - Src:             'auth-scram-client.c:319,2'
          Dst:             hmac_update
        - Src:             'auth-scram-client.c:320,2'
          Dst:             hmac_final
        - Src:             'auth-scram-client.c:324,3'
          Dst:             p_malloc
        - Src:             'auth-scram-client.c:325,2'
          Dst:             hmac_init
        - Src:             'auth-scram-client.c:326,20'
          Dst:             str_data
        - Src:             'auth-scram-client.c:326,44'
          Dst:             str_len
        - Src:             'auth-scram-client.c:326,2'
          Dst:             hmac_update
        - Src:             'auth-scram-client.c:327,2'
          Dst:             hmac_final
        - Src:             'auth-scram-client.c:329,2'
          Dst:             safe_memset
        - Src:             'auth-scram-client.c:336,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:337,2'
          Dst:             base64_encode
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:    auth_scram_get_client_first
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          119
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_gs2_encode_username
        - auth_gs2_header_encode
        - auth_scram_generate_cnonce
        - p_strdup
        - p_strndup
        - str_append
        - str_c
        - str_len
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:99,2'
          Dst:             auth_scram_generate_cnonce
        - Src:             'auth-scram-client.c:114,8'
          Dst:             t_str_new
        - Src:             'auth-scram-client.c:115,2'
          Dst:             auth_gs2_header_encode
        - Src:             'auth-scram-client.c:117,20'
          Dst:             str_len
        - Src:             'auth-scram-client.c:118,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:119,2'
          Dst:             auth_gs2_encode_username
        - Src:             'auth-scram-client.c:120,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:121,2'
          Dst:             str_append
        - Src:             'auth-scram-client.c:123,8'
          Dst:             str_c
        - Src:             'auth-scram-client.c:126,23'
          Dst:             p_strndup
        - Src:             'auth-scram-client.c:127,38'
          Dst:             p_strdup
    - functionName:    auth_scram_client_output
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 11
      functionsReached:
        - auth_scram_get_client_final
        - auth_scram_get_client_first
        - i_unreached
        - str_data
        - str_len
      functionUses:    1
      BranchProfiles:
        - Branch String:   'auth-scram-client.c:448,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-scram-client.c:453,12'
          Dst:             auth_scram_get_client_first
        - Src:             'auth-scram-client.c:454,15'
          Dst:             str_data
        - Src:             'auth-scram-client.c:455,19'
          Dst:             str_len
        - Src:             'auth-scram-client.c:458,3'
          Dst:             i_unreached
        - Src:             'auth-scram-client.c:460,12'
          Dst:             auth_scram_get_client_final
        - Src:             'auth-scram-client.c:461,15'
          Dst:             str_data
        - Src:             'auth-scram-client.c:462,19'
          Dst:             str_len
        - Src:             'auth-scram-client.c:465,3'
          Dst:             i_unreached
        - Src:             'auth-scram-client.c:471,3'
          Dst:             i_unreached
    - functionName:    auth_scram_client_state_client_first
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 439
      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:    auth_scram_parse_server_final
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          204
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - base64_encode
        - i_panic
        - safe_memset
        - str_array_length
        - str_c
        - str_clear_safe
        - str_equals_timing_almost_safe
        - t_str_new
        - t_strdup_printf
        - t_strndup
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:349,2'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:350,2'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:363,22'
          Dst:             t_strndup
        - Src:             'auth-scram-client.c:363,11'
          Dst:             t_strsplit
        - Src:             'auth-scram-client.c:364,16'
          Dst:             str_array_length
        - Src:             'auth-scram-client.c:376,14'
          Dst:             t_strdup_printf
        - Src:             'auth-scram-client.c:390,8'
          Dst:             t_str_new
        - Src:             'auth-scram-client.c:391,2'
          Dst:             base64_encode
        - Src:             'auth-scram-client.c:392,2'
          Dst:             safe_memset
        - Src:             'auth-scram-client.c:394,55'
          Dst:             str_c
        - Src:             'auth-scram-client.c:394,15'
          Dst:             str_equals_timing_almost_safe
        - Src:             'auth-scram-client.c:395,2'
          Dst:             str_clear_safe
    - functionName:    auth_scram_parse_server_first
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          274
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - base64_decode
        - buffer_create_dynamic
        - p_strdup
        - p_strndup
        - str_array_length
        - str_begins_with
        - str_to_uint
        - strlen
        - strncmp
        - t_strndup
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:148,22'
          Dst:             t_strndup
        - Src:             'auth-scram-client.c:148,11'
          Dst:             t_strsplit
        - Src:             'auth-scram-client.c:149,16'
          Dst:             str_array_length
        - Src:             'auth-scram-client.c:175,7'
          Dst:             strlen
        - Src:             'auth-scram-client.c:175,7'
          Dst:             strncmp
        - Src:             'auth-scram-client.c:175,7'
          Dst:             str_begins_with
        - Src:             'auth-scram-client.c:187,13'
          Dst:             strlen
        - Src:             'auth-scram-client.c:188,17'
          Dst:             buffer_create_dynamic
        - Src:             'auth-scram-client.c:190,6'
          Dst:             base64_decode
        - Src:             'auth-scram-client.c:199,6'
          Dst:             str_to_uint
        - Src:             'auth-scram-client.c:209,3'
          Dst:             p_strndup
        - Src:             'auth-scram-client.c:210,18'
          Dst:             p_strdup
    - functionName:    auth_scram_client_input
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 10
      functionsReached:
        - auth_scram_parse_server_final
        - auth_scram_parse_server_first
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'auth-scram-client.c:410,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-scram-client.c:414,3'
          Dst:             i_unreached
        - Src:             'auth-scram-client.c:416,9'
          Dst:             auth_scram_parse_server_first
        - Src:             'auth-scram-client.c:420,3'
          Dst:             i_unreached
        - Src:             'auth-scram-client.c:422,9'
          Dst:             auth_scram_parse_server_final
        - Src:             'auth-scram-client.c:430,3'
          Dst:             i_unreached
    - functionName:    auth_scram_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - safe_memset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:40,3'
          Dst:             i_panic
        - Src:             'auth-scram-client.c:41,3'
          Dst:             safe_memset
    - functionName:    auth_scram_client_init
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram-client.c:30,2'
          Dst:             i_panic
    - functionName:    base64_decode
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_decode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:312,9'
          Dst:             base64_scheme_decode
    - functionName:    auth_scram_credentials_parse
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          201
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - base64_decode
        - buffer_create_dynamic
        - buffer_set_used_size
        - i_memcpy
        - pool_datastack_create
        - str_array_length
        - str_to_uint
        - strlen
        - t_strdup_printf
        - t_strndup
        - t_strsplit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram.c:130,22'
          Dst:             t_strndup
        - Src:             'auth-scram.c:130,11'
          Dst:             t_strsplit
        - Src:             'auth-scram.c:132,6'
          Dst:             str_array_length
        - Src:             'auth-scram.c:133,14'
          Dst:             t_strdup_printf
        - Src:             'auth-scram.c:137,6'
          Dst:             str_to_uint
        - Src:             'auth-scram.c:140,14'
          Dst:             t_strdup_printf
        - Src:             'auth-scram.c:146,8'
          Dst:             pool_datastack_create
        - Src:             'auth-scram.c:146,8'
          Dst:             buffer_create_dynamic
        - Src:             'auth-scram.c:147,31'
          Dst:             strlen
        - Src:             'auth-scram.c:147,6'
          Dst:             base64_decode
        - Src:             'auth-scram.c:149,14'
          Dst:             t_strdup_printf
        - Src:             'auth-scram.c:153,2'
          Dst:             i_memcpy
        - Src:             'auth-scram.c:155,2'
          Dst:             buffer_set_used_size
        - Src:             'auth-scram.c:156,31'
          Dst:             strlen
        - Src:             'auth-scram.c:156,6'
          Dst:             base64_decode
        - Src:             'auth-scram.c:158,14'
          Dst:             t_strdup_printf
        - Src:             'auth-scram.c:162,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-auth/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    t_base64_encode
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:294,9'
          Dst:             t_base64_scheme_encode
    - functionName:    auth_scram_generate_key_data
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          125
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - auth_scram_hi
        - hash_method_get_digest
        - hmac_final
        - hmac_init
        - hmac_update
        - random_fill
        - safe_memset
        - str_c
        - strlen
        - t_base64_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram.c:91,2'
          Dst:             random_fill
        - Src:             'auth-scram.c:92,18'
          Dst:             t_base64_encode
        - Src:             'auth-scram.c:92,12'
          Dst:             str_c
        - Src:             'auth-scram.c:96,43'
          Dst:             strlen
        - Src:             'auth-scram.c:95,2'
          Dst:             auth_scram_hi
        - Src:             'auth-scram.c:100,2'
          Dst:             hmac_init
        - Src:             'auth-scram.c:101,2'
          Dst:             hmac_update
        - Src:             'auth-scram.c:102,2'
          Dst:             hmac_final
        - Src:             'auth-scram.c:105,2'
          Dst:             hash_method_get_digest
        - Src:             'auth-scram.c:109,2'
          Dst:             hmac_init
        - Src:             'auth-scram.c:110,2'
          Dst:             hmac_update
        - Src:             'auth-scram.c:111,2'
          Dst:             hmac_final
        - Src:             'auth-scram.c:113,2'
          Dst:             safe_memset
        - Src:             'auth-scram.c:114,2'
          Dst:             safe_memset
    - functionName:    auth_scram_hi
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hmac_final
        - hmac_init
        - hmac_update
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram.c:54,2'
          Dst:             hmac_init
        - Src:             'auth-scram.c:55,2'
          Dst:             hmac_update
        - Src:             'auth-scram.c:56,2'
          Dst:             hmac_update
        - Src:             'auth-scram.c:57,2'
          Dst:             hmac_final
        - Src:             'auth-scram.c:59,2'
          Dst:             i_memcpy
        - Src:             'auth-scram.c:63,3'
          Dst:             hmac_init
        - Src:             'auth-scram.c:64,3'
          Dst:             hmac_update
        - Src:             'auth-scram.c:65,3'
          Dst:             hmac_final
    - functionName:    hmac_update
      functionSourceFile: '/src/dovecot/src/lib-auth/../../src/lib/hmac.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_scram_key_data_clear
      functionSourceFile: '/src/dovecot/src/lib-auth/auth-scram.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - safe_memset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-scram.c:16,4'
          Dst:             safe_memset
        - Src:             'auth-scram.c:20,4'
          Dst:             safe_memset
        - Src:             'auth-scram.c:24,3'
          Dst:             i_panic
        - Src:             'auth-scram.c:25,3'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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-auth-client/../../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:    auth_client_get_connect_id
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_is_connected
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:113,2'
          Dst:             auth_client_is_connected
        - Src:             'auth-client.c:113,2'
          Dst:             i_panic
    - functionName:    auth_client_is_connected
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connection_handshake_received
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:67,9'
          Dst:             connection_handshake_received
    - functionName:    auth_client_find_mech
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:103,7'
          Dst:             strcasecmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    auth_client_get_available_mechs
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:94,9'
          Dst:             array_get_i
    - functionName:    auth_client_set_connect_notify
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_set_connect_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 80
      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:    auth_client_is_disconnected
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_disconnect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_connection_disconnect
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:61,2'
          Dst:             auth_client_connection_disconnect
    - functionName:    auth_client_connect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_connection_connect
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:56,9'
          Dst:             auth_client_connection_connect
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_deinit
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - auth_client_connection_deinit
        - buffer_get_modifiable_data
        - connection_list_deinit
        - event_unref
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:43,2'
          Dst:             auth_client_connection_deinit
        - Src:             'auth-client.c:44,2'
          Dst:             connection_list_deinit
        - Src:             'auth-client.c:45,2'
          Dst:             event_unref
        - Src:             'auth-client.c:46,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'auth-client.c:47,3'
          Dst:             p_free_internal
        - Src:             'auth-client.c:48,2'
          Dst:             array_free_i
        - Src:             'auth-client.c:49,2'
          Dst:             p_free_internal
        - Src:             'auth-client.c:50,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_init
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          81
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - auth_client_connection_init
        - auth_client_connection_list_init
        - event_add_category
        - event_create
        - event_set_append_log_prefix
        - event_set_forced_debug
        - i_strdup
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client.c:17,11'
          Dst:             malloc_multiply_check
        - Src:             'auth-client.c:17,11'
          Dst:             p_malloc
        - Src:             'auth-client.c:19,29'
          Dst:             i_strdup
        - Src:             'auth-client.c:22,18'
          Dst:             auth_client_connection_list_init
        - Src:             'auth-client.c:24,2'
          Dst:             array_create_i
        - Src:             'auth-client.c:25,18'
          Dst:             event_create
        - Src:             'auth-client.c:26,2'
          Dst:             event_add_category
        - Src:             'auth-client.c:27,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-client.c:28,2'
          Dst:             event_set_forced_debug
        - Src:             'auth-client.c:30,17'
          Dst:             auth_client_connection_init
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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-auth-client/../../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-auth-client/../../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-auth-client/../../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:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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-auth-client/../../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:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/array.h:255,13'
          Dst:             array_count_i
    - functionName:    auth_master_request_remove_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 457
      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:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:450,8'
          Dst:             array_get_i
        - Src:             'auth-master-request.c:453,4'
          Dst:             array_delete_i
        - Src:             'auth-master-request.c:457,2'
          Dst:             i_unreached
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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-auth-client/../../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:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_master_request_add_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 441
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:436,7'
          Dst:             array_is_created_i
        - Src:             'auth-master-request.c:437,3'
          Dst:             array_create_i
        - Src:             'auth-master-request.c:438,7'
          Dst:             array_append_space_i
    - functionName:    auth_master_request_ref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      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:    auth_master_request_count
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_master_request_wait
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         71
      ICount:          410
      EdgeCount:       91
      CyclomaticComplexity: 22
      functionsReached:
        - auth_master_request_abort
        - auth_master_request_count
        - auth_master_request_ref
        - auth_master_request_unref
        - auth_master_switch_ioloop_to
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - i_stream_get_data_size
        - i_stream_set_input_pending
        - io_loop_create
        - io_loop_destroy
        - io_loop_have_immediate_timeouts
        - io_loop_have_ios
        - master_service_ioloop_run_interruptible
        - o_stream_cork
        - o_stream_is_corked
        - o_stream_uncork
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:358,2'
          Dst:             auth_master_request_count
        - Src:             'auth-master-request.c:358,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:360,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:360,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:360,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:365,11'
          Dst:             io_loop_create
        - Src:             'auth-master-request.c:366,2'
          Dst:             auth_master_switch_ioloop_to
        - Src:             'auth-master-request.c:369,16'
          Dst:             o_stream_is_corked
        - Src:             'auth-master-request.c:370,3'
          Dst:             o_stream_uncork
        - Src:             'auth-master-request.c:373,2'
          Dst:             auth_master_request_ref
        - Src:             'auth-master-request.c:381,8'
          Dst:             i_stream_get_data_size
        - Src:             'auth-master-request.c:382,5'
          Dst:             i_stream_set_input_pending
        - Src:             'auth-master-request.c:386,4'
          Dst:             io_loop_have_ios
        - Src:             'auth-master-request.c:386,4'
          Dst:             io_loop_have_immediate_timeouts
        - Src:             'auth-master-request.c:386,4'
          Dst:             i_panic
        - Src:             'auth-master-request.c:389,8'
          Dst:             master_service_ioloop_run_interruptible
        - Src:             'auth-master-request.c:395,5'
          Dst:             auth_master_request_abort
        - Src:             'auth-master-request.c:401,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:401,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:401,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:404,3'
          Dst:             o_stream_cork
        - Src:             'auth-master-request.c:407,11'
          Dst:             auth_master_request_unref
        - Src:             'auth-master-request.c:409,2'
          Dst:             auth_master_switch_ioloop_to
        - Src:             'auth-master-request.c:410,2'
          Dst:             io_loop_destroy
        - Src:             'auth-master-request.c:417,6'
          Dst:             auth_master_request_count
        - Src:             'auth-master-request.c:419,6'
          Dst:             i_stream_get_data_size
        - Src:             'auth-master-request.c:420,3'
          Dst:             i_stream_set_input_pending
    - functionName:    auth_master_request_abort
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_request_remove
        - auth_master_request_unref
        - e_debug
        - event_send_abort
        - event_want_level
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:202,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:202,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:202,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:204,2'
          Dst:             auth_master_request_remove
        - Src:             'auth-master-request.c:205,2'
          Dst:             auth_master_request_unref
    - functionName:    auth_master_request_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          146
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - array_is_created_i
        - auth_master_request_remove
        - e_debug
        - event_send_abort
        - event_unref
        - event_want_level
        - i_panic
        - pool_unref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:75,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:79,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:79,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:79,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:81,2'
          Dst:             auth_master_request_remove
        - Src:             'auth-master-request.c:83,6'
          Dst:             array_is_created_i
        - Src:             'auth-master-request.c:86,3'
          Dst:             array_free_i
        - Src:             'auth-master-request.c:89,2'
          Dst:             event_unref
        - Src:             'auth-master-request.c:90,2'
          Dst:             pool_unref
    - functionName:    auth_master_request_remove
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          247
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - auth_master_check_idle
        - auth_master_connection_update_timeout
        - e_debug
        - event_send_abort
        - event_want_level
        - hash_table_try_remove
        - i_panic
        - io_loop_stop
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:42,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:42,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:42,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:45,3'
          Dst:             hash_table_try_remove
        - Src:             'auth-master-request.c:45,3'
          Dst:             i_panic
        - Src:             'auth-master-request.c:51,2'
          Dst:             auth_master_connection_update_timeout
        - Src:             'auth-master-request.c:52,2'
          Dst:             auth_master_check_idle
        - Src:             'auth-master-request.c:55,3'
          Dst:             i_panic
        - Src:             'auth-master-request.c:56,3'
          Dst:             io_loop_stop
    - functionName:    auth_master_request_invalid
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_handle_invalid_requests
        - auth_master_request_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:341,8'
          Dst:             auth_master_request_new
        - Src:             'auth-master-request.c:344,2'
          Dst:             auth_master_handle_invalid_requests
    - functionName:    auth_master_request_new
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          177
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_request_update_event
        - e_debug
        - event_create
        - event_drop_parent_log_prefixes
        - event_send_abort
        - event_want_level
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:283,9'
          Dst:             pool_alloconly_create
        - Src:             'auth-master-request.c:284,8'
          Dst:             malloc_multiply_check
        - Src:             'auth-master-request.c:284,8'
          Dst:             p_malloc
        - Src:             'auth-master-request.c:296,15'
          Dst:             event_create
        - Src:             'auth-master-request.c:297,2'
          Dst:             event_drop_parent_log_prefixes
        - Src:             'auth-master-request.c:298,2'
          Dst:             auth_master_request_update_event
        - Src:             'auth-master-request.c:308,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:308,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:308,2'
          Dst:             event_send_abort
    - functionName:    auth_master_request_update_event
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_int
        - event_set_append_log_prefix
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:17,2'
          Dst:             event_add_int
        - Src:             'auth-master-request.c:19,9'
          Dst:             t_strdup_printf
        - Src:             'auth-master-request.c:18,2'
          Dst:             event_set_append_log_prefix
    - functionName:    auth_master_request
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_master_connection_start_timeout
        - auth_master_handle_requests
        - auth_master_request_new
        - auth_master_stop_idle
        - p_memdup
        - p_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:321,8'
          Dst:             auth_master_request_new
        - Src:             'auth-master-request.c:322,13'
          Dst:             p_strdup
        - Src:             'auth-master-request.c:324,15'
          Dst:             p_memdup
        - Src:             'auth-master-request.c:327,2'
          Dst:             auth_master_handle_requests
        - Src:             'auth-master-request.c:328,2'
          Dst:             auth_master_connection_start_timeout
        - Src:             'auth-master-request.c:329,2'
          Dst:             auth_master_stop_idle
    - functionName:    auth_master_request_send
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          173
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - dec2str
        - e_debug
        - event_send_abort
        - event_want_level
        - hash_table_insert
        - i_panic
        - o_stream_nsendv
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:251,23'
          Dst:             dec2str
        - Src:             'auth-master-request.c:253,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:254,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:257,15'
          Dst:             strlen
        - Src:             'auth-master-request.c:259,13'
          Dst:             strlen
        - Src:             'auth-master-request.c:266,2'
          Dst:             o_stream_nsendv
        - Src:             'auth-master-request.c:270,2'
          Dst:             hash_table_insert
        - Src:             'auth-master-request.c:273,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:273,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:273,2'
          Dst:             event_send_abort
    - functionName:    auth_master_request_abort_invalid
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_request_abort
        - auth_master_request_callback
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:236,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:236,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:236,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:242,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:243,8'
          Dst:             auth_master_request_callback
        - Src:             'auth-master-request.c:245,2'
          Dst:             auth_master_request_abort
    - functionName:    auth_master_request_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          140
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - auth_master_request_ref
        - auth_master_request_unref
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:121,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:133,2'
          Dst:             auth_master_request_ref
        - Src:             'auth-master-request.c:137,2'
          Dst:             auth_master_request_unref
    - functionName:    auth_master_request_fail
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - auth_master_request_abort
        - auth_master_request_callback
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:216,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:216,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:216,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:223,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:224,8'
          Dst:             auth_master_request_callback
        - Src:             'auth-master-request.c:226,2'
          Dst:             auth_master_request_abort
    - functionName:    auth_master_request_got_reply
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          171
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - auth_master_request_callback
        - auth_master_request_remove
        - auth_master_request_unref
        - e_debug
        - event_send_abort
        - event_want_level
        - i_panic
        - io_loop_stop
        - t_strarray_join
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:158,2'
          Dst:             i_panic
        - Src:             'auth-master-request.c:163,2'
          Dst:             event_want_level
        - Src:             'auth-master-request.c:163,2'
          Dst:             t_strarray_join
        - Src:             'auth-master-request.c:163,2'
          Dst:             e_debug
        - Src:             'auth-master-request.c:163,2'
          Dst:             event_send_abort
        - Src:             'auth-master-request.c:171,8'
          Dst:             auth_master_request_callback
        - Src:             'auth-master-request.c:175,4'
          Dst:             i_panic
        - Src:             'auth-master-request.c:176,4'
          Dst:             io_loop_stop
        - Src:             'auth-master-request.c:181,3'
          Dst:             auth_master_request_remove
        - Src:             'auth-master-request.c:182,3'
          Dst:             auth_master_request_unref
    - functionName:    auth_master_request_set_event
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_master_request_update_event
        - event_create
        - event_set_forced_debug
        - event_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:97,2'
          Dst:             event_unref
        - Src:             'auth-master-request.c:98,15'
          Dst:             event_create
        - Src:             'auth-master-request.c:99,2'
          Dst:             event_set_forced_debug
        - Src:             'auth-master-request.c:102,2'
          Dst:             auth_master_request_update_event
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    timeval_add_msecs
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_master_request_get_timeout_msecs
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-master-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeval_add_msecs
        - timeval_diff_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-master-request.c:28,2'
          Dst:             timeval_add_msecs
        - Src:             'auth-master-request.c:30,10'
          Dst:             timeval_diff_msecs
    - functionName:    charset_to_utf8_try
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-iconv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          168
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - charset_utf8_to_utf8
        - i_panic
        - iconv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-iconv.c:64,13'
          Dst:             charset_utf8_to_utf8
        - Src:             'charset-iconv.c:72,6'
          Dst:             iconv
        - Src:             'charset-iconv.c:74,3'
          Dst:             i_panic
        - Src:             'charset-iconv.c:76,13'
          Dst:             __errno_location
        - Src:             'charset-iconv.c:80,13'
          Dst:             __errno_location
        - Src:             'charset-iconv.c:81,3'
          Dst:             i_panic
        - Src:             'charset-iconv.c:94,6'
          Dst:             charset_utf8_to_utf8
    - functionName:    iconv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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-charset/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-charset/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-charset/../../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:    iconv_charset_to_utf8
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-iconv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          157
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - charset_to_utf8_try
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-iconv.c:111,3'
          Dst:             i_panic
        - Src:             'charset-iconv.c:113,9'
          Dst:             charset_to_utf8_try
        - Src:             'charset-iconv.c:121,5'
          Dst:             buffer_append
        - Src:             'charset-iconv.c:133,2'
          Dst:             i_panic
    - functionName:    iconv_charset_to_utf8_reset
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-iconv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iconv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-iconv.c:49,9'
          Dst:             iconv
    - functionName:    iconv_charset_to_utf8_end
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-iconv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - iconv_close
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-iconv.c:42,3'
          Dst:             iconv_close
        - Src:             'charset-iconv.c:43,2'
          Dst:             p_free_internal
    - functionName:    iconv_close
      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:    iconv_charset_to_utf8_begin
      functionSourceFile: '/src/dovecot/src/lib-charset/charset-iconv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - charset_is_utf8
        - iconv_open
        - malloc_multiply_check
        - p_malloc
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'charset-iconv.c:22,6'
          Dst:             charset_is_utf8
        - Src:             'charset-iconv.c:25,7'
          Dst:             strcmp
        - Src:             'charset-iconv.c:27,8'
          Dst:             iconv_open
        - Src:             'charset-iconv.c:32,6'
          Dst:             malloc_multiply_check
        - Src:             'charset-iconv.c:32,6'
          Dst:             p_malloc
    - functionName:    iconv_open
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    ssl_iostream_context_cache_cmp
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ssl_iostream_settings_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl-context-cache.c:50,9'
          Dst:             ssl_iostream_settings_equals
    - functionName:    ssl_iostream_context_cache_hash
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          138
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/../../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:    ssl_iostream_context_cache_free
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_destroy
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - pool_unref
        - ssl_iostream_context_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl-context-cache.c:140,9'
          Dst:             hash_table_iterate_init
        - Src:             'iostream-ssl-context-cache.c:141,9'
          Dst:             hash_table_iterate
        - Src:             'iostream-ssl-context-cache.c:142,3'
          Dst:             ssl_iostream_context_unref
        - Src:             'iostream-ssl-context-cache.c:143,3'
          Dst:             pool_unref
        - Src:             'iostream-ssl-context-cache.c:145,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'iostream-ssl-context-cache.c:146,2'
          Dst:             hash_table_destroy
        - Src:             'iostream-ssl-context-cache.c:147,2'
          Dst:             pool_unref
    - functionName:    ssl_iostream_server_context_cache_get
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ssl_iostream_context_cache_get
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl-context-cache.c:123,13'
          Dst:             ssl_iostream_context_cache_get
        - Src:             'iostream-ssl-context-cache.c:124,14'
          Dst:             t_strdup_printf
    - functionName:    ssl_iostream_context_cache_get
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          131
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - hash_table_create
        - hash_table_insert
        - hash_table_lookup
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_ref
        - ssl_iostream_context_cache_cmp
        - ssl_iostream_context_cache_hash
        - ssl_iostream_context_init_client
        - ssl_iostream_context_init_server
        - ssl_iostream_context_ref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl-context-cache.c:68,4'
          Dst:             pool_alloconly_create
        - Src:             'iostream-ssl-context-cache.c:69,3'
          Dst:             hash_table_create
        - Src:             'iostream-ssl-context-cache.c:69,3'
          Dst:             ssl_iostream_context_cache_hash
        - Src:             'iostream-ssl-context-cache.c:69,3'
          Dst:             ssl_iostream_context_cache_cmp
        - Src:             'iostream-ssl-context-cache.c:75,8'
          Dst:             hash_table_lookup
        - Src:             'iostream-ssl-context-cache.c:77,3'
          Dst:             ssl_iostream_context_ref
        - Src:             'iostream-ssl-context-cache.c:84,7'
          Dst:             ssl_iostream_context_init_server
        - Src:             'iostream-ssl-context-cache.c:87,7'
          Dst:             ssl_iostream_context_init_client
        - Src:             'iostream-ssl-context-cache.c:91,10'
          Dst:             malloc_multiply_check
        - Src:             'iostream-ssl-context-cache.c:91,10'
          Dst:             p_malloc
        - Src:             'iostream-ssl-context-cache.c:95,2'
          Dst:             pool_ref
        - Src:             'iostream-ssl-context-cache.c:96,2'
          Dst:             hash_table_insert
        - Src:             'iostream-ssl-context-cache.c:98,2'
          Dst:             ssl_iostream_context_ref
    - functionName:    ssl_iostream_client_context_cache_get
      functionSourceFile: '/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ssl_iostream_context_cache_get
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-ssl-context-cache.c:109,13'
          Dst:             ssl_iostream_context_cache_get
        - Src:             'iostream-ssl-context-cache.c:110,14'
          Dst:             t_strdup_printf
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/istream.h:229,2'
          Dst:             i_panic
        - Src:             '../../src/lib/istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    json_istream_drop_value_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_remove_destroy_callback
        - i_stream_unref
        - json_istream_drop_seekable_stream
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:707,4'
          Dst:             i_stream_remove_destroy_callback
        - Src:             'json-istream.c:707,4'
          Dst:             json_istream_drop_seekable_stream
        - Src:             'json-istream.c:710,4'
          Dst:             i_stream_unref
    - functionName:    json_istream_drop_seekable_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_disable_string_stream
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:699,2'
          Dst:             json_parser_disable_string_stream
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             '../../src/lib/istream.h:238,2'
          Dst:             i_panic
    - functionName:    json_istream_consumed_value_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_remove_destroy_callback
        - json_istream_dereference_value
        - json_istream_drop_seekable_stream
        - json_istream_drop_value_stream
        - json_parser_disable_string_stream
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:719,2'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:721,3'
          Dst:             i_stream_remove_destroy_callback
        - Src:             'json-istream.c:721,3'
          Dst:             json_istream_drop_seekable_stream
        - Src:             'json-istream.c:726,3'
          Dst:             i_stream_remove_destroy_callback
        - Src:             'json-istream.c:726,3'
          Dst:             json_istream_drop_value_stream
        - Src:             'json-istream.c:732,2'
          Dst:             json_parser_disable_string_stream
    - functionName:    json_istream_dereference_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_unref
        - json_parser_disable_string_stream
        - json_tree_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:464,4'
          Dst:             i_stream_unref
        - Src:             'json-istream.c:466,4'
          Dst:             i_stream_unref
        - Src:             'json-istream.c:468,3'
          Dst:             json_parser_disable_string_stream
        - Src:             'json-istream.c:471,3'
          Dst:             json_tree_unref
    - functionName:    json_istream_parse_skip
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:219,2'
          Dst:             i_panic
    - functionName:    json_istream_parse_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          288
      EdgeCount:       52
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_ref
        - json_istream_parse_skip
        - json_istream_set_error
        - json_parser_interrupt
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:
        - Branch String:   'json-istream.c:403,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-istream.c:399,2'
          Dst:             i_panic
        - Src:             'json-istream.c:400,2'
          Dst:             i_panic
        - Src:             'json-istream.c:407,4'
          Dst:             i_panic
        - Src:             'json-istream.c:408,4'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:410,4'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:413,4'
          Dst:             i_panic
        - Src:             'json-istream.c:414,4'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:416,4'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:426,3'
          Dst:             json_tree_node_add_value
        - Src:             'json-istream.c:429,4'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:437,6'
          Dst:             json_istream_parse_skip
        - Src:             'json-istream.c:446,3'
          Dst:             i_stream_ref
        - Src:             'json-istream.c:448,2'
          Dst:             json_parser_interrupt
    - functionName:    json_istream_set_error
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - json_istream_close
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:162,18'
          Dst:             i_strdup
        - Src:             'json-istream.c:163,2'
          Dst:             json_istream_close
    - functionName:    json_istream_close
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:133,3'
          Dst:             i_stream_close
    - functionName:    json_istream_parse_object_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          164
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - json_parser_interrupt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:370,2'
          Dst:             i_panic
        - Src:             'json-istream.c:377,2'
          Dst:             i_panic
        - Src:             'json-istream.c:378,2'
          Dst:             i_panic
        - Src:             'json-istream.c:386,2'
          Dst:             json_parser_interrupt
    - functionName:    json_istream_parse_list_close
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          278
      EdgeCount:       51
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_unreached
        - json_istream_parse_skip
        - json_parser_interrupt
      functionUses:    0
      BranchProfiles:
        - Branch String:   'json-istream.c:311,3'
          Branch Sides:    []
        - Branch String:   'json-istream.c:323,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-istream.c:305,2'
          Dst:             i_panic
        - Src:             'json-istream.c:309,3'
          Dst:             i_panic
        - Src:             'json-istream.c:316,4'
          Dst:             i_unreached
        - Src:             'json-istream.c:337,4'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:339,9'
          Dst:             json_istream_parse_skip
        - Src:             'json-istream.c:341,5'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:349,8'
          Dst:             json_istream_parse_skip
        - Src:             'json-istream.c:355,4'
          Dst:             json_parser_interrupt
    - functionName:    json_istream_parse_list_open
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          291
      EdgeCount:       57
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - json_istream_parse_skip
        - json_istream_set_error
        - json_parser_interrupt
        - json_tree_node_add_array
        - json_tree_node_add_object
      functionUses:    0
      BranchProfiles:
        - Branch String:   'json-istream.c:245,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-istream.c:240,2'
          Dst:             i_panic
        - Src:             'json-istream.c:241,2'
          Dst:             i_panic
        - Src:             'json-istream.c:250,5'
          Dst:             i_panic
        - Src:             'json-istream.c:251,5'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:253,5'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:258,5'
          Dst:             i_panic
        - Src:             'json-istream.c:259,5'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:261,5'
          Dst:             json_parser_interrupt
        - Src:             'json-istream.c:274,5'
          Dst:             json_tree_node_add_object
        - Src:             'json-istream.c:277,5'
          Dst:             json_tree_node_add_array
        - Src:             'json-istream.c:289,8'
          Dst:             json_istream_parse_skip
        - Src:             'json-istream.c:291,4'
          Dst:             json_parser_interrupt
    - functionName:    json_istream_read_into_tree
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1049
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_istream_read_into_tree_node
        - json_tree_get_root
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:1051,11'
          Dst:             json_tree_get_root
        - Src:             'json-istream.c:1050,9'
          Dst:             json_istream_read_into_tree_node
    - functionName:    json_istream_read_into_tree_node
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          185
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - json_istream_read
        - json_istream_read_tree_common
        - json_istream_skip
        - json_node_is_end
        - json_node_is_singular
        - json_tree_node_add
        - json_tree_node_get_tree
        - json_tree_ref
        - json_tree_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:1008,10'
          Dst:             json_istream_read
        - Src:             'json-istream.c:1015,3'
          Dst:             i_panic
        - Src:             'json-istream.c:1016,3'
          Dst:             json_node_is_end
        - Src:             'json-istream.c:1016,3'
          Dst:             i_panic
        - Src:             'json-istream.c:1019,23'
          Dst:             json_tree_node_add
        - Src:             'json-istream.c:1023,7'
          Dst:             json_node_is_singular
        - Src:             'json-istream.c:1025,4'
          Dst:             json_istream_skip
        - Src:             'json-istream.c:1029,18'
          Dst:             json_tree_node_get_tree
        - Src:             'json-istream.c:1030,3'
          Dst:             json_tree_ref
        - Src:             'json-istream.c:1035,8'
          Dst:             json_istream_read_tree_common
        - Src:             'json-istream.c:1038,3'
          Dst:             json_tree_unref
        - Src:             'json-istream.c:1043,2'
          Dst:             json_istream_skip
    - functionName:    json_istream_read
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          227
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - json_istream_consume_value_stream
        - json_istream_dereference_value
        - json_istream_set_error
        - json_parse_more
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:493,3'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:494,9'
          Dst:             json_istream_consume_value_stream
        - Src:             'json-istream.c:497,9'
          Dst:             json_parse_more
        - Src:             'json-istream.c:499,4'
          Dst:             json_istream_set_error
    - functionName:    json_node_is_end
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   './json-types.h:260,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    json_node_is_singular
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          30
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './json-types.h:529,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    json_istream_skip
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_istream_dereference_value
        - json_istream_next_node
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:547,2'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:548,2'
          Dst:             json_istream_next_node
    - functionName:    json_istream_read_tree_common
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - json_istream_consume_value_stream
        - json_istream_set_error
        - json_parse_more
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:899,8'
          Dst:             json_istream_consume_value_stream
        - Src:             'json-istream.c:902,8'
          Dst:             json_parse_more
        - Src:             'json-istream.c:904,3'
          Dst:             json_istream_set_error
    - functionName:    json_istream_consume_value_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          188
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_have_bytes_left
        - i_stream_read_more
        - i_stream_seek
        - i_stream_skip
        - json_istream_consumed_value_stream
        - json_istream_set_error
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:745,2'
          Dst:             i_panic
        - Src:             'json-istream.c:747,7'
          Dst:             i_stream_have_bytes_left
        - Src:             'json-istream.c:748,3'
          Dst:             json_istream_consumed_value_stream
        - Src:             'json-istream.c:753,2'
          Dst:             i_stream_seek
        - Src:             'json-istream.c:754,16'
          Dst:             i_stream_read_more
        - Src:             'json-istream.c:755,3'
          Dst:             i_stream_skip
        - Src:             'json-istream.c:756,2'
          Dst:             i_stream_seek
        - Src:             'json-istream.c:763,6'
          Dst:             i_stream_get_name
        - Src:             'json-istream.c:764,6'
          Dst:             i_stream_get_error
        - Src:             'json-istream.c:762,4'
          Dst:             t_strdup_printf
        - Src:             'json-istream.c:761,3'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:767,2'
          Dst:             i_stream_have_bytes_left
        - Src:             'json-istream.c:767,2'
          Dst:             i_panic
        - Src:             'json-istream.c:769,2'
          Dst:             i_stream_have_bytes_left
        - Src:             'json-istream.c:769,2'
          Dst:             i_panic
        - Src:             'json-istream.c:771,2'
          Dst:             json_istream_consumed_value_stream
    - functionName:    json_istream_next_node
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_read_tree
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          287
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - i_panic
        - json_istream_read_tree_common
        - json_istream_skip
        - json_node_is_end
        - json_node_is_singular
        - json_tree_create
        - json_tree_get_root
        - json_tree_node_add
        - json_tree_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:925,2'
          Dst:             i_panic
        - Src:             'json-istream.c:949,3'
          Dst:             i_panic
        - Src:             'json-istream.c:950,3'
          Dst:             json_node_is_end
        - Src:             'json-istream.c:950,3'
          Dst:             i_panic
        - Src:             'json-istream.c:954,18'
          Dst:             json_tree_create
        - Src:             'json-istream.c:956,4'
          Dst:             json_tree_get_root
        - Src:             'json-istream.c:955,23'
          Dst:             json_tree_node_add
        - Src:             'json-istream.c:960,7'
          Dst:             json_node_is_singular
        - Src:             'json-istream.c:971,18'
          Dst:             json_tree_create
        - Src:             'json-istream.c:972,23'
          Dst:             json_tree_get_root
        - Src:             'json-istream.c:976,8'
          Dst:             json_istream_read_tree_common
        - Src:             'json-istream.c:979,3'
          Dst:             json_tree_unref
        - Src:             'json-istream.c:994,2'
          Dst:             json_istream_skip
    - functionName:    json_istream_walk_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - json_istream_handle_stream
        - json_istream_walk
        - json_parser_disable_string_stream
        - json_parser_enable_string_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:877,2'
          Dst:             json_parser_enable_string_stream
        - Src:             'json-istream.c:879,8'
          Dst:             json_istream_walk
        - Src:             'json-istream.c:881,3'
          Dst:             json_parser_disable_string_stream
        - Src:             'json-istream.c:885,2'
          Dst:             json_istream_handle_stream
    - functionName:    json_istream_walk
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - json_istream_ascend_common
        - json_istream_descend
        - json_node_is_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:676,8'
          Dst:             json_istream_descend
        - Src:             'json-istream.c:679,6'
          Dst:             json_node_is_end
        - Src:             'json-istream.c:680,3'
          Dst:             i_panic
        - Src:             'json-istream.c:681,3'
          Dst:             i_panic
        - Src:             'json-istream.c:682,3'
          Dst:             json_istream_ascend_common
    - functionName:    json_istream_handle_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          151
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_add_destroy_callback
        - i_stream_create_seekable_path
        - i_stream_set_name
        - i_stream_unref
        - json_istream_drop_seekable_stream
        - json_istream_drop_value_stream
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:786,4'
          Dst:             i_panic
        - Src:             'json-istream.c:787,4'
          Dst:             i_panic
        - Src:             'json-istream.c:788,4'
          Dst:             i_panic
        - Src:             'json-istream.c:791,30'
          Dst:             i_stream_create_seekable_path
        - Src:             'json-istream.c:793,4'
          Dst:             i_stream_unref
        - Src:             'json-istream.c:795,4'
          Dst:             i_stream_set_name
        - Src:             'json-istream.c:798,4'
          Dst:             i_stream_add_destroy_callback
        - Src:             'json-istream.c:798,4'
          Dst:             json_istream_drop_value_stream
        - Src:             'json-istream.c:801,4'
          Dst:             i_stream_add_destroy_callback
        - Src:             'json-istream.c:801,4'
          Dst:             json_istream_drop_seekable_stream
    - functionName:    json_istream_descend
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - json_istream_read
        - json_istream_skip
        - json_node_is_array
        - json_node_is_object
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:630,8'
          Dst:             json_istream_read
        - Src:             'json-istream.c:634,2'
          Dst:             json_istream_skip
        - Src:             'json-istream.c:635,6'
          Dst:             json_node_is_object
        - Src:             'json-istream.c:635,36'
          Dst:             json_node_is_array
    - functionName:    json_istream_ascend_common
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_tree_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:645,3'
          Dst:             json_tree_unref
    - functionName:    json_node_is_object
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_node_is_array
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_read_next_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_istream_next_node
        - json_istream_read_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:849,8'
          Dst:             json_istream_read_stream
        - Src:             'json-istream.c:853,2'
          Dst:             json_istream_next_node
    - functionName:    json_istream_read_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - json_istream_handle_stream
        - json_istream_read
        - json_parser_disable_string_stream
        - json_parser_enable_string_stream
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:829,2'
          Dst:             json_parser_enable_string_stream
        - Src:             'json-istream.c:831,8'
          Dst:             json_istream_read
        - Src:             'json-istream.c:833,3'
          Dst:             json_parser_disable_string_stream
        - Src:             'json-istream.c:837,2'
          Dst:             json_istream_handle_stream
    - functionName:    json_istream_ascend_to
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - json_istream_ascend_common
        - json_istream_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:662,2'
          Dst:             i_panic
        - Src:             'json-istream.c:664,3'
          Dst:             json_istream_skip
        - Src:             'json-istream.c:667,2'
          Dst:             json_istream_ascend_common
    - functionName:    json_istream_ascend
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - json_istream_ascend_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:654,2'
          Dst:             i_panic
        - Src:             'json-istream.c:655,2'
          Dst:             json_istream_ascend_common
    - functionName:    json_istream_read_object_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          250
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - i_panic
        - json_istream_consume_value_stream
        - json_istream_dereference_value
        - json_istream_set_error
        - json_parse_more
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:588,3'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:589,9'
          Dst:             json_istream_consume_value_stream
        - Src:             'json-istream.c:593,9'
          Dst:             json_parse_more
        - Src:             'json-istream.c:596,4'
          Dst:             json_istream_set_error
        - Src:             'json-istream.c:609,4'
          Dst:             i_panic
    - functionName:    json_istream_ignore
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - json_istream_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:557,2'
          Dst:             json_istream_skip
    - functionName:    json_istream_read_next
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_istream_read
        - json_istream_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:529,8'
          Dst:             json_istream_read
        - Src:             'json-istream.c:532,2'
          Dst:             json_istream_skip
    - functionName:    json_istream_get_location
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_get_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:210,2'
          Dst:             json_parser_get_location
    - functionName:    json_istream_finish
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          161
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_strdup
        - json_istream_read
        - json_istream_unref
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:181,2'
          Dst:             i_panic
        - Src:             'json-istream.c:183,8'
          Dst:             json_istream_read
        - Src:             'json-istream.c:189,11'
          Dst:             t_strdup
        - Src:             'json-istream.c:199,19'
          Dst:             i_strdup
        - Src:             'json-istream.c:200,2'
          Dst:             json_istream_unref
    - functionName:    json_istream_unref
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - json_istream_dereference_value
        - json_parser_deinit
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:105,2'
          Dst:             i_panic
        - Src:             'json-istream.c:109,2'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:111,2'
          Dst:             json_parser_deinit
        - Src:             'json-istream.c:112,2'
          Dst:             p_free_internal
        - Src:             'json-istream.c:113,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_istream_get_error
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_failed
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_is_at_end
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:148,2'
          Dst:             i_panic
    - functionName:    json_istream_get_node_level
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 143
      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:    json_istream_is_closed
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_istream_destroy
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_istream_close
        - json_istream_dereference_value
        - json_istream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:123,2'
          Dst:             json_istream_dereference_value
        - Src:             'json-istream.c:125,2'
          Dst:             json_istream_close
        - Src:             'json-istream.c:126,2'
          Dst:             json_istream_unref
    - functionName:    json_istream_ref
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:93,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_istream_create
      functionSourceFile: '/src/dovecot/src/lib-json/json-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_init
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-istream.c:80,11'
          Dst:             malloc_multiply_check
        - Src:             'json-istream.c:80,11'
          Dst:             p_malloc
        - Src:             'json-istream.c:85,19'
          Dst:             json_parser_init
    - functionName:    json_parser_set_data
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_do_parse_literal
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1090
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          167
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_unreached
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
        - json_parser_shift
        - t_strdup_until
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json-parser.c:1054,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:1053,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1057,4'
          Dst:             i_panic
        - Src:             'json-parser.c:1058,4'
          Dst:             i_panic
        - Src:             'json-parser.c:1065,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1072,15'
          Dst:             t_strdup_until
        - Src:             'json-parser.c:1073,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1069,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1079,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1082,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1085,4'
          Dst:             i_unreached
    - functionName:    json_parser_curchar
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - json_parser_readchar
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:755,9'
          Dst:             json_parser_readchar
        - Src:             'json-parser.c:758,3'
          Dst:             i_panic
    - functionName:    json_parser_shift
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:767,2'
          Dst:             i_panic
        - Src:             'json-parser.c:769,2'
          Dst:             i_panic
    - functionName:    json_parser_curchar_str
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - t_strdup_printf
      functionUses:    13
      BranchProfiles:
        - Branch String:   'json-parser.c:693,2'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:690,2'
          Dst:             i_panic
        - Src:             'json-parser.c:692,10'
          Dst:             t_strdup_printf
        - Src:             'json-parser.c:704,10'
          Dst:             t_strdup_printf
        - Src:             'json-parser.c:706,9'
          Dst:             t_strdup_printf
    - functionName:    json_parser_error
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup_vprintf
        - p_free_internal
      functionUses:    43
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:259,2'
          Dst:             p_free_internal
        - Src:             'json-parser.c:261,18'
          Dst:             i_strdup_vprintf
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_parser_readchar
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - json_parser_error
        - uni_utf8_get_char_buf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:716,8'
          Dst:             uni_utf8_get_char_buf
        - Src:             'json-parser.c:720,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:724,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:734,3'
          Dst:             json_parser_error
    - functionName:    str_delete
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_string_istream_read
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2299
      functionLinenumberEnd: 2371
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          389
      EdgeCount:       60
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - i_unreached
        - io_stream_set_error
        - json_parser_continue
        - str_data
        - str_delete
        - str_len
        - str_truncate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json-parser.c:2336,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:2311,2'
          Dst:             i_panic
        - Src:             'json-parser.c:2313,2'
          Dst:             str_len
        - Src:             'json-parser.c:2313,2'
          Dst:             i_panic
        - Src:             'json-parser.c:2314,2'
          Dst:             i_panic
        - Src:             'json-parser.c:2319,24'
          Dst:             str_len
        - Src:             'json-parser.c:2320,5'
          Dst:             str_truncate
        - Src:             'json-parser.c:2322,5'
          Dst:             str_delete
        - Src:             'json-parser.c:2325,18'
          Dst:             str_len
        - Src:             'json-parser.c:2330,13'
          Dst:             str_len
        - Src:             'json-parser.c:2331,9'
          Dst:             json_parser_continue
        - Src:             'json-parser.c:2332,3'
          Dst:             str_len
        - Src:             'json-parser.c:2332,3'
          Dst:             i_panic
        - Src:             'json-parser.c:2333,15'
          Dst:             str_len
        - Src:             'json-parser.c:2338,4'
          Dst:             i_panic
        - Src:             'json-parser.c:2344,8'
          Dst:             str_len
        - Src:             'json-parser.c:2354,4'
          Dst:             io_stream_set_error
        - Src:             'json-parser.c:2359,4'
          Dst:             io_stream_set_error
        - Src:             'json-parser.c:2364,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2368,16'
          Dst:             str_len
        - Src:             'json-parser.c:2369,19'
          Dst:             str_data
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    6
      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:    json_parser_continue
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2163
      functionLinenumberEnd: 2241
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          270
      EdgeCount:       55
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_stream_skip
        - i_unreached
        - json_parser_error
        - json_parser_have_data
        - json_parser_is_busy
        - json_parser_parse_text
        - json_parser_read
        - json_parser_run
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json-parser.c:2180,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:2192,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:2225,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:2169,4'
          Dst:             json_parser_is_busy
        - Src:             'json-parser.c:2174,8'
          Dst:             json_parser_have_data
        - Src:             'json-parser.c:2176,12'
          Dst:             json_parser_run
        - Src:             'json-parser.c:2176,12'
          Dst:             json_parser_parse_text
        - Src:             'json-parser.c:2188,3'
          Dst:             i_stream_skip
        - Src:             'json-parser.c:2201,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2209,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2211,3'
          Dst:             i_panic
        - Src:             'json-parser.c:2212,18'
          Dst:             json_parser_read
        - Src:             'json-parser.c:2217,8'
          Dst:             i_stream_get_name
        - Src:             'json-parser.c:2218,8'
          Dst:             i_stream_get_error
        - Src:             'json-parser.c:2216,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2224,12'
          Dst:             json_parser_run
        - Src:             'json-parser.c:2224,12'
          Dst:             json_parser_parse_text
        - Src:             'json-parser.c:2235,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2237,3'
          Dst:             json_parser_error
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_is_busy
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_have_data
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_parse_text
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2098
      functionLinenumberEnd: 2156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          170
      EdgeCount:       36
      CyclomaticComplexity: 5
      functionsReached:
        - i_unreached
        - json_parser_curchar
        - json_parser_error
        - json_parser_parse_value
        - json_parser_shift
        - json_parser_skip_ws
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json-parser.c:2106,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:2142,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:2105,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:2114,6'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:2117,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2125,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:2132,10'
          Dst:             json_parser_parse_value
        - Src:             'json-parser.c:2138,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2150,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2152,3'
          Dst:             json_parser_error
    - functionName:    json_parser_run
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         73
      ICount:          399
      EdgeCount:       88
      CyclomaticComplexity: 17
      functionsReached:
        - array_idx_get_space_i
        - array_idx_modifiable_i
        - i_panic
        - json_parser_call
        - json_parser_curchar
        - json_parser_have_data
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json-parser.c:957,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:904,7'
          Dst:             json_parser_have_data
        - Src:             'json-parser.c:908,13'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:916,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:917,3'
          Dst:             i_panic
        - Src:             'json-parser.c:942,11'
          Dst:             array_idx_get_space_i
        - Src:             'json-parser.c:949,3'
          Dst:             i_panic
        - Src:             'json-parser.c:952,11'
          Dst:             array_idx_modifiable_i
        - Src:             'json-parser.c:955,3'
          Dst:             i_panic
        - Src:             'json-parser.c:977,3'
          Dst:             i_panic
        - Src:             'json-parser.c:980,2'
          Dst:             i_panic
    - functionName:    json_parser_read
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read_data
        - json_parser_set_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:659,2'
          Dst:             i_panic
        - Src:             'json-parser.c:660,8'
          Dst:             i_stream_read_data
        - Src:             'json-parser.c:667,3'
          Dst:             i_panic
        - Src:             'json-parser.c:672,11'
          Dst:             i_stream_get_data
        - Src:             'json-parser.c:673,4'
          Dst:             json_parser_set_data
        - Src:             'json-parser.c:678,2'
          Dst:             json_parser_set_data
    - functionName:    json_parser_call
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          348
      EdgeCount:       50
      CyclomaticComplexity: 8
      functionsReached:
        - array_idx_get_space_i
        - array_idx_modifiable_i
        - i_panic
        - json_parser_error
        - json_parser_have_data
      functionUses:    7
      BranchProfiles:
        - Branch String:   'json-parser.c:873,2'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:811,7'
          Dst:             json_parser_have_data
        - Src:             'json-parser.c:815,3'
          Dst:             json_parser_error
        - Src:             'json-parser.c:825,10'
          Dst:             array_idx_get_space_i
        - Src:             'json-parser.c:829,3'
          Dst:             i_panic
        - Src:             'json-parser.c:839,3'
          Dst:             i_panic
        - Src:             'json-parser.c:852,3'
          Dst:             i_panic
        - Src:             'json-parser.c:867,10'
          Dst:             array_idx_modifiable_i
        - Src:             'json-parser.c:870,2'
          Dst:             i_panic
    - functionName:    json_parser_skip_ws
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - json_parser_curchar
        - json_parser_shift
        - json_unichar_is_ws
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1029,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1030,8'
          Dst:             json_unichar_is_ws
        - Src:             'json-parser.c:1032,3'
          Dst:             json_parser_shift
    - functionName:    json_parser_parse_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2090
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_call
        - json_parser_do_parse_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:2090,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:2090,9'
          Dst:             json_parser_do_parse_value
    - functionName:    json_parser_do_parse_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1669
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         175
      ICount:          1124
      EdgeCount:       219
      CyclomaticComplexity: 46
      functionsReached:
        - i_unreached
        - json_parser_callback_false_value
        - json_parser_callback_null_value
        - json_parser_callback_number_value
        - json_parser_callback_parse_list_close
        - json_parser_callback_parse_list_open
        - json_parser_callback_parse_object_member
        - json_parser_callback_string_stream
        - json_parser_callback_string_value
        - json_parser_callback_true_value
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
        - json_parser_parse_literal
        - json_parser_parse_number
        - json_parser_parse_object_member
        - json_parser_parse_string_value
        - json_parser_parse_value
        - json_parser_reset_buffer
        - json_parser_shift
        - json_parser_skip_ws
        - str_new
        - str_truncate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json-parser.c:1709,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:1711,4'
          Branch Sides:    []
        - Branch String:   'json-parser.c:2037,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:1708,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1716,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1717,11'
          Dst:             json_parser_callback_parse_list_open
        - Src:             'json-parser.c:1727,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1728,11'
          Dst:             json_parser_callback_parse_list_open
        - Src:             'json-parser.c:1738,5'
          Dst:             json_parser_reset_buffer
        - Src:             'json-parser.c:1743,5'
          Dst:             json_parser_reset_buffer
        - Src:             'json-parser.c:1763,5'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1761,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1767,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1771,5'
          Dst:             str_truncate
        - Src:             'json-parser.c:1779,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1780,11'
          Dst:             json_parser_callback_parse_list_close
        - Src:             'json-parser.c:1790,10'
          Dst:             json_parser_parse_value
        - Src:             'json-parser.c:1799,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1800,11'
          Dst:             json_parser_callback_parse_list_close
        - Src:             'json-parser.c:1810,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1807,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1814,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1819,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1823,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1830,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1834,5'
          Dst:             str_truncate
        - Src:             'json-parser.c:1842,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1843,11'
          Dst:             json_parser_callback_parse_list_close
        - Src:             'json-parser.c:1851,6'
          Dst:             str_new
        - Src:             'json-parser.c:1857,10'
          Dst:             json_parser_parse_object_member
        - Src:             'json-parser.c:1861,6'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1868,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1874,10'
          Dst:             json_parser_callback_parse_object_member
        - Src:             'json-parser.c:1881,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1891,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1889,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1895,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1899,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1906,10'
          Dst:             json_parser_parse_value
        - Src:             'json-parser.c:1910,5'
          Dst:             str_truncate
        - Src:             'json-parser.c:1918,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1919,11'
          Dst:             json_parser_callback_parse_list_close
        - Src:             'json-parser.c:1929,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1926,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1933,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1938,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1942,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:1945,4'
          Dst:             str_truncate
        - Src:             'json-parser.c:1951,10'
          Dst:             json_parser_parse_number
        - Src:             'json-parser.c:1954,6'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1961,10'
          Dst:             json_parser_callback_number_value
        - Src:             'json-parser.c:1968,10'
          Dst:             json_parser_parse_string_value
        - Src:             'json-parser.c:1974,6'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1979,11'
          Dst:             json_parser_callback_string_stream
        - Src:             'json-parser.c:1986,10'
          Dst:             json_parser_callback_string_value
        - Src:             'json-parser.c:1993,10'
          Dst:             json_parser_parse_literal
        - Src:             'json-parser.c:1997,10'
          Dst:             json_parser_callback_false_value
        - Src:             'json-parser.c:2004,10'
          Dst:             json_parser_parse_literal
        - Src:             'json-parser.c:2008,10'
          Dst:             json_parser_callback_null_value
        - Src:             'json-parser.c:2015,10'
          Dst:             json_parser_parse_literal
        - Src:             'json-parser.c:2019,10'
          Dst:             json_parser_callback_true_value
        - Src:             'json-parser.c:2026,10'
          Dst:             json_parser_skip_ws
        - Src:             'json-parser.c:2033,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:2039,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2048,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2060,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:2064,11'
          Dst:             json_parser_callback_number_value
        - Src:             'json-parser.c:2067,11'
          Dst:             json_parser_callback_string_value
        - Src:             'json-parser.c:2070,11'
          Dst:             json_parser_callback_false_value
        - Src:             'json-parser.c:2073,11'
          Dst:             json_parser_callback_null_value
        - Src:             'json-parser.c:2076,11'
          Dst:             json_parser_callback_true_value
        - Src:             'json-parser.c:2081,4'
          Dst:             i_unreached
    - functionName:    json_parser_callback_parse_list_open
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_parser_callback_deinit
        - json_parser_callback_init
        - str_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:307,3'
          Dst:             str_c
        - Src:             'json-parser.c:309,2'
          Dst:             json_parser_callback_init
        - Src:             'json-parser.c:312,9'
          Dst:             json_parser_callback_deinit
    - functionName:    json_parser_reset_buffer
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 998
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_new
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:995,20'
          Dst:             str_new
        - Src:             'json-parser.c:997,3'
          Dst:             str_truncate
    - functionName:    json_parser_callback_parse_list_close
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_parser_callback_deinit
        - json_parser_callback_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:323,2'
          Dst:             json_parser_callback_init
        - Src:             'json-parser.c:326,9'
          Dst:             json_parser_callback_deinit
    - functionName:    json_parser_parse_object_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1659
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_call
        - json_parser_do_parse_object_member
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1658,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:1658,9'
          Dst:             json_parser_do_parse_object_member
    - functionName:    json_parser_callback_parse_object_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - json_parser_callback_deinit
        - json_parser_callback_init
        - str_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:335,2'
          Dst:             i_panic
        - Src:             'json-parser.c:341,9'
          Dst:             str_c
        - Src:             'json-parser.c:343,2'
          Dst:             json_parser_callback_init
        - Src:             'json-parser.c:346,9'
          Dst:             json_parser_callback_deinit
    - functionName:    json_parser_parse_number
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1273
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_call
        - json_parser_do_parse_number
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1274,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:1274,9'
          Dst:             json_parser_do_parse_number
    - functionName:    json_parser_callback_number_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_parser_callback_parse_value
        - json_parser_number_range_error
        - str_c
        - str_float_to_intmax
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:507,23'
          Dst:             str_c
        - Src:             'json-parser.c:515,7'
          Dst:             str_float_to_intmax
        - Src:             'json-parser.c:516,4'
          Dst:             json_parser_number_range_error
        - Src:             'json-parser.c:523,9'
          Dst:             json_parser_callback_parse_value
    - functionName:    json_parser_parse_string_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1642
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_call
        - json_parser_do_parse_string_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1643,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:1643,9'
          Dst:             json_parser_do_parse_string_value
    - functionName:    json_parser_callback_string_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_unref
        - json_parser_callback_parse_value
        - json_string_stream_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:593,25'
          Dst:             json_string_stream_create
        - Src:             'json-parser.c:595,8'
          Dst:             json_parser_callback_parse_value
        - Src:             'json-parser.c:597,2'
          Dst:             i_stream_unref
    - functionName:    json_parser_callback_string_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          197
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - i_stream_unref
        - json_parser_callback_parse_value
        - json_string_stream_create
        - str_c
        - str_data
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:544,7'
          Dst:             str_len
        - Src:             'json-parser.c:547,5'
          Dst:             json_string_stream_create
        - Src:             'json-parser.c:548,10'
          Dst:             json_parser_callback_parse_value
        - Src:             'json-parser.c:551,4'
          Dst:             i_stream_unref
        - Src:             'json-parser.c:564,16'
          Dst:             str_data
        - Src:             'json-parser.c:565,16'
          Dst:             str_len
        - Src:             'json-parser.c:573,23'
          Dst:             str_c
        - Src:             'json-parser.c:576,9'
          Dst:             json_parser_callback_parse_value
    - functionName:    json_parser_parse_literal
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1095
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_call
        - json_parser_do_parse_literal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1094,9'
          Dst:             json_parser_call
        - Src:             'json-parser.c:1094,9'
          Dst:             json_parser_do_parse_literal
    - functionName:    json_parser_callback_false_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_callback_parse_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:619,9'
          Dst:             json_parser_callback_parse_value
    - functionName:    json_parser_callback_null_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_callback_parse_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:630,9'
          Dst:             json_parser_callback_parse_value
    - functionName:    json_parser_callback_true_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_callback_parse_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:608,9'
          Dst:             json_parser_callback_parse_value
    - functionName:    json_parser_callback_parse_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_parser_callback_deinit
        - json_parser_callback_init
        - str_c
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:361,3'
          Dst:             str_c
        - Src:             'json-parser.c:363,2'
          Dst:             json_parser_callback_init
        - Src:             'json-parser.c:366,9'
          Dst:             json_parser_callback_deinit
    - functionName:    json_parser_callback_init
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:277,2'
          Dst:             p_free_internal
        - Src:             'json-parser.c:278,2'
          Dst:             i_panic
    - functionName:    json_parser_callback_deinit
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:285,2'
          Dst:             i_panic
    - functionName:    json_string_stream_create
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2401
      functionLinenumberEnd: 2443
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          182
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_create
        - i_stream_get_fd
        - i_stream_get_name
        - i_stream_set_name
        - malloc_multiply_check
        - p_malloc
        - str_data
        - str_len
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:2406,2'
          Dst:             i_panic
        - Src:             'json-parser.c:2408,12'
          Dst:             malloc_multiply_check
        - Src:             'json-parser.c:2408,12'
          Dst:             p_malloc
        - Src:             'json-parser.c:2412,25'
          Dst:             str_len
        - Src:             'json-parser.c:2413,28'
          Dst:             str_data
        - Src:             'json-parser.c:2433,6'
          Dst:             i_stream_get_fd
        - Src:             'json-parser.c:2432,11'
          Dst:             i_stream_create
        - Src:             'json-parser.c:2436,9'
          Dst:             i_stream_get_name
        - Src:             'json-parser.c:2438,3'
          Dst:             i_stream_set_name
        - Src:             'json-parser.c:2440,29'
          Dst:             t_strdup_printf
        - Src:             'json-parser.c:2440,3'
          Dst:             i_stream_set_name
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    json_string_istream_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2376
      functionLinenumberEnd: 2382
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:2380,2'
          Dst:             i_panic
    - functionName:    json_string_istream_close
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2387
      functionLinenumberEnd: 2397
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_do_parse_string_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1621
      functionLinenumberEnd: 1637
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - json_parser_do_parse_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1637,9'
          Dst:             json_parser_do_parse_string
    - functionName:    json_parser_do_parse_string
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          475
      EdgeCount:       80
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - json_parser_append_buffer
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
        - json_parser_parse_unicode_escape
        - json_parser_parse_unicode_escape_close
        - json_parser_parsed_size
        - json_parser_shift
        - json_parser_shifted_size
        - json_unichar_is_uchar
        - str_append_c
        - str_len
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json-parser.c:1459,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:1523,4'
          Branch Sides:    []
        - Branch String:   'json-parser.c:1591,4'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:1456,2'
          Dst:             str_len
        - Src:             'json-parser.c:1456,2'
          Dst:             i_panic
        - Src:             'json-parser.c:1458,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1465,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1463,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1468,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1478,5'
          Dst:             str_len
        - Src:             'json-parser.c:1478,5'
          Dst:             json_parser_shifted_size
        - Src:             'json-parser.c:1478,5'
          Dst:             i_panic
        - Src:             'json-parser.c:1481,5'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1483,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1486,10'
          Dst:             json_parser_parse_unicode_escape_close
        - Src:             'json-parser.c:1491,5'
          Dst:             str_len
        - Src:             'json-parser.c:1491,5'
          Dst:             json_parser_shifted_size
        - Src:             'json-parser.c:1491,5'
          Dst:             i_panic
        - Src:             'json-parser.c:1494,5'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1496,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1500,9'
          Dst:             json_unichar_is_uchar
        - Src:             'json-parser.c:1503,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1501,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1506,9'
          Dst:             str_len
        - Src:             'json-parser.c:1507,9'
          Dst:             json_parser_parsed_size
        - Src:             'json-parser.c:1513,5'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1516,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1520,8'
          Dst:             str_len
        - Src:             'json-parser.c:1526,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1530,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1534,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1539,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1544,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1548,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1552,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1556,5'
          Dst:             str_append_c
        - Src:             'json-parser.c:1561,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1566,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1564,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1569,10'
          Dst:             json_parser_parse_unicode_escape_close
        - Src:             'json-parser.c:1573,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1578,10'
          Dst:             json_parser_parse_unicode_escape
        - Src:             'json-parser.c:1586,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:1593,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1600,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1606,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:1609,4'
          Dst:             str_len
        - Src:             'json-parser.c:1609,4'
          Dst:             json_parser_shifted_size
        - Src:             'json-parser.c:1609,4'
          Dst:             i_panic
        - Src:             'json-parser.c:1612,4'
          Dst:             json_parser_append_buffer
    - functionName:    json_parser_shifted_size
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:786,2'
          Dst:             i_panic
    - functionName:    json_parser_append_buffer
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_parser_shifted_size
        - str_append_data
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1004,16'
          Dst:             json_parser_shifted_size
        - Src:             'json-parser.c:1008,2'
          Dst:             str_append_data
    - functionName:    json_parser_parse_unicode_escape_close
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1412
      functionLinenumberEnd: 1425
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - json_parser_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1416,3'
          Dst:             i_panic
        - Src:             'json-parser.c:1417,3'
          Dst:             json_parser_error
    - functionName:    json_unichar_is_uchar
      functionSourceFile: '/src/dovecot/src/lib-json/./json-syntax.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_parsed_size
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_shifted_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:794,9'
          Dst:             json_parser_shifted_size
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_parser_parse_unicode_escape
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1301
      functionLinenumberEnd: 1407
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          442
      EdgeCount:       93
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - json_parser_available_size
        - json_parser_call
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
        - json_parser_finish_bad_unicode_escape
        - json_parser_shift
        - json_unichar_is_control
        - str_len
        - uni_is_valid_ucs4
        - uni_ucs4_to_utf8_c
        - uni_ucs4_to_utf8_len
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json-parser.c:1326,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:1310,8'
          Dst:             str_len
        - Src:             'json-parser.c:1310,23'
          Dst:             uni_ucs4_to_utf8_len
        - Src:             'json-parser.c:1315,3'
          Dst:             uni_ucs4_to_utf8_c
        - Src:             'json-parser.c:1321,6'
          Dst:             json_parser_available_size
        - Src:             'json-parser.c:1325,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1340,5'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1338,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1343,3'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1353,10'
          Dst:             json_parser_call
        - Src:             'json-parser.c:1353,10'
          Dst:             json_parser_finish_bad_unicode_escape
        - Src:             'json-parser.c:1359,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1366,3'
          Dst:             i_panic
        - Src:             'json-parser.c:1368,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1381,3'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1387,8'
          Dst:             uni_is_valid_ucs4
        - Src:             'json-parser.c:1388,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1394,7'
          Dst:             json_unichar_is_control
        - Src:             'json-parser.c:1397,8'
          Dst:             str_len
        - Src:             'json-parser.c:1397,23'
          Dst:             uni_ucs4_to_utf8_len
        - Src:             'json-parser.c:1404,3'
          Dst:             uni_ucs4_to_utf8_c
    - functionName:    uni_ucs4_to_utf8_len
      functionSourceFile: '/src/dovecot/src/lib-json/../../src/lib/unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          63
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - uni_is_valid_ucs4
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/unichar.h:82,2'
          Dst:             uni_is_valid_ucs4
        - Src:             '../../src/lib/unichar.h:82,2'
          Dst:             i_panic
    - functionName:    json_parser_available_size
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:778,2'
          Dst:             i_panic
    - functionName:    json_parser_finish_bad_unicode_escape
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1283
      functionLinenumberEnd: 1295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1287,8'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1291,4'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1289,3'
          Dst:             json_parser_error
    - functionName:    uni_is_valid_ucs4
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_unichar_is_control
      functionSourceFile: '/src/dovecot/src/lib-json/./json-syntax.h'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    str_float_to_intmax
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         126
      ICount:          635
      EdgeCount:       169
      CyclomaticComplexity: 45
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:444,3'
          Dst:             i_panic
    - functionName:    json_parser_number_range_error
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_parser_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:373,3'
          Dst:             json_parser_error
        - Src:             'json-parser.c:378,3'
          Dst:             json_parser_error
        - Src:             'json-parser.c:382,2'
          Dst:             json_parser_error
    - functionName:    json_parser_do_parse_number
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         82
      ICount:          482
      EdgeCount:       100
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - i_unreached
        - json_parser_append_buffer
        - json_parser_curchar
        - json_parser_curchar_str
        - json_parser_error
        - json_parser_parsed_size
        - json_parser_shift
        - json_unichar_is_digit
        - str_len
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json-parser.c:1135,3'
          Branch Sides:    []
        - Branch String:   'json-parser.c:1252,4'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:1128,2'
          Dst:             i_panic
        - Src:             'json-parser.c:1129,2'
          Dst:             str_len
        - Src:             'json-parser.c:1129,2'
          Dst:             i_panic
        - Src:             'json-parser.c:1131,16'
          Dst:             json_parser_curchar
        - Src:             'json-parser.c:1132,8'
          Dst:             str_len
        - Src:             'json-parser.c:1133,7'
          Dst:             json_parser_parsed_size
        - Src:             'json-parser.c:1140,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1147,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1150,8'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1152,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1157,5'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1155,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1160,8'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1161,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1168,9'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1172,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1178,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1184,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1187,4'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1191,9'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1195,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1192,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1199,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1202,9'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1206,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1211,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1214,4'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1220,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1225,9'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1229,6'
          Dst:             json_parser_curchar_str
        - Src:             'json-parser.c:1226,5'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1233,4'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1236,8'
          Dst:             json_unichar_is_digit
        - Src:             'json-parser.c:1237,5'
          Dst:             json_parser_shift
        - Src:             'json-parser.c:1240,4'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1244,4'
          Dst:             i_unreached
        - Src:             'json-parser.c:1248,8'
          Dst:             str_len
        - Src:             'json-parser.c:1249,7'
          Dst:             json_parser_parsed_size
        - Src:             'json-parser.c:1259,5'
          Dst:             json_parser_append_buffer
        - Src:             'json-parser.c:1264,4'
          Dst:             json_parser_error
        - Src:             'json-parser.c:1268,3'
          Dst:             json_parser_append_buffer
    - functionName:    json_unichar_is_digit
      functionSourceFile: '/src/dovecot/src/lib-json/./json-syntax.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_do_parse_object_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1650
      functionLinenumberEnd: 1652
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_do_parse_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:1651,9'
          Dst:             json_parser_do_parse_string
    - functionName:    json_unichar_is_ws
      functionSourceFile: '/src/dovecot/src/lib-json/./json-syntax.h'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_parser_disable_string_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 2457
      functionLinenumberEnd: 2459
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_enable_string_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 2448
      functionLinenumberEnd: 2454
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:2449,2'
          Dst:             i_panic
    - functionName:    json_parser_get_location
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 2275
      functionLinenumberEnd: 2283
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          87
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:2277,2'
          Dst:             i_panic
    - functionName:    json_parse_more
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 2244
      functionLinenumberEnd: 2271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       39
      CyclomaticComplexity: 21
      functionsReached:
        - i_panic
        - i_unreached
        - json_parser_continue
      functionUses:    3
      BranchProfiles:
        - Branch String:   'json-parser.c:2252,2'
          Branch Sides:    []
      Callsites:
        - Src:             'json-parser.c:2247,2'
          Dst:             i_panic
        - Src:             'json-parser.c:2251,8'
          Dst:             json_parser_continue
        - Src:             'json-parser.c:2267,3'
          Dst:             i_unreached
    - functionName:    json_parser_interrupt
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:271,2'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_parser_deinit
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - i_stream_unref
        - p_free_internal
        - str_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:243,2'
          Dst:             str_free
        - Src:             'json-parser.c:244,2'
          Dst:             str_free
        - Src:             'json-parser.c:245,2'
          Dst:             array_free_i
        - Src:             'json-parser.c:246,2'
          Dst:             i_stream_unref
        - Src:             'json-parser.c:247,2'
          Dst:             p_free_internal
        - Src:             'json-parser.c:248,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_parser_init
      functionSourceFile: '/src/dovecot/src/lib-json/json-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          151
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - array_create_i
        - i_stream_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-parser.c:207,11'
          Dst:             malloc_multiply_check
        - Src:             'json-parser.c:207,11'
          Dst:             p_malloc
        - Src:             'json-parser.c:210,2'
          Dst:             array_create_i
        - Src:             'json-parser.c:213,2'
          Dst:             i_stream_ref
    - functionName:    json_node_is_singular
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          30
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './json-types.h:529,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    json_value_get_str
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './json-types.h:163,2'
          Dst:             i_panic
    - functionName:    json_node_get_str
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          62
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
        - json_value_get_str
      functionUses:    1
      BranchProfiles:
        - Branch String:   './json-types.h:281,2'
          Branch Sides:    []
      Callsites:
        - Src:             './json-types.h:293,3'
          Dst:             i_unreached
        - Src:             './json-types.h:295,9'
          Dst:             json_value_get_str
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_tree_node_create_list
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:145,2'
          Dst:             i_panic
        - Src:             'json-tree.c:147,2'
          Dst:             i_panic
        - Src:             'json-tree.c:150,4'
          Dst:             malloc_multiply_check
        - Src:             'json-tree.c:150,4'
          Dst:             p_malloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_tree_walk_next
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          148
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - json_node_is_singular
        - json_tree_node_get_child
        - json_tree_node_get_next
        - json_tree_node_get_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:665,3'
          Dst:             i_panic
        - Src:             'json-tree.c:673,7'
          Dst:             json_node_is_singular
        - Src:             'json-tree.c:674,16'
          Dst:             json_tree_node_get_child
        - Src:             'json-tree.c:683,15'
          Dst:             json_tree_node_get_next
        - Src:             'json-tree.c:689,9'
          Dst:             json_tree_node_get_parent
    - functionName:    json_tree_node_get_child
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:546,2'
          Dst:             i_panic
    - functionName:    json_tree_node_get_next
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 534
      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:    json_tree_node_get_parent
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 540
      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:    json_tree_walk
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          331
      EdgeCount:       54
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_delete_i
        - array_idx_i
        - array_is_created_i
        - i_panic
        - json_tree_get_root
        - json_tree_node_is_root
        - json_tree_walk_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:697,15'
          Dst:             json_tree_walk_next
        - Src:             'json-tree.c:699,3'
          Dst:             i_panic
        - Src:             'json-tree.c:705,6'
          Dst:             json_tree_node_is_root
        - Src:             'json-tree.c:709,3'
          Dst:             i_panic
        - Src:             'json-tree.c:710,3'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:710,3'
          Dst:             i_panic
        - Src:             'json-tree.c:711,3'
          Dst:             array_count_i
        - Src:             'json-tree.c:711,3'
          Dst:             i_panic
        - Src:             'json-tree.c:712,17'
          Dst:             array_count_i
        - Src:             'json-tree.c:712,17'
          Dst:             array_idx_i
        - Src:             'json-tree.c:713,3'
          Dst:             array_count_i
        - Src:             'json-tree.c:713,3'
          Dst:             array_delete_i
        - Src:             'json-tree.c:736,8'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:737,4'
          Dst:             array_create_i
        - Src:             'json-tree.c:738,3'
          Dst:             array_append_i
        - Src:             'json-tree.c:739,15'
          Dst:             json_tree_get_root
        - Src:             'json-tree.c:740,3'
          Dst:             i_panic
        - Src:             'json-tree.c:741,3'
          Dst:             i_panic
    - functionName:    json_tree_node_is_root
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_get_root
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:482,10'
          Dst:             json_tree_get_root
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    3
      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:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_tree_get_root
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_tree_walker_free
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:653,2'
          Dst:             array_free_i
        - Src:             'json-tree.c:654,2'
          Dst:             p_free_internal
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    json_tree_walker_create
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - json_tree_get_root_const
        - json_tree_walker_create_from_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:640,2'
          Dst:             i_panic
        - Src:             'json-tree.c:642,3'
          Dst:             json_tree_get_root_const
        - Src:             'json-tree.c:641,9'
          Dst:             json_tree_walker_create_from_node
    - functionName:    json_tree_get_root_const
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_walker_create_from_node
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:629,2'
          Dst:             i_panic
        - Src:             'json-tree.c:631,12'
          Dst:             malloc_multiply_check
        - Src:             'json-tree.c:631,12'
          Dst:             p_malloc
    - functionName:    json_tree_node_get_str
      functionSourceFile: '/src/dovecot/src/lib-json/./json-tree.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_get_str
        - json_tree_node_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './json-tree.h:125,27'
          Dst:             json_tree_node_get
        - Src:             './json-tree.h:125,9'
          Dst:             json_node_get_str
    - functionName:    json_tree_node_get
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_get_child_with
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - json_node_is_object
        - json_tree_node_get_member
        - json_tree_node_get_str
        - json_tree_node_is_string
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:588,2'
          Dst:             i_panic
        - Src:             'json-tree.c:596,8'
          Dst:             json_node_is_object
        - Src:             'json-tree.c:598,12'
          Dst:             json_tree_node_get_member
        - Src:             'json-tree.c:601,8'
          Dst:             json_tree_node_is_string
        - Src:             'json-tree.c:603,14'
          Dst:             json_tree_node_get_str
        - Src:             'json-tree.c:603,7'
          Dst:             strcmp
    - functionName:    json_node_is_object
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_get_member
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - json_node_is_object
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:567,2'
          Dst:             json_node_is_object
        - Src:             'json-tree.c:567,2'
          Dst:             i_panic
        - Src:             'json-tree.c:568,2'
          Dst:             i_panic
        - Src:             'json-tree.c:575,7'
          Dst:             strcmp
    - functionName:    json_tree_node_is_string
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:497,9'
          Dst:             json_node_is_string
    - functionName:    json_node_is_string
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_get_child_count
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:555,2'
          Dst:             i_panic
    - functionName:    json_tree_node_is_null
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_null
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:522,9'
          Dst:             json_node_is_null
    - functionName:    json_node_is_null
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_is_boolean
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_boolean
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:517,9'
          Dst:             json_node_is_boolean
    - functionName:    json_node_is_boolean
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          30
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './json-types.h:490,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    json_tree_node_is_false
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_false
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:512,9'
          Dst:             json_node_is_false
    - functionName:    json_node_is_false
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_is_true
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_true
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:507,9'
          Dst:             json_node_is_true
    - functionName:    json_node_is_true
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_is_number
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_number
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:502,9'
          Dst:             json_node_is_number
    - functionName:    json_node_is_number
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_is_array
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:492,9'
          Dst:             json_node_is_array
    - functionName:    json_node_is_array
      functionSourceFile: '/src/dovecot/src/lib-json/./json-types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_is_object
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_object
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:487,9'
          Dst:             json_node_is_object
    - functionName:    json_tree_node_get_tree_const
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 477
      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:    json_tree_node_get_tree
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 471
      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:    json_tree_node_get_name
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_get_type
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tree_node_add_subtree
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:451,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_value
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          225
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_memcpy
        - i_panic
        - i_stream_ref
        - json_tree_node_create
        - json_tree_ref
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    14
      BranchProfiles:
        - Branch String:   'json-tree.c:249,2'
          Branch Sides:    []
      Callsites:
        - Src:             'json-tree.c:246,11'
          Dst:             json_tree_node_create
        - Src:             'json-tree.c:259,4'
          Dst:             p_strdup
        - Src:             'json-tree.c:262,11'
          Dst:             malloc_multiply_check
        - Src:             'json-tree.c:262,11'
          Dst:             p_malloc
        - Src:             'json-tree.c:264,10'
          Dst:             p_malloc
        - Src:             'json-tree.c:265,17'
          Dst:             i_memcpy
        - Src:             'json-tree.c:269,8'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:270,4'
          Dst:             array_create_i
        - Src:             'json-tree.c:271,3'
          Dst:             array_append_i
        - Src:             'json-tree.c:273,3'
          Dst:             i_stream_ref
        - Src:             'json-tree.c:279,3'
          Dst:             i_panic
        - Src:             'json-tree.c:280,8'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:281,4'
          Dst:             array_create_i
        - Src:             'json-tree.c:282,3'
          Dst:             array_append_i
        - Src:             'json-tree.c:284,3'
          Dst:             json_tree_ref
    - functionName:    json_tree_node_create
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          191
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - json_tree_node_create_list
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:174,2'
          Dst:             i_panic
        - Src:             'json-tree.c:178,3'
          Dst:             i_panic
        - Src:             'json-tree.c:184,12'
          Dst:             malloc_multiply_check
        - Src:             'json-tree.c:184,12'
          Dst:             p_malloc
        - Src:             'json-tree.c:186,17'
          Dst:             p_strdup
        - Src:             'json-tree.c:188,10'
          Dst:             json_tree_node_create_list
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    json_tree_ref
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 69
      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:             'json-tree.c:67,2'
          Dst:             i_panic
    - functionName:    json_tree_node_add_text_data
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:439,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_text
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:422,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_null
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:407,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_boolean
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:394,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_true
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:383,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_false
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:373,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_number_str
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:361,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_number_int
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 348
      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:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:348,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_string_stream
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:333,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_data
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:320,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_string
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:302,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_node_add_array
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:227,11'
          Dst:             json_tree_node_create
    - functionName:    json_tree_node_add_object
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:214,11'
          Dst:             json_tree_node_create
    - functionName:    json_tree_node_add
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_node_add_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:203,9'
          Dst:             json_tree_node_add_value
    - functionName:    json_tree_is_null
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_null
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:135,9'
          Dst:             json_node_is_null
    - functionName:    json_tree_is_boolean
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_boolean
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:130,9'
          Dst:             json_node_is_boolean
    - functionName:    json_tree_is_false
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_false
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:125,9'
          Dst:             json_node_is_false
    - functionName:    json_tree_is_true
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_true
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:120,9'
          Dst:             json_node_is_true
    - functionName:    json_tree_is_number
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_number
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:115,9'
          Dst:             json_node_is_number
    - functionName:    json_tree_is_string
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:110,9'
          Dst:             json_node_is_string
    - functionName:    json_tree_is_array
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:105,9'
          Dst:             json_node_is_array
    - functionName:    json_tree_is_object
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_node_is_object
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:100,9'
          Dst:             json_node_is_object
    - functionName:    json_tree_unref
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          155
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - array_free_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - i_panic
        - i_stream_unref
        - json_tree_unref
        - pool_unref
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:79,2'
          Dst:             i_panic
        - Src:             'json-tree.c:83,6'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:85,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'json-tree.c:86,4'
          Dst:             json_tree_unref
        - Src:             'json-tree.c:87,3'
          Dst:             array_free_i
        - Src:             'json-tree.c:89,6'
          Dst:             array_is_created_i
        - Src:             'json-tree.c:91,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'json-tree.c:92,4'
          Dst:             i_stream_unref
        - Src:             'json-tree.c:93,3'
          Dst:             array_free_i
        - Src:             'json-tree.c:95,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    json_tree_create
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tree_create_pool
        - pool_alloconly_create
        - pool_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:58,9'
          Dst:             pool_alloconly_create
        - Src:             'json-tree.c:59,10'
          Dst:             json_tree_create_pool
        - Src:             'json-tree.c:60,2'
          Dst:             pool_unref
    - functionName:    json_tree_create_pool
      functionSourceFile: '/src/dovecot/src/lib-json/json-tree.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json-tree.c:40,2'
          Dst:             pool_ref
        - Src:             'json-tree.c:42,10'
          Dst:             malloc_multiply_check
        - Src:             'json-tree.c:42,10'
          Dst:             p_malloc
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib-json/../../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:    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:    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:    buffer_append_full_file
      functionSourceFile: '/src/dovecot/src/lib/buffer-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append_full_istream
        - eacces_error_get
        - i_panic
        - i_stream_create_file
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer-istream.c:41,23'
          Dst:             i_stream_create_file
        - Src:             'buffer-istream.c:43,3'
          Dst:             buffer_append_full_istream
        - Src:             'buffer-istream.c:45,14'
          Dst:             eacces_error_get
        - Src:             'buffer-istream.c:46,2'
          Dst:             i_stream_unref
        - Src:             'buffer-istream.c:47,2'
          Dst:             i_panic
    - functionName:    buffer_append_full_istream
      functionSourceFile: '/src/dovecot/src/lib/buffer-istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          120
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_append
        - i_panic
        - i_stream_get_error
        - i_stream_read_more
        - i_stream_skip
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer-istream.c:16,16'
          Dst:             i_stream_read_more
        - Src:             'buffer-istream.c:20,3'
          Dst:             buffer_append
        - Src:             'buffer-istream.c:21,3'
          Dst:             i_stream_skip
        - Src:             'buffer-istream.c:28,2'
          Dst:             i_panic
        - Src:             'buffer-istream.c:31,23'
          Dst:             i_stream_get_error
        - Src:             'buffer-istream.c:31,14'
          Dst:             t_strdup
    - 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_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:    hmac_hkdf
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          361
      EdgeCount:       72
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_append
        - hmac_final
        - hmac_init
        - hmac_update
        - i_panic
        - safe_memset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hmac.c:105,2'
          Dst:             i_panic
        - Src:             'hmac.c:106,2'
          Dst:             i_panic
        - Src:             'hmac.c:116,2'
          Dst:             i_panic
        - Src:             'hmac.c:117,2'
          Dst:             i_panic
        - Src:             'hmac.c:119,2'
          Dst:             i_panic
        - Src:             'hmac.c:120,2'
          Dst:             i_panic
        - Src:             'hmac.c:130,2'
          Dst:             hmac_init
        - Src:             'hmac.c:131,2'
          Dst:             hmac_update
        - Src:             'hmac.c:132,2'
          Dst:             hmac_final
        - Src:             'hmac.c:140,3'
          Dst:             hmac_init
        - Src:             'hmac.c:142,4'
          Dst:             hmac_update
        - Src:             'hmac.c:143,3'
          Dst:             hmac_update
        - Src:             'hmac.c:144,3'
          Dst:             hmac_update
        - Src:             'hmac.c:146,3'
          Dst:             hmac_final
        - Src:             'hmac.c:147,3'
          Dst:             buffer_append
        - Src:             'hmac.c:151,2'
          Dst:             safe_memset
        - Src:             'hmac.c:152,2'
          Dst:             safe_memset
    - functionName:    hmac_init
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          245
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - safe_memset
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'hmac.c:26,2'
          Dst:             i_panic
        - Src:             'hmac.c:39,3'
          Dst:             i_memcpy
        - Src:             'hmac.c:41,2'
          Dst:             i_memcpy
        - Src:             'hmac.c:53,2'
          Dst:             safe_memset
        - Src:             'hmac.c:54,2'
          Dst:             safe_memset
    - functionName:    hmac_update
      functionSourceFile: '/src/dovecot/src/lib/./hmac.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmac_final
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          61
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      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:    t_hmac_str
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - t_hmac_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hmac.c:96,47'
          Dst:             strlen
        - Src:             'hmac.c:96,9'
          Dst:             t_hmac_data
    - functionName:    t_hmac_data
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_create_dynamic
        - buffer_get_space_unsafe
        - hmac_final
        - hmac_init
        - hmac_update
        - i_panic
        - pool_datastack_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hmac.c:72,2'
          Dst:             i_panic
        - Src:             'hmac.c:73,2'
          Dst:             i_panic
        - Src:             'hmac.c:74,2'
          Dst:             i_panic
        - Src:             'hmac.c:76,18'
          Dst:             pool_datastack_create
        - Src:             'hmac.c:76,18'
          Dst:             buffer_create_dynamic
        - Src:             'hmac.c:77,2'
          Dst:             hmac_init
        - Src:             'hmac.c:79,3'
          Dst:             hmac_update
        - Src:             'hmac.c:80,23'
          Dst:             buffer_get_space_unsafe
        - Src:             'hmac.c:81,2'
          Dst:             hmac_final
    - functionName:    t_hmac_buffer
      functionSourceFile: '/src/dovecot/src/lib/hmac.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_hmac_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hmac.c:89,9'
          Dst:             t_hmac_data
    - 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:    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:    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:    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:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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_count_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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_append_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_server_input_done
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - e_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:141,6'
          Dst:             array_count_i
        - Src:             'auth-client-connection.c:142,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:147,3'
          Dst:             e_error
    - functionName:    auth_server_input_cookie
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:131,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:135,17'
          Dst:             p_strdup
    - functionName:    auth_server_input_cuid
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:118,6'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:119,3'
          Dst:             e_error
    - functionName:    auth_server_input_spid
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - e_error
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:105,6'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:106,3'
          Dst:             e_error
    - functionName:    auth_server_input_mech
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          210
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - array_append_i
        - e_error
        - p_strdup
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:68,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:74,19'
          Dst:             p_strdup
        - Src:             'auth-client-connection.c:76,6'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:80,7'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:82,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:84,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:86,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:88,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:90,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:92,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:94,12'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:97,2'
          Dst:             array_append_i
    - functionName:    auth_server_lookup_request
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - e_error
        - hash_table_lookup
        - str_to_uint
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:231,24'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:232,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:237,12'
          Dst:             hash_table_lookup
        - Src:             'auth-client-connection.c:239,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:244,3'
          Dst:             e_error
    - functionName:    auth_server_input_cancelled
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - auth_client_request_server_input
        - e_error
        - hash_table_lookup
        - str_to_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:312,25'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:313,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:319,3'
          Dst:             hash_table_lookup
        - Src:             'auth-client-connection.c:322,3'
          Dst:             auth_client_request_server_input
    - functionName:    auth_server_input_fail
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_request_server_input
        - auth_server_lookup_request
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:298,8'
          Dst:             auth_server_lookup_request
        - Src:             'auth-client-connection.c:301,2'
          Dst:             auth_client_request_server_input
    - functionName:    auth_server_input_cont
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - auth_client_request_server_input
        - auth_server_lookup_request
        - e_error
        - str_array_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:277,6'
          Dst:             str_array_length
        - Src:             'auth-client-connection.c:278,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:283,8'
          Dst:             auth_server_lookup_request
        - Src:             'auth-client-connection.c:286,2'
          Dst:             auth_client_request_server_input
    - functionName:    auth_server_input_ok
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_request_server_input
        - auth_server_lookup_request
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:262,8'
          Dst:             auth_server_lookup_request
        - Src:             'auth-client-connection.c:265,2'
          Dst:             auth_client_request_server_input
    - functionName:    auth_client_connection_handle_line
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - auth_server_input_cancelled
        - auth_server_input_cont
        - auth_server_input_fail
        - auth_server_input_ok
        - e_debug
        - e_error
        - event_send_abort
        - event_want_level
        - strcmp
        - t_strsplit_tabescaped
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:334,2'
          Dst:             event_want_level
        - Src:             'auth-client-connection.c:334,2'
          Dst:             e_debug
        - Src:             'auth-client-connection.c:334,2'
          Dst:             event_send_abort
        - Src:             'auth-client-connection.c:336,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'auth-client-connection.c:338,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:341,6'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:342,10'
          Dst:             auth_server_input_ok
        - Src:             'auth-client-connection.c:343,11'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:344,10'
          Dst:             auth_server_input_cont
        - Src:             'auth-client-connection.c:345,11'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:346,10'
          Dst:             auth_server_input_fail
        - Src:             'auth-client-connection.c:347,11'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:348,10'
          Dst:             auth_server_input_cancelled
        - Src:             'auth-client-connection.c:350,3'
          Dst:             e_error
    - functionName:    auth_client_connection_reconnect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - auth_client_connection_disconnect
        - auth_server_reconnect_timeout
        - timeout_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:499,2'
          Dst:             auth_client_connection_disconnect
        - Src:             'auth-client-connection.c:502,13'
          Dst:             timeout_add
        - Src:             'auth-client-connection.c:502,13'
          Dst:             auth_server_reconnect_timeout
    - functionName:    auth_client_connection_disconnect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          107
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - auth_client_connection_remove_requests
        - connection_disconnect
        - timeout_remove
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:443,3'
          Dst:             connection_disconnect
        - Src:             'auth-client-connection.c:450,2'
          Dst:             array_clear_i
        - Src:             'auth-client-connection.c:452,2'
          Dst:             timeout_remove
        - Src:             'auth-client-connection.c:454,2'
          Dst:             auth_client_connection_remove_requests
    - functionName:    auth_server_reconnect_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_connection_connect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:490,8'
          Dst:             auth_client_connection_connect
    - functionName:    auth_client_connection_connect
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          183
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - auth_client_connection_disconnect
        - auth_client_handshake_timeout
        - connection_client_connect
        - e_error
        - e_warning
        - eacces_error_get
        - i_panic
        - o_stream_get_error
        - o_stream_send_str
        - t_strdup_printf
        - timeout_add
        - timeout_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:549,2'
          Dst:             i_panic
        - Src:             'auth-client-connection.c:552,2'
          Dst:             timeout_remove
        - Src:             'auth-client-connection.c:555,6'
          Dst:             connection_client_connect
        - Src:             'auth-client-connection.c:556,7'
          Dst:             __errno_location
        - Src:             'auth-client-connection.c:557,4'
          Dst:             eacces_error_get
        - Src:             'auth-client-connection.c:557,4'
          Dst:             e_error
        - Src:             'auth-client-connection.c:561,4'
          Dst:             e_error
        - Src:             'auth-client-connection.c:567,14'
          Dst:             t_strdup_printf
        - Src:             'auth-client-connection.c:571,6'
          Dst:             o_stream_send_str
        - Src:             'auth-client-connection.c:572,3'
          Dst:             o_stream_get_error
        - Src:             'auth-client-connection.c:572,3'
          Dst:             e_warning
        - Src:             'auth-client-connection.c:576,4'
          Dst:             o_stream_get_error
        - Src:             'auth-client-connection.c:575,3'
          Dst:             auth_client_connection_disconnect
        - Src:             'auth-client-connection.c:580,13'
          Dst:             timeout_add
        - Src:             'auth-client-connection.c:580,13'
          Dst:             auth_client_handshake_timeout
    - functionName:    auth_client_handshake_timeout
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_connection_reconnect
        - e_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:526,2'
          Dst:             e_error
        - Src:             'auth-client-connection.c:530,2'
          Dst:             auth_client_connection_reconnect
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    auth_client_connection_remove_requests
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - auth_client_request_get_create_time
        - auth_client_request_is_aborted
        - auth_client_request_server_input
        - e_warning
        - hash_table_clear
        - hash_table_count
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:408,6'
          Dst:             hash_table_count
        - Src:             'auth-client-connection.c:411,9'
          Dst:             hash_table_iterate_init
        - Src:             'auth-client-connection.c:412,9'
          Dst:             hash_table_iterate
        - Src:             'auth-client-connection.c:413,8'
          Dst:             auth_client_request_is_aborted
        - Src:             'auth-client-connection.c:415,14'
          Dst:             auth_client_request_get_create_time
        - Src:             'auth-client-connection.c:420,3'
          Dst:             auth_client_request_server_input
        - Src:             'auth-client-connection.c:424,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'auth-client-connection.c:425,2'
          Dst:             hash_table_clear
        - Src:             'auth-client-connection.c:428,3'
          Dst:             e_warning
    - functionName:    auth_client_connection_handshake_ready
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          147
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_clear_i
        - buffer_get_modifiable_data
        - i_strdup
        - p_free_internal
        - timeout_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:204,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'auth-client-connection.c:206,3'
          Dst:             p_free_internal
        - Src:             'auth-client-connection.c:208,2'
          Dst:             array_clear_i
        - Src:             'auth-client-connection.c:209,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'auth-client-connection.c:211,4'
          Dst:             array_append_space_i
        - Src:             'auth-client-connection.c:213,20'
          Dst:             i_strdup
        - Src:             'auth-client-connection.c:216,2'
          Dst:             timeout_remove
    - functionName:    auth_client_connection_handshake_line
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          198
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - auth_server_input_cookie
        - auth_server_input_cuid
        - auth_server_input_done
        - auth_server_input_mech
        - auth_server_input_spid
        - connection_verify_version
        - e_error
        - str_to_uint
        - strcmp
        - t_strsplit_tabescaped
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:163,9'
          Dst:             t_strsplit_tabescaped
        - Src:             'auth-client-connection.c:164,6'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:166,7'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:167,7'
          Dst:             str_to_uint
        - Src:             'auth-client-connection.c:168,4'
          Dst:             e_error
        - Src:             'auth-client-connection.c:174,7'
          Dst:             connection_verify_version
        - Src:             'auth-client-connection.c:181,13'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:182,10'
          Dst:             auth_server_input_mech
        - Src:             'auth-client-connection.c:183,13'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:184,10'
          Dst:             auth_server_input_spid
        - Src:             'auth-client-connection.c:185,13'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:186,10'
          Dst:             auth_server_input_cuid
        - Src:             'auth-client-connection.c:187,13'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:188,10'
          Dst:             auth_server_input_cookie
        - Src:             'auth-client-connection.c:189,13'
          Dst:             strcmp
        - Src:             'auth-client-connection.c:190,10'
          Dst:             auth_server_input_done
        - Src:             'auth-client-connection.c:193,2'
          Dst:             e_error
    - functionName:    auth_client_connection_input_line
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_connection_disconnect
        - auth_client_connection_handle_line
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:364,8'
          Dst:             auth_client_connection_handle_line
        - Src:             'auth-client-connection.c:366,43'
          Dst:             t_strdup_printf
        - Src:             'auth-client-connection.c:366,3'
          Dst:             auth_client_connection_disconnect
    - functionName:    auth_client_connection_connected
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:540,2'
          Dst:             i_panic
    - functionName:    auth_client_connection_destroy
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_connection_disconnect
        - auth_client_connection_reconnect
        - e_error
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'auth-client-connection.c:467,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-client-connection.c:469,3'
          Dst:             auth_client_connection_disconnect
        - Src:             'auth-client-connection.c:474,3'
          Dst:             e_error
        - Src:             'auth-client-connection.c:477,3'
          Dst:             auth_client_connection_disconnect
        - Src:             'auth-client-connection.c:483,11'
          Dst:             strerror
        - Src:             'auth-client-connection.c:481,3'
          Dst:             auth_client_connection_reconnect
    - functionName:    auth_client_connection_remove_request
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - connection_handshake_received
        - hash_table_try_remove
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:608,2'
          Dst:             connection_handshake_received
        - Src:             'auth-client-connection.c:608,2'
          Dst:             i_panic
        - Src:             'auth-client-connection.c:613,2'
          Dst:             hash_table_try_remove
        - Src:             'auth-client-connection.c:613,2'
          Dst:             i_panic
    - functionName:    auth_client_connection_add_request
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - connection_handshake_received
        - hash_table_insert
        - hash_table_lookup
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:591,2'
          Dst:             connection_handshake_received
        - Src:             'auth-client-connection.c:591,2'
          Dst:             i_panic
        - Src:             'auth-client-connection.c:598,2'
          Dst:             hash_table_lookup
        - Src:             'auth-client-connection.c:598,2'
          Dst:             i_panic
        - Src:             'auth-client-connection.c:599,2'
          Dst:             hash_table_insert
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_connection_deinit
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - auth_client_connection_disconnect
        - connection_deinit
        - hash_table_count
        - hash_table_destroy
        - i_panic
        - pool_unref
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:515,2'
          Dst:             auth_client_connection_disconnect
        - Src:             'auth-client-connection.c:516,2'
          Dst:             hash_table_count
        - Src:             'auth-client-connection.c:516,2'
          Dst:             i_panic
        - Src:             'auth-client-connection.c:517,2'
          Dst:             hash_table_destroy
        - Src:             'auth-client-connection.c:518,2'
          Dst:             timeout_remove
        - Src:             'auth-client-connection.c:519,2'
          Dst:             array_free_i
        - Src:             'auth-client-connection.c:520,2'
          Dst:             connection_deinit
        - Src:             'auth-client-connection.c:521,2'
          Dst:             pool_unref
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_connection_init
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - connection_init_client_unix
        - hash_table_create_direct
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:379,9'
          Dst:             pool_alloconly_create
        - Src:             'auth-client-connection.c:380,9'
          Dst:             malloc_multiply_check
        - Src:             'auth-client-connection.c:380,9'
          Dst:             p_malloc
        - Src:             'auth-client-connection.c:386,2'
          Dst:             connection_init_client_unix
        - Src:             'auth-client-connection.c:389,2'
          Dst:             hash_table_create_direct
        - Src:             'auth-client-connection.c:390,2'
          Dst:             array_create_i
    - functionName:    auth_client_connection_list_init
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-connection.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - connection_list_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-connection.c:57,9'
          Dst:             connection_list_init
    - functionName:    args_parse_user
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_add_str
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:376,6'
          Dst:             strcmp
        - Src:             'auth-client-request.c:377,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:378,11'
          Dst:             strcmp
        - Src:             'auth-client-request.c:379,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:380,11'
          Dst:             strcmp
        - Src:             'auth-client-request.c:381,3'
          Dst:             event_add_str
    - functionName:    auth_client_request_fail
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - auth_client_request_free
        - auth_client_send_cancel
        - call_callback
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:330,2'
          Dst:             i_panic
        - Src:             'auth-client-request.c:334,3'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:337,2'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:337,2'
          Dst:             e_debug
        - Src:             'auth-client-request.c:337,2'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:339,12'
          Dst:             t_strconcat
        - Src:             'auth-client-request.c:341,2'
          Dst:             auth_client_send_cancel
        - Src:             'auth-client-request.c:342,2'
          Dst:             call_callback
        - Src:             'auth-client-request.c:343,2'
          Dst:             auth_client_request_free
    - functionName:    auth_client_send_cancel
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - e_error
        - o_stream_send_str
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:628,3'
          Dst:             e_error
        - Src:             'auth-client-request.c:633,20'
          Dst:             t_strdup_printf
        - Src:             'auth-client-request.c:635,6'
          Dst:             o_stream_send_str
        - Src:             'auth-client-request.c:636,3'
          Dst:             e_error
    - functionName:    call_callback
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_request_free
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_connection_remove_request
        - event_unref
        - pool_unref
        - timeout_remove
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:289,7'
          Dst:             auth_client_connection_remove_request
        - Src:             'auth-client-request.c:295,2'
          Dst:             timeout_remove
        - Src:             'auth-client-request.c:296,2'
          Dst:             timeout_remove
        - Src:             'auth-client-request.c:297,2'
          Dst:             event_unref
        - Src:             'auth-client-request.c:298,2'
          Dst:             pool_unref
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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_data
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_request_fail_conn_lost
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - auth_server_reconnect_timeout
        - call_callback
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - timeout_add_short
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:270,2'
          Dst:             timeout_remove
        - Src:             'auth-client-request.c:273,3'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:276,2'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:276,2'
          Dst:             e_debug
        - Src:             'auth-client-request.c:276,2'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:278,2'
          Dst:             call_callback
        - Src:             'auth-client-request.c:280,13'
          Dst:             timeout_add_short
        - Src:             'auth-client-request.c:280,13'
          Dst:             auth_server_reconnect_timeout
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    auth_client_request_handle_input
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         116
      ICount:          586
      EdgeCount:       144
      CyclomaticComplexity: 30
      functionsReached:
        - args_parse_user
        - auth_client_request_continue
        - auth_client_request_fail
        - auth_client_request_free
        - auth_client_request_is_aborted
        - buffer_append_buf
        - buffer_create_dynamic
        - call_callback
        - e_debug
        - event_add_str
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - i_unreached
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strncmp
        - t_split_key_value_eq
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'auth-client-request.c:502,2'
          Branch Sides:    []
        - Branch String:   'auth-client-request.c:526,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-client-request.c:461,6'
          Dst:             auth_client_request_is_aborted
        - Src:             'auth-client-request.c:463,3'
          Dst:             auth_client_request_free
        - Src:             'auth-client-request.c:469,8'
          Dst:             str_begins
        - Src:             'auth-client-request.c:469,8'
          Dst:             strncmp
        - Src:             'auth-client-request.c:469,8'
          Dst:             str_begins_builtin_success
        - Src:             'auth-client-request.c:481,4'
          Dst:             auth_client_request_fail
        - Src:             'auth-client-request.c:491,5'
          Dst:             t_strdup_printf
        - Src:             'auth-client-request.c:489,4'
          Dst:             auth_client_request_fail
        - Src:             'auth-client-request.c:496,28'
          Dst:             buffer_create_dynamic
        - Src:             'auth-client-request.c:498,3'
          Dst:             buffer_append_buf
        - Src:             'auth-client-request.c:504,7'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:508,7'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:514,4'
          Dst:             t_split_key_value_eq
        - Src:             'auth-client-request.c:515,8'
          Dst:             str_begins
        - Src:             'auth-client-request.c:515,8'
          Dst:             strncmp
        - Src:             'auth-client-request.c:515,8'
          Dst:             str_begins_builtin_success
        - Src:             'auth-client-request.c:516,5'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:517,13'
          Dst:             strcmp
        - Src:             'auth-client-request.c:520,5'
          Dst:             args_parse_user
        - Src:             'auth-client-request.c:528,3'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:528,3'
          Dst:             e_debug
        - Src:             'auth-client-request.c:528,3'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:543,4'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:543,4'
          Dst:             e_debug
        - Src:             'auth-client-request.c:543,4'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:544,4'
          Dst:             i_panic
        - Src:             'auth-client-request.c:545,4'
          Dst:             auth_client_request_continue
        - Src:             'auth-client-request.c:549,4'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:549,4'
          Dst:             e_debug
        - Src:             'auth-client-request.c:549,4'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:551,4'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:551,4'
          Dst:             e_debug
        - Src:             'auth-client-request.c:551,4'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:557,3'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:557,3'
          Dst:             e_debug
        - Src:             'auth-client-request.c:557,3'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:562,3'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:562,3'
          Dst:             e_debug
        - Src:             'auth-client-request.c:562,3'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:565,3'
          Dst:             i_unreached
        - Src:             'auth-client-request.c:568,2'
          Dst:             call_callback
        - Src:             'auth-client-request.c:570,3'
          Dst:             auth_client_request_free
    - functionName:    auth_client_request_is_aborted
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 364
      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:    t_split_key_value_eq
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_split_key_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:190,9'
          Dst:             t_split_key_value
    - functionName:    auth_client_request_continue
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          202
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - auth_client_request_final
        - e_debug
        - e_error
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - o_stream_sendv
        - str_c
        - strlen
        - t_base64_encode
        - t_strconcat
        - t_strdup_printf
        - timeout_add_short
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:399,23'
          Dst:             timeout_add_short
        - Src:             'auth-client-request.c:399,23'
          Dst:             auth_client_request_final
        - Src:             'auth-client-request.c:405,3'
          Dst:             e_error
        - Src:             'auth-client-request.c:411,11'
          Dst:             t_strdup_printf
        - Src:             'auth-client-request.c:415,4'
          Dst:             t_base64_encode
        - Src:             'auth-client-request.c:418,12'
          Dst:             str_c
        - Src:             'auth-client-request.c:417,14'
          Dst:             t_strconcat
        - Src:             'auth-client-request.c:422,19'
          Dst:             strlen
        - Src:             'auth-client-request.c:430,20'
          Dst:             strlen
        - Src:             'auth-client-request.c:433,19'
          Dst:             strlen
        - Src:             'auth-client-request.c:438,3'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:440,2'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:440,2'
          Dst:             e_debug
        - Src:             'auth-client-request.c:440,2'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:442,6'
          Dst:             o_stream_sendv
        - Src:             'auth-client-request.c:443,3'
          Dst:             e_error
    - functionName:    auth_client_request_final
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_request_handle_input
        - i_panic
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:386,2'
          Dst:             timeout_remove
        - Src:             'auth-client-request.c:387,2'
          Dst:             i_panic
        - Src:             'auth-client-request.c:388,2'
          Dst:             auth_client_request_handle_input
    - functionName:    t_base64_encode
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_base64_scheme_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/base64.h:294,9'
          Dst:             t_base64_scheme_encode
    - functionName:    auth_client_request_server_input
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          173
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - auth_client_request_free
        - auth_client_request_handle_input
        - auth_client_request_is_aborted
        - i_unreached
        - p_strarray_dup
        - strcmp
        - t_split_key_value_eq
      functionUses:    5
      BranchProfiles:
        - Branch String:   'auth-client-request.c:587,2'
          Branch Sides:    []
      Callsites:
        - Src:             'auth-client-request.c:581,6'
          Dst:             auth_client_request_is_aborted
        - Src:             'auth-client-request.c:583,3'
          Dst:             auth_client_request_free
        - Src:             'auth-client-request.c:594,4'
          Dst:             t_split_key_value_eq
        - Src:             'auth-client-request.c:595,8'
          Dst:             strcmp
        - Src:             'auth-client-request.c:604,25'
          Dst:             p_strarray_dup
        - Src:             'auth-client-request.c:611,7'
          Dst:             strcmp
        - Src:             'auth-client-request.c:618,3'
          Dst:             i_unreached
        - Src:             'auth-client-request.c:621,2'
          Dst:             auth_client_request_handle_input
    - functionName:    auth_client_request_get_create_time
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_request_get_cookie
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_request_get_server_pid
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_client_request_get_id
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 348
      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:    auth_client_request_abort
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - auth_client_request_free
        - auth_client_send_cancel
        - call_callback
        - e_debug
        - event_create_passthrough
        - event_send_abort
        - event_want_level
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:309,3'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:312,2'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:312,2'
          Dst:             e_debug
        - Src:             'auth-client-request.c:312,2'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:314,2'
          Dst:             auth_client_send_cancel
        - Src:             'auth-client-request.c:315,2'
          Dst:             call_callback
        - Src:             'auth-client-request.c:317,2'
          Dst:             auth_client_request_free
    - functionName:    auth_client_request_enable_channel_binding
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_server_send_new_request
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         132
      ICount:          1018
      EdgeCount:       175
      CyclomaticComplexity: 45
      functionsReached:
        - array_is_created_i
        - auth_client_request_fail_conn_lost
        - e_debug
        - e_error
        - event_add_int
        - event_add_ip
        - event_add_str
        - event_create_passthrough
        - event_send_abort
        - event_want_level
        - i_panic
        - net_ip2addr
        - net_ip_compare
        - o_stream_send
        - str_append
        - str_append_c
        - str_append_tabescaped
        - str_c
        - str_data
        - str_len
        - str_printfa
        - t_str_new
        - timeout_add_short
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:27,8'
          Dst:             t_str_new
        - Src:             'auth-client-request.c:28,2'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:29,2'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:30,2'
          Dst:             str_append
        - Src:             'auth-client-request.c:31,2'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:33,2'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:34,2'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:36,2'
          Dst:             str_append
        - Src:             'auth-client-request.c:38,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:40,4'
          Dst:             str_append
        - Src:             'auth-client-request.c:41,4'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:43,4'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:46,3'
          Dst:             i_panic
        - Src:             'auth-client-request.c:47,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:50,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:52,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:54,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:57,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:58,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:59,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:62,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:63,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:64,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:68,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:69,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:70,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:74,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:75,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:76,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:80,32'
          Dst:             net_ip2addr
        - Src:             'auth-client-request.c:80,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:81,3'
          Dst:             event_add_ip
        - Src:             'auth-client-request.c:84,32'
          Dst:             net_ip2addr
        - Src:             'auth-client-request.c:84,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:85,3'
          Dst:             event_add_ip
        - Src:             'auth-client-request.c:88,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:89,3'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:92,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:93,3'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:96,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:97,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:98,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:101,3'
          Dst:             event_add_ip
        - Src:             'auth-client-request.c:105,3'
          Dst:             event_add_ip
        - Src:             'auth-client-request.c:109,3'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:113,3'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:119,7'
          Dst:             net_ip_compare
        - Src:             'auth-client-request.c:121,8'
          Dst:             net_ip2addr
        - Src:             'auth-client-request.c:120,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:124,7'
          Dst:             net_ip_compare
        - Src:             'auth-client-request.c:126,8'
          Dst:             net_ip2addr
        - Src:             'auth-client-request.c:125,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:130,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:133,3'
          Dst:             str_printfa
        - Src:             'auth-client-request.c:136,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:137,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:138,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:141,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:142,3'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:145,4'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:149,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:154,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:155,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:156,3'
          Dst:             event_add_str
        - Src:             'auth-client-request.c:159,23'
          Dst:             t_str_new
        - Src:             'auth-client-request.c:160,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:162,4'
          Dst:             str_append_c
        - Src:             'auth-client-request.c:163,4'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:165,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:166,30'
          Dst:             str_c
        - Src:             'auth-client-request.c:166,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:168,6'
          Dst:             array_is_created_i
        - Src:             'auth-client-request.c:171,4'
          Dst:             str_append_c
        - Src:             'auth-client-request.c:172,4'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:176,3'
          Dst:             str_append
        - Src:             'auth-client-request.c:177,3'
          Dst:             str_append_tabescaped
        - Src:             'auth-client-request.c:179,2'
          Dst:             str_append_c
        - Src:             'auth-client-request.c:182,3'
          Dst:             event_create_passthrough
        - Src:             'auth-client-request.c:184,2'
          Dst:             event_want_level
        - Src:             'auth-client-request.c:184,2'
          Dst:             e_debug
        - Src:             'auth-client-request.c:184,2'
          Dst:             event_send_abort
        - Src:             'auth-client-request.c:187,3'
          Dst:             e_error
        - Src:             'auth-client-request.c:190,22'
          Dst:             timeout_add_short
        - Src:             'auth-client-request.c:190,22'
          Dst:             auth_client_request_fail_conn_lost
        - Src:             'auth-client-request.c:193,6'
          Dst:             str_data
        - Src:             'auth-client-request.c:193,21'
          Dst:             str_len
        - Src:             'auth-client-request.c:192,13'
          Dst:             o_stream_send
        - Src:             'auth-client-request.c:194,3'
          Dst:             e_error
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-auth-client/../../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:    auth_client_request_new
      functionSourceFile: '/src/dovecot/src/lib-auth-client/auth-client-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          120
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - auth_client_connection_add_request
        - auth_server_send_new_request
        - event_add_int
        - event_create
        - event_set_append_log_prefix
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - t_pop
        - t_push
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth-client-request.c:209,9'
          Dst:             pool_alloconly_create
        - Src:             'auth-client-request.c:210,12'
          Dst:             malloc_multiply_check
        - Src:             'auth-client-request.c:210,12'
          Dst:             p_malloc
        - Src:             'auth-client-request.c:220,3'
          Dst:             auth_client_connection_add_request
        - Src:             'auth-client-request.c:223,19'
          Dst:             event_create
        - Src:             'auth-client-request.c:224,2'
          Dst:             event_add_int
        - Src:             'auth-client-request.c:226,9'
          Dst:             t_strdup_printf
        - Src:             'auth-client-request.c:225,2'
          Dst:             event_set_append_log_prefix
        - Src:             'auth-client-request.c:229,2'
          Dst:             t_push
        - Src:             'auth-client-request.c:230,3'
          Dst:             auth_server_send_new_request
        - Src:             'auth-client-request.c:232,4'
          Dst:             t_pop
        - Src:             'auth-client-request.c:232,4'
          Dst:             i_panic
...
